diff --git a/.github/workflows/test-zkvm.yml b/.github/workflows/test-zkvm.yml index 6a55d5d..da6f1a1 100644 --- a/.github/workflows/test-zkvm.yml +++ b/.github/workflows/test-zkvm.yml @@ -55,10 +55,13 @@ jobs: --tag "$IMAGE_REGISTRY/$IMAGE:$SEMVER_TAG" done - image_meta: - name: Get image metadata + build_image: + name: Build image if: github.event_name == 'pull_request' || (github.event_name == 'push' && github.ref == 'refs/heads/master') runs-on: ubuntu-latest + permissions: + contents: read + packages: write outputs: image_registry: ${{ steps.image_meta.outputs.image_registry }} image_tag: ${{ steps.image_meta.outputs.image_tag }} @@ -71,6 +74,18 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 + - name: Free up disk space + if: github.event_name == 'push' + run: bash .github/scripts/free-up-disk-space.sh + + - name: Log in to GitHub Container Registry + if: github.event_name == 'push' + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Check Dockerfile changes id: changed_files uses: tj-actions/changed-files@v46 @@ -105,59 +120,40 @@ jobs: echo "compiler_zkvm_image=$COMPILER_ZKVM_IMAGE" >> $GITHUB_OUTPUT echo "server_zkvm_image=$SERVER_ZKVM_IMAGE" >> $GITHUB_OUTPUT - build_image: - name: Build image - needs: image_meta - if: github.event_name == 'push' && github.ref == 'refs/heads/master' - runs-on: ubuntu-latest - permissions: - contents: read - packages: write - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - - name: Free up disk space - run: bash .github/scripts/free-up-disk-space.sh - - - name: Log in to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - name: Build and push ere-base and ere-base-${{ inputs.zkvm }} images + if: github.event_name == 'push' run: | bash .github/scripts/build-image.sh \ --zkvm ${{ inputs.zkvm }} \ - --registry ${{ needs.image_meta.outputs.image_registry }} \ - --tag ${{ needs.image_meta.outputs.image_tag }} \ + --registry ${{ steps.image_meta.outputs.image_registry }} \ + --tag ${{ steps.image_meta.outputs.image_tag }} \ --base - docker push ${{ needs.image_meta.outputs.base_image }} - docker push ${{ needs.image_meta.outputs.base_zkvm_image }} + docker push ${{ steps.image_meta.outputs.base_image }} + docker push ${{ steps.image_meta.outputs.base_zkvm_image }} - name: Build and push ere-compiler-${{ inputs.zkvm }} image + if: github.event_name == 'push' run: | bash .github/scripts/build-image.sh \ --zkvm ${{ inputs.zkvm }} \ - --registry ${{ needs.image_meta.outputs.image_registry }} \ - --tag ${{ needs.image_meta.outputs.image_tag }} \ + --registry ${{ steps.image_meta.outputs.image_registry }} \ + --tag ${{ steps.image_meta.outputs.image_tag }} \ --compiler - docker push ${{ needs.image_meta.outputs.compiler_zkvm_image }} + docker push ${{ steps.image_meta.outputs.compiler_zkvm_image }} - name: Build and push ere-server-${{ inputs.zkvm }} image + if: github.event_name == 'push' run: | bash .github/scripts/build-image.sh \ --zkvm ${{ inputs.zkvm }} \ - --registry ${{ needs.image_meta.outputs.image_registry }} \ - --tag ${{ needs.image_meta.outputs.image_tag }} \ + --registry ${{ steps.image_meta.outputs.image_registry }} \ + --tag ${{ steps.image_meta.outputs.image_tag }} \ --server - docker push ${{ needs.image_meta.outputs.server_zkvm_image }} + docker push ${{ steps.image_meta.outputs.server_zkvm_image }} clippy_via_docker: name: Clippy via Docker - needs: image_meta + needs: build_image runs-on: ubuntu-latest steps: - name: Checkout repository @@ -176,13 +172,13 @@ jobs: run: | bash .github/scripts/pull-or-build-base-zkvm-image.sh \ --zkvm ${{ inputs.zkvm }} \ - --registry ${{ needs.image_meta.outputs.image_registry }} \ - --tag ${{ needs.image_meta.outputs.image_tag }} \ - --cached-tag "${{ needs.image_meta.outputs.cached_image_tag }}" + --registry ${{ needs.build_image.outputs.image_registry }} \ + --tag ${{ needs.build_image.outputs.image_tag }} \ + --cached-tag "${{ needs.build_image.outputs.cached_image_tag }}" - name: Pull base zkvm image if: github.event_name == 'push' - run: docker pull ${{ needs.image_meta.outputs.base_zkvm_image }} + run: docker pull ${{ needs.build_image.outputs.base_zkvm_image }} - name: Run cargo clippy for ere-${{ inputs.zkvm }} via Docker run: | @@ -193,7 +189,7 @@ jobs: --volume $HOME/.cargo/registry:/usr/local/cargo/registry \ --volume $HOME/.cargo/git:/usr/local/cargo/git \ --workdir /ere \ - ${{ needs.image_meta.outputs.base_zkvm_image }} \ + ${{ needs.build_image.outputs.base_zkvm_image }} \ /bin/bash" cat <