name: container-image-build on: workflow_call: inputs: image_tag: type: string default: ${{ github.event.number }} outputs: image: description: The resulting image link value: ${{ jobs.build-docker-image.outputs.image }} env: NPROC: 2 MAKEFLAGS: "-j${NPROC}" NIMFLAGS: "--parallelBuild:${NPROC}" jobs: build-docker-image: strategy: matrix: os: [ubuntu-latest] runs-on: ${{ matrix.os }} timeout-minutes: 60 name: docker-build-${{ matrix.os }} outputs: image: ${{ steps.build.outputs.image }} steps: - name: Checkout code uses: actions/checkout@v3 - name: Get submodules hash id: submodules run: | echo "hash=$(git submodule status | awk '{print $1}' | sort | shasum -a 256 | sed 's/[ -]*//g')" >> $GITHUB_OUTPUT - name: Cache submodules uses: actions/cache@v3 with: path: | vendor/ .git/modules key: ${{ runner.os }}-vendor-modules-${{ steps.submodules.outputs.hash }} - name: Build binaries id: build run: | make -j${NPROC} V=1 QUICK_AND_DIRTY_COMPILER=1 NIMFLAGS="-d:disableMarchNative" wakunode2 SHORT_REF=$(git rev-parse --short HEAD) TAG=$([ "${PR_NUMBER}" == "" ] && echo "${SHORT_REF}" || echo "${PR_NUMBER}") IMAGE=quay.io/wakuorg/nwaku-pr:${TAG} echo "image=${IMAGE}" >> $GITHUB_OUTPUT echo "commit_hash=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT docker login -u ${QUAY_USER} -p ${QUAY_PASSWORD} quay.io docker build -t ${IMAGE} -f docker/binaries/Dockerfile.bn.amd64 --label quay.expires-after=7d . docker push ${IMAGE} env: QUAY_PASSWORD: ${{ secrets.QUAY_PASSWORD }} QUAY_USER: ${{ secrets.QUAY_USER }} PR_NUMBER: ${{ inputs.image_tag}} - name: Comment PR uses: thollander/actions-comment-pull-request@v2 if: ${{ github.event_name == 'pull_request' }} with: message: | You can find the image built from this PR at ``` ${{steps.build.outputs.image}} ``` Built from ${{ steps.build.outputs.commit_hash }} comment_tag: execution