From 709188955e159f1d87d03a2b4e8c6d01114ddec8 Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Wed, 16 Oct 2024 20:53:40 +0100 Subject: [PATCH 01/50] GHA - Only publish docker builds on main branch --- .../actions/check-image-tags-exist/action.yml | 8 +--- .github/actions/image-tag-and-push/action.yml | 25 ++-------- .github/workflows/all-tools.yml | 3 -- .github/workflows/build-and-publish.yml | 21 -------- .../coordinator-build-and-publish.yml | 48 ++++++++++++------- .github/workflows/main.yml | 27 +++++++---- .../workflows/postman-build-and-publish.yml | 47 +++++++++++------- .../workflows/prover-build-and-publish.yml | 47 +++++++++++------- .../reuse-check-images-tags-and-push.yml | 18 ------- .github/workflows/reuse-run-e2e-tests.yml | 17 ++----- .../reuse-store-image-name-and-tags.yml | 31 ++++-------- ...-suffix.yml => reuse-tag-with-develop.yml} | 10 +--- .../traces-api-facade-build-and-publish.yml | 47 +++++++++++------- 13 files changed, 159 insertions(+), 190 deletions(-) rename .github/workflows/{reuse-tag-without-untested-suffix.yml => reuse-tag-with-develop.yml} (65%) diff --git a/.github/actions/check-image-tags-exist/action.yml b/.github/actions/check-image-tags-exist/action.yml index 1caf8e001..2703b3f75 100644 --- a/.github/actions/check-image-tags-exist/action.yml +++ b/.github/actions/check-image-tags-exist/action.yml @@ -5,9 +5,6 @@ inputs: last_commit_tag: description: 'The tag of the last commit image' required: true - common_ancestor_tag: - description: 'The tag of the common ancestor commit image' - required: true image_name: description: 'The name of the image to check' required: true @@ -21,9 +18,6 @@ outputs: last_commit_tag_exists: description: 'Whether the last commit image tag exists' value: ${{ steps.last_commit_image_exists.outputs.last_commit_tag_exists }} - common_ancestor_commit_tag_exists: - description: 'Whether the common ancestor commit image tag exists' - value: ${{ steps.ancestor_commit_image_exists.outputs.common_ancestor_commit_tag_exists }} runs: using: 'composite' @@ -49,4 +43,4 @@ runs: shell: bash run: | echo "last_commit_tag_exists: ${{ steps.last_commit_image_exists.outputs.last_commit_tag_exists }}" - echo "common_ancestor_commit_tag_exists: ${{ steps.ancestor_commit_image_exists.outputs.common_ancestor_commit_tag_exists }}" \ No newline at end of file + echo "common_ancestor_commit_tag_exists: ${{ steps.ancestor_commit_image_exists.outputs.common_ancestor_commit_tag_exists }}" diff --git a/.github/actions/image-tag-and-push/action.yml b/.github/actions/image-tag-and-push/action.yml index 555dc0e09..79ed8172b 100644 --- a/.github/actions/image-tag-and-push/action.yml +++ b/.github/actions/image-tag-and-push/action.yml @@ -8,24 +8,15 @@ inputs: last_commit_tag: description: 'The tag of the last commit image' required: true - common_ancestor_tag: - description: 'The tag of the common ancestor commit image' - required: true develop_tag: description: 'The tag of the develop image' required: true - untested_tag_suffix: - description: 'The suffix to add to untested images' - required: true image_name: description: 'The name of the image to tag and push' required: true last_commit_tag_exists: description: 'Whether the last commit image tag exists' required: true - common_ancestor_commit_tag_exists: - description: 'Whether the common ancestor commit image tag exists' - required: true docker_username: description: 'The username to login to Docker Hub' required: true @@ -34,7 +25,7 @@ inputs: required: true outputs: - image_tagged: + image_tagged: description: 'Whether the image was tagged' value: ${{ steps.set-output.outputs.image_tagged }} @@ -50,19 +41,11 @@ runs: shell: bash run: | echo IMAGE_TAGGED=false >> $GITHUB_ENV - - name: Tag Docker image with last commit tag with the commit hash plus w/o "untested" suffix + - name: Tag Docker image with last commit tag with the commit hash plus shell: bash if: ${{ inputs.last_commit_tag != '0000000' && inputs.last_commit_tag_exists == '0' }} run: | docker buildx imagetools create --tag ${{ inputs.image_name }}:${{ inputs.commit_tag }} ${{ inputs.image_name }}:${{ inputs.last_commit_tag }} - docker buildx imagetools create --tag ${{ inputs.image_name }}:${{ inputs.commit_tag }}-${{ inputs.untested_tag_suffix }} ${{ inputs.image_name }}:${{ inputs.last_commit_tag }} - echo IMAGE_TAGGED=true >> $GITHUB_ENV - - name: Tag Docker image with common ancestor commit tag with the commit hash plus w/o "untested" suffix - shell: bash - if: ${{ inputs.last_commit_tag == '0000000' && inputs.common_ancestor_commit_tag_exists == '0' }} - run: | - docker buildx imagetools create --tag ${{ inputs.image_name }}:${{ inputs.commit_tag }} ${{ inputs.image_name }}:${{ inputs.common_ancestor_tag }} - docker buildx imagetools create --tag ${{ inputs.image_name }}:${{ inputs.commit_tag }}-${{ inputs.untested_tag_suffix }} ${{ inputs.image_name }}:${{ inputs.common_ancestor_tag }} echo IMAGE_TAGGED=true >> $GITHUB_ENV - name: Tag Docker image with develop if on main branch shell: bash @@ -70,9 +53,9 @@ runs: run: | docker buildx imagetools create --tag ${{ inputs.image_name }}:${{ inputs.develop_tag }} ${{ inputs.image_name }}:${{ inputs.last_commit_tag }} echo IMAGE_TAGGED=true >> $GITHUB_ENV - + - name: Set output from environment variable shell: bash id: set-output run: | - echo "image_tagged=$IMAGE_TAGGED" >> $GITHUB_OUTPUT \ No newline at end of file + echo "image_tagged=$IMAGE_TAGGED" >> $GITHUB_OUTPUT diff --git a/.github/workflows/all-tools.yml b/.github/workflows/all-tools.yml index edcfc7fe1..bb2d25fca 100644 --- a/.github/workflows/all-tools.yml +++ b/.github/workflows/all-tools.yml @@ -50,7 +50,6 @@ jobs: uses: ./.github/actions/check-image-tags-exist with: last_commit_tag: ${{ needs.store_image_name_and_tags.outputs.last_commit_tag }} - common_ancestor_tag: ${{ needs.store_image_name_and_tags.outputs.common_ancestor_tag }} image_name: consensys/linea-alltools docker_username: ${{ secrets.DOCKERHUB_USERNAME }} docker_password: ${{ secrets.DOCKERHUB_TOKEN }} @@ -71,9 +70,7 @@ jobs: with: commit_tag: ${{ needs.store_image_name_and_tags.outputs.commit_tag }} last_commit_tag: ${{ needs.store_image_name_and_tags.outputs.last_commit_tag }} - common_ancestor_tag: ${{ needs.store_image_name_and_tags.outputs.common_ancestor_tag }} develop_tag: ${{ needs.store_image_name_and_tags.outputs.develop_tag }} - untested_tag_suffix: ${{ needs.store_image_name_and_tags.outputs.untested_tag_suffix }} image_name: consensys/linea-alltools last_commit_tag_exists: ${{ needs.check_image_tags_exist.outputs.last_commit_tag_exists }} common_ancestor_commit_tag_exists: ${{ needs.check_image_tags_exist.outputs.common_ancestor_commit_tag_exists }} diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index c6dad7628..dd104f74c 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -9,15 +9,6 @@ on: last_commit_tag: required: true type: string - common_ancestor_tag: - required: true - type: string - develop_tag: - required: true - type: string - untested_tag_suffix: - required: true - type: string coordinator_changed: required: true type: string @@ -61,9 +52,6 @@ jobs: with: commit_tag: ${{ inputs.commit_tag }} last_commit_tag: ${{ inputs.last_commit_tag }} - common_ancestor_tag: ${{ inputs.common_ancestor_tag }} - develop_tag: ${{ inputs.develop_tag }} - untested_tag_suffix: ${{ inputs.untested_tag_suffix }} image_name: consensys/linea-coordinator secrets: inherit @@ -73,9 +61,6 @@ jobs: with: commit_tag: ${{ inputs.commit_tag }} last_commit_tag: ${{ inputs.last_commit_tag }} - common_ancestor_tag: ${{ inputs.common_ancestor_tag }} - develop_tag: ${{ inputs.develop_tag }} - untested_tag_suffix: ${{ inputs.untested_tag_suffix }} image_name: consensys/linea-prover secrets: inherit @@ -85,9 +70,6 @@ jobs: with: commit_tag: ${{ inputs.commit_tag }} last_commit_tag: ${{ inputs.last_commit_tag }} - common_ancestor_tag: ${{ inputs.common_ancestor_tag }} - develop_tag: ${{ inputs.develop_tag }} - untested_tag_suffix: ${{ inputs.untested_tag_suffix }} image_name: consensys/linea-postman secrets: inherit @@ -97,9 +79,6 @@ jobs: with: commit_tag: ${{ inputs.commit_tag }} last_commit_tag: ${{ inputs.last_commit_tag }} - common_ancestor_tag: ${{ inputs.common_ancestor_tag }} - develop_tag: ${{ inputs.develop_tag }} - untested_tag_suffix: ${{ inputs.untested_tag_suffix }} image_name: consensys/linea-traces-api-facade secrets: inherit diff --git a/.github/workflows/coordinator-build-and-publish.yml b/.github/workflows/coordinator-build-and-publish.yml index 02a4f4bce..2109a7853 100644 --- a/.github/workflows/coordinator-build-and-publish.yml +++ b/.github/workflows/coordinator-build-and-publish.yml @@ -6,26 +6,28 @@ on: commit_tag: required: true type: string - last_commit_tag: - required: true - type: string - common_ancestor_tag: - required: true - type: string develop_tag: required: true type: string - untested_tag_suffix: - required: true - type: string image_name: required: true type: string + push_image: + required: true + type: boolean + default: false secrets: DOCKERHUB_USERNAME: required: true DOCKERHUB_TOKEN: required: true + workflow_dispatch: + inputs: + push_image: + description: 'Toggle whether to push image to docker registry' + required: true + type: boolean + default: true concurrency: group: coordinator-build-and-publish-${{ github.workflow }}-${{ github.ref }} @@ -35,13 +37,23 @@ jobs: build-and-publish: runs-on: [self-hosted, ubuntu-20.04, X64, small] name: Coordinator build - env: - COMMIT_TAG: ${{ inputs.commit_tag }} - DEVELOP_TAG: ${{ inputs.develop_tag }} - UNTESTED_TAG_SUFFIX: ${{ inputs.untested_tag_suffix }} - IMAGE_NAME: ${{ inputs.image_name }} - GITHUB_TOKEN: ${{ secrets._GITHUB_TOKEN_RELEASE_ACCESS }} steps: + - name: Set environment variables for workflow_call + if: github.event_name == 'workflow_call' + run: | + echo "COMMIT_TAG=${{ inputs.commit_tag }}" >> $GITHUB_ENV + echo "DEVELOP_TAG=${{ inputs.develop_tag }}" >> $GITHUB_ENV + echo "IMAGE_NAME=${{ inputs.image_name }}" >> $GITHUB_ENV + echo "PUSH_IMAGE=${{ inputs.push_image }}" >> $GITHUB_ENV + echo "TAGS=${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }},${{ env.IMAGE_NAME }}:${{ env.DEVELOP_TAG }}" >> $GITHUB_ENV + - name: Set environment variables for manual workflow_dispatch + if: github.event_name == 'workflow_dispatch' + run: | + echo COMMIT_TAG=$(git rev-parse --short "$GITHUB_SHA") >> $GITHUB_ENV + echo DEVELOP_TAG=develop >> $GITHUB_ENV + echo "IMAGE_NAME=consensys/linea-traces-api-facade" >> $GITHUB_ENV + echo "PUSH_IMAGE=${{ inputs.push_image }}" >> $GITHUB_ENV + echo "TAGS=${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }}" >> $GITHUB_ENV - name: Checkout uses: actions/checkout@v4 - uses: actions/setup-java@v4 @@ -75,8 +87,8 @@ jobs: build-contexts: zip=./coordinator/app/build/distributions/ file: ./coordinator/Dockerfile platforms: linux/amd64,linux/arm64 - push: true - tags: | - ${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }}-${{ env.UNTESTED_TAG_SUFFIX }} + load: ${{ !env.PUSH_IMAGE }} + push: ${{ env.PUSH_IMAGE }} + tags: ${{ env.TAGS }} cache-from: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache cache-to: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache,mode=max diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 94241b453..92c36c339 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -118,9 +118,7 @@ jobs: with: commit_tag: ${{ needs.store-image-name-and-tags.outputs.commit_tag }} last_commit_tag: ${{ needs.store-image-name-and-tags.outputs.last_commit_tag }} - common_ancestor_tag: ${{ needs.store-image-name-and-tags.outputs.common_ancestor_tag }} develop_tag: ${{ needs.store-image-name-and-tags.outputs.develop_tag }} - untested_tag_suffix: ${{ needs.store-image-name-and-tags.outputs.untested_tag_suffix }} coordinator_changed: ${{ needs.filter-commit-changes.outputs.coordinator }} postman_changed: ${{ needs.filter-commit-changes.outputs.postman }} prover_changed: ${{ needs.filter-commit-changes.outputs.prover }} @@ -143,9 +141,7 @@ jobs: with: commit_tag: ${{ needs.store-image-name-and-tags.outputs.commit_tag }} last_commit_tag: ${{ needs.store-image-name-and-tags.outputs.last_commit_tag }} - common_ancestor_tag: ${{ needs.store-image-name-and-tags.outputs.common_ancestor_tag }} develop_tag: ${{ needs.store-image-name-and-tags.outputs.develop_tag }} - untested_tag_suffix: ${{ needs.store-image-name-and-tags.outputs.untested_tag_suffix }} coordinator_changed: ${{ needs.filter-commit-changes.outputs.coordinator }} postman_changed: ${{ needs.filter-commit-changes.outputs.postman }} prover_changed: ${{ needs.filter-commit-changes.outputs.prover }} @@ -193,7 +189,6 @@ jobs: uses: ./.github/workflows/reuse-run-e2e-tests.yml with: commit_tag: ${{ needs.store-image-name-and-tags.outputs.commit_tag }} - untested_tag_suffix: ${{ needs.store-image-name-and-tags.outputs.untested_tag_suffix }} tracing-engine: 'geth' e2e-tests-logs-dump: true secrets: inherit @@ -207,7 +202,6 @@ jobs: uses: ./.github/workflows/reuse-run-e2e-tests.yml with: commit_tag: ${{ needs.store-image-name-and-tags.outputs.commit_tag }} - untested_tag_suffix: ${{ needs.store-image-name-and-tags.outputs.untested_tag_suffix }} tracing-engine: 'besu' e2e-tests-logs-dump: true secrets: inherit @@ -215,14 +209,31 @@ jobs: tag-after-run-tests-success: needs: [ store-image-name-and-tags, testing, run-e2e-tests, run-e2e-tests-geth-tracing ] if: ${{ always() && needs.testing.result == 'success' && needs.run-e2e-tests.outputs.tests_outcome == 'success' && needs.run-e2e-tests-geth-tracing.outputs.tests_outcome == 'success' }} - uses: ./.github/workflows/reuse-tag-without-untested-suffix.yml + uses: ./.github/workflows/reuse-tag-with-develop.yml with: commit_tag: ${{ needs.store-image-name-and-tags.outputs.commit_tag }} develop_tag: ${{ needs.store-image-name-and-tags.outputs.develop_tag }} - untested_tag_suffix: ${{ needs.store-image-name-and-tags.outputs.untested_tag_suffix }} image_names: '["consensys/linea-coordinator", "consensys/linea-postman", "consensys/linea-prover", "consensys/linea-traces-api-facade", "consensys/linea-transaction-exclusion-api"]' secrets: inherit + publish-images-after-run-tests-success: + needs: [ store-image-name-and-tags, testing, run-e2e-tests, run-e2e-tests-geth-tracing, tag-after-run-tests-success ] + if: ${{ always() && github.ref == 'refs/heads/main' && needs.testing.result == 'success' && needs.run-e2e-tests.outputs.tests_outcome == 'success' && needs.run-e2e-tests-geth-tracing.outputs.tests_outcome == 'success' }} + uses: ./.github/workflows/build-and-publish.yml + with: + commit_tag: ${{ needs.store-image-name-and-tags.outputs.commit_tag }} + last_commit_tag: ${{ needs.store-image-name-and-tags.outputs.last_commit_tag }} + develop_tag: ${{ needs.store-image-name-and-tags.outputs.develop_tag }} + coordinator_changed: ${{ needs.filter-commit-changes.outputs.coordinator }} + postman_changed: ${{ needs.filter-commit-changes.outputs.postman }} + prover_changed: ${{ needs.filter-commit-changes.outputs.prover }} + traces_api_facade_changed: ${{ needs.filter-commit-changes.outputs.traces-api-facade }} + coordinator_image_tagged: ${{ needs.check-and-tag-images.outputs.image_tagged_coordinator }} + postman_image_tagged: ${{ needs.check-and-tag-images.outputs.image_tagged_postman }} + prover_image_tagged: ${{ needs.check-and-tag-images.outputs.image_tagged_prover }} + traces_api_facade_image_tagged: ${{ needs.check-and-tag-images.outputs.image_tagged_traces_api_facade }} + secrets: inherit + cleanup-deployments: needs: [ run-e2e-tests, run-e2e-tests-geth-tracing ] if: ${{ always() }} diff --git a/.github/workflows/postman-build-and-publish.yml b/.github/workflows/postman-build-and-publish.yml index ab2246112..2298c42ac 100644 --- a/.github/workflows/postman-build-and-publish.yml +++ b/.github/workflows/postman-build-and-publish.yml @@ -6,26 +6,28 @@ on: commit_tag: required: true type: string - last_commit_tag: - required: true - type: string - common_ancestor_tag: - required: true - type: string develop_tag: required: true type: string - untested_tag_suffix: - required: true - type: string image_name: required: true type: string + push_image: + required: true + type: boolean + default: false secrets: DOCKERHUB_USERNAME: required: true DOCKERHUB_TOKEN: required: true + workflow_dispatch: + inputs: + push_image: + description: 'Toggle whether to push image to docker registry' + required: true + type: boolean + default: true concurrency: group: postman-build-and-publish-${{ github.workflow }}-${{ github.ref }} @@ -35,12 +37,23 @@ jobs: build-and-publish: runs-on: [self-hosted, ubuntu-20.04, X64, small] name: Postman build - env: - COMMIT_TAG: ${{ inputs.commit_tag }} - DEVELOP_TAG: ${{ inputs.develop_tag }} - UNTESTED_TAG_SUFFIX: ${{ inputs.untested_tag_suffix }} - IMAGE_NAME: ${{ inputs.image_name }} steps: + - name: Set environment variables for workflow_call + if: github.event_name == 'workflow_call' + run: | + echo "COMMIT_TAG=${{ inputs.commit_tag }}" >> $GITHUB_ENV + echo "DEVELOP_TAG=${{ inputs.develop_tag }}" >> $GITHUB_ENV + echo "IMAGE_NAME=${{ inputs.image_name }}" >> $GITHUB_ENV + echo "PUSH_IMAGE=${{ inputs.push_image }}" >> $GITHUB_ENV + echo "TAGS=${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }},${{ env.IMAGE_NAME }}:${{ env.DEVELOP_TAG }}" >> $GITHUB_ENV + - name: Set environment variables for manual workflow_dispatch + if: github.event_name == 'workflow_dispatch' + run: | + echo COMMIT_TAG=$(git rev-parse --short "$GITHUB_SHA") >> $GITHUB_ENV + echo DEVELOP_TAG=develop >> $GITHUB_ENV + echo "IMAGE_NAME=consensys/linea-traces-api-facade" >> $GITHUB_ENV + echo "PUSH_IMAGE=${{ inputs.push_image }}" >> $GITHUB_ENV + echo "TAGS=${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }}" >> $GITHUB_ENV - name: Checkout uses: actions/checkout@v3 with: @@ -68,9 +81,9 @@ jobs: context: ./ file: ./sdk/Dockerfile platforms: linux/amd64,linux/arm64 - push: true - tags: | - ${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }}-${{ env.UNTESTED_TAG_SUFFIX }} + load: ${{ !env.PUSH_IMAGE }} + push: ${{ env.PUSH_IMAGE }} + tags: ${{ env.TAGS }} cache-from: | type=registry,ref=${{ env.IMAGE_NAME }}:buildcache-amd64,platform=linux/amd64 type=registry,ref=${{ env.IMAGE_NAME }}:buildcache-arm64,platform=linux/arm64 diff --git a/.github/workflows/prover-build-and-publish.yml b/.github/workflows/prover-build-and-publish.yml index bae07ab60..827146524 100644 --- a/.github/workflows/prover-build-and-publish.yml +++ b/.github/workflows/prover-build-and-publish.yml @@ -6,26 +6,28 @@ on: commit_tag: required: true type: string - last_commit_tag: - required: true - type: string - common_ancestor_tag: - required: true - type: string develop_tag: required: true type: string - untested_tag_suffix: - required: true - type: string image_name: required: true type: string + push_image: + required: true + type: boolean + default: false secrets: DOCKERHUB_USERNAME: required: true DOCKERHUB_TOKEN: required: true + workflow_dispatch: + inputs: + push_image: + description: 'Toggle whether to push image to docker registry' + required: true + type: boolean + default: true concurrency: group: prover-build-and-publish-${{ github.workflow }}-${{ github.ref }} @@ -38,12 +40,23 @@ jobs: build-and-publish: runs-on: [self-hosted, ubuntu-20.04, X64, small] name: Prover build - env: - COMMIT_TAG: ${{ inputs.commit_tag }} - DEVELOP_TAG: ${{ inputs.develop_tag }} - UNTESTED_TAG_SUFFIX: ${{ inputs.untested_tag_suffix }} - IMAGE_NAME: ${{ inputs.image_name }} steps: + - name: Set environment variables for workflow_call + if: github.event_name == 'workflow_call' + run: | + echo "COMMIT_TAG=${{ inputs.commit_tag }}" >> $GITHUB_ENV + echo "DEVELOP_TAG=${{ inputs.develop_tag }}" >> $GITHUB_ENV + echo "IMAGE_NAME=${{ inputs.image_name }}" >> $GITHUB_ENV + echo "PUSH_IMAGE=${{ inputs.push_image }}" >> $GITHUB_ENV + echo "TAGS=${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }},${{ env.IMAGE_NAME }}:${{ env.DEVELOP_TAG }}" >> $GITHUB_ENV + - name: Set environment variables for manual workflow_dispatch + if: github.event_name == 'workflow_dispatch' + run: | + echo COMMIT_TAG=$(git rev-parse --short "$GITHUB_SHA") >> $GITHUB_ENV + echo DEVELOP_TAG=develop >> $GITHUB_ENV + echo "IMAGE_NAME=consensys/linea-traces-api-facade" >> $GITHUB_ENV + echo "PUSH_IMAGE=${{ inputs.push_image }}" >> $GITHUB_ENV + echo "TAGS=${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }}" >> $GITHUB_ENV - name: Checkout uses: actions/checkout@v4 with: @@ -73,8 +86,8 @@ jobs: corset=corset/ constraints=constraints/ platforms: linux/amd64 - push: true - tags: | - ${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }}-${{ env.UNTESTED_TAG_SUFFIX }} + load: ${{ !env.PUSH_IMAGE }} + push: ${{ env.PUSH_IMAGE }} + tags: ${{ env.TAGS }} cache-from: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache cache-to: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache,mode=max diff --git a/.github/workflows/reuse-check-images-tags-and-push.yml b/.github/workflows/reuse-check-images-tags-and-push.yml index 4d9ae8d22..bc213a437 100644 --- a/.github/workflows/reuse-check-images-tags-and-push.yml +++ b/.github/workflows/reuse-check-images-tags-and-push.yml @@ -8,15 +8,9 @@ on: last_commit_tag: required: true type: string - common_ancestor_tag: - required: true - type: string develop_tag: required: true type: string - untested_tag_suffix: - required: true - type: string coordinator_changed: required: true type: string @@ -78,7 +72,6 @@ jobs: id: check_image_tags_exist_coordinator with: last_commit_tag: ${{ inputs.last_commit_tag }} - common_ancestor_tag: ${{ inputs.common_ancestor_tag }} image_name: consensys/linea-coordinator docker_username: ${{ secrets.DOCKERHUB_USERNAME }} docker_password: ${{ secrets.DOCKERHUB_TOKEN }} @@ -89,7 +82,6 @@ jobs: id: check_image_tags_exist_postman with: last_commit_tag: ${{ inputs.last_commit_tag }} - common_ancestor_tag: ${{ inputs.common_ancestor_tag }} image_name: consensys/linea-postman docker_username: ${{ secrets.DOCKERHUB_USERNAME }} docker_password: ${{ secrets.DOCKERHUB_TOKEN }} @@ -100,7 +92,6 @@ jobs: id: check_image_tags_exist_prover with: last_commit_tag: ${{ inputs.last_commit_tag }} - common_ancestor_tag: ${{ inputs.common_ancestor_tag }} image_name: consensys/linea-prover docker_username: ${{ secrets.DOCKERHUB_USERNAME }} docker_password: ${{ secrets.DOCKERHUB_TOKEN }} @@ -111,7 +102,6 @@ jobs: id: check_image_tags_exist_traces_api_facade with: last_commit_tag: ${{ inputs.last_commit_tag }} - common_ancestor_tag: ${{ inputs.common_ancestor_tag }} image_name: consensys/linea-traces-api-facade docker_username: ${{ secrets.DOCKERHUB_USERNAME }} docker_password: ${{ secrets.DOCKERHUB_TOKEN }} @@ -148,9 +138,7 @@ jobs: with: commit_tag: ${{ inputs.commit_tag }} last_commit_tag: ${{ inputs.last_commit_tag }} - common_ancestor_tag: ${{ inputs.common_ancestor_tag }} develop_tag: ${{ inputs.develop_tag }} - untested_tag_suffix: ${{ inputs.untested_tag_suffix }} image_name: consensys/linea-coordinator last_commit_tag_exists: ${{ needs.check_image_tags_exist.outputs.last_commit_tag_exists_coordinator }} common_ancestor_commit_tag_exists: ${{ needs.check_image_tags_exist.outputs.common_ancestor_commit_tag_exists_coordinator }} @@ -164,9 +152,7 @@ jobs: with: commit_tag: ${{ inputs.commit_tag }} last_commit_tag: ${{ inputs.last_commit_tag }} - common_ancestor_tag: ${{ inputs.common_ancestor_tag }} develop_tag: ${{ inputs.develop_tag }} - untested_tag_suffix: ${{ inputs.untested_tag_suffix }} image_name: consensys/linea-postman last_commit_tag_exists: ${{ needs.check_image_tags_exist.outputs.last_commit_tag_exists_postman }} common_ancestor_commit_tag_exists: ${{ needs.check_image_tags_exist.outputs.common_ancestor_commit_tag_exists_postman }} @@ -180,9 +166,7 @@ jobs: with: commit_tag: ${{ inputs.commit_tag }} last_commit_tag: ${{ inputs.last_commit_tag }} - common_ancestor_tag: ${{ inputs.common_ancestor_tag }} develop_tag: ${{ inputs.develop_tag }} - untested_tag_suffix: ${{ inputs.untested_tag_suffix }} image_name: consensys/linea-prover last_commit_tag_exists: ${{ needs.check_image_tags_exist.outputs.last_commit_tag_exists_prover }} common_ancestor_commit_tag_exists: ${{ needs.check_image_tags_exist.outputs.common_ancestor_commit_tag_exists_prover }} @@ -196,9 +180,7 @@ jobs: with: commit_tag: ${{ inputs.commit_tag }} last_commit_tag: ${{ inputs.last_commit_tag }} - common_ancestor_tag: ${{ inputs.common_ancestor_tag }} develop_tag: ${{ inputs.develop_tag }} - untested_tag_suffix: ${{ inputs.untested_tag_suffix }} image_name: consensys/linea-traces-api-facade last_commit_tag_exists: ${{ needs.check_image_tags_exist.outputs.last_commit_tag_exists_traces_api_facade }} common_ancestor_commit_tag_exists: ${{ needs.check_image_tags_exist.outputs.common_ancestor_commit_tag_exists_traces_api_facade }} diff --git a/.github/workflows/reuse-run-e2e-tests.yml b/.github/workflows/reuse-run-e2e-tests.yml index a5cb81beb..3f109fce7 100644 --- a/.github/workflows/reuse-run-e2e-tests.yml +++ b/.github/workflows/reuse-run-e2e-tests.yml @@ -6,10 +6,6 @@ on: description: 'The commit tag to use' required: true type: string - untested_tag_suffix: - description: 'The untested tag suffix to use' - required: true - type: string tracing-engine: description: Variable option for running tests against [besu] or [geth] stack required: true @@ -34,9 +30,6 @@ on: commit_tag: required: true type: string - untested_tag_suffix: - required: true - type: string tracing-engine: description: Variable option for running tests against [besu] or [geth] stack required: true @@ -68,11 +61,11 @@ on: jobs: run-e2e-tests: env: - COORDINATOR_TAG: ${{ inputs.commit_tag }}-${{ inputs.untested_tag_suffix }} - POSTMAN_TAG: ${{ inputs.commit_tag }}-${{ inputs.untested_tag_suffix }} - PROVER_TAG: ${{ inputs.commit_tag }}-${{ inputs.untested_tag_suffix }} - TRACES_API_TAG: ${{ inputs.commit_tag }}-${{ inputs.untested_tag_suffix }} - TRANSACTION_EXCLUSION_API_TAG: ${{ inputs.commit_tag }}-${{ inputs.untested_tag_suffix }} + COORDINATOR_TAG: ${{ inputs.commit_tag }} + POSTMAN_TAG: ${{ inputs.commit_tag }} + PROVER_TAG: ${{ inputs.commit_tag }} + TRACES_API_TAG: ${{ inputs.commit_tag }} + TRANSACTION_EXCLUSION_API_TAG: ${{ inputs.commit_tag }} GITHUB_TOKEN: ${{ secrets._GITHUB_TOKEN_RELEASE_ACCESS }} outputs: tests_outcome: ${{ steps.run_e2e_tests.outcome }} diff --git a/.github/workflows/reuse-store-image-name-and-tags.yml b/.github/workflows/reuse-store-image-name-and-tags.yml index bad0023fc..5a8669289 100644 --- a/.github/workflows/reuse-store-image-name-and-tags.yml +++ b/.github/workflows/reuse-store-image-name-and-tags.yml @@ -8,10 +8,6 @@ on: value: ${{ jobs.store_image_name_and_tags.outputs.last_commit_tag }} develop_tag: value: ${{ jobs.store_image_name_and_tags.outputs.develop_tag }} - common_ancestor_tag: - value: ${{ jobs.store_image_name_and_tags.outputs.common_ancestor_tag }} - untested_tag_suffix: - value: ${{ jobs.store_image_name_and_tags.outputs.untested_tag_suffix }} concurrency: group: store-image-name-and-tags-${{ github.workflow }}-${{ github.ref }} @@ -26,32 +22,21 @@ jobs: BRANCH_NAME: ${{ github.head_ref || github.ref_name }} EVENT_BEFORE: ${{ github.event.before }} outputs: - commit_tag: ${{ steps.step2.outputs.COMMIT_TAG }} - last_commit_tag: ${{ steps.step2.outputs.LAST_COMMIT_TAG }} - common_ancestor_tag: ${{ steps.step2.outputs.COMMON_ANCESTOR_TAG }} - develop_tag: ${{ steps.step2.outputs.DEVELOP_TAG }} - untested_tag_suffix: ${{ steps.step2.outputs.UNTESTED_TAG_SUFFIX }} + commit_tag: ${{ steps.step1.outputs.COMMIT_TAG }} + last_commit_tag: ${{ steps.step1.outputs.LAST_COMMIT_TAG }} + develop_tag: ${{ steps.step1.outputs.DEVELOP_TAG }} steps: - name: Checkout uses: actions/checkout@v3 - - name: Get common ancestor commit - id: step1 - run: | - git fetch --no-tags --depth=100 origin main ${{ env.BRANCH_NAME }} - echo COMMON_ANCESTOR=$(git merge-base refs/remotes/origin/main refs/remotes/origin/${{ env.BRANCH_NAME }}) >> $GITHUB_ENV - name: Compute version tags - id: step2 + id: step1 run: | echo COMMIT_TAG=$(git rev-parse --short "$GITHUB_SHA") >> $GITHUB_OUTPUT echo LAST_COMMIT_TAG=$(git rev-parse --short "${{ env.EVENT_BEFORE }}") >> $GITHUB_OUTPUT echo DEVELOP_TAG=develop >> $GITHUB_OUTPUT - echo COMMON_ANCESTOR_TAG=$(git rev-parse --short "${{ env.COMMON_ANCESTOR }}") >> $GITHUB_OUTPUT - echo UNTESTED_TAG_SUFFIX=untested >> $GITHUB_OUTPUT - name: Show version tags - id: step3 + id: step2 run: | - echo "COMMIT_TAG: ${{ steps.step2.outputs.COMMIT_TAG }}" - echo "LAST_COMMIT_TAG: ${{ steps.step2.outputs.LAST_COMMIT_TAG }}" - echo "DEVELOP_TAG: ${{ steps.step2.outputs.DEVELOP_TAG }}" - echo "COMMON_ANCESTOR_TAG: ${{ steps.step2.outputs.COMMON_ANCESTOR_TAG }}" - echo "UNTESTED_TAG_SUFFIX: ${{ steps.step2.outputs.UNTESTED_TAG_SUFFIX }}" + echo "COMMIT_TAG: ${{ steps.step1.outputs.COMMIT_TAG }}" + echo "LAST_COMMIT_TAG: ${{ steps.step1.outputs.LAST_COMMIT_TAG }}" + echo "DEVELOP_TAG: ${{ steps.step1.outputs.DEVELOP_TAG }}" diff --git a/.github/workflows/reuse-tag-without-untested-suffix.yml b/.github/workflows/reuse-tag-with-develop.yml similarity index 65% rename from .github/workflows/reuse-tag-without-untested-suffix.yml rename to .github/workflows/reuse-tag-with-develop.yml index 2eb3f943f..dd55b2457 100644 --- a/.github/workflows/reuse-tag-without-untested-suffix.yml +++ b/.github/workflows/reuse-tag-with-develop.yml @@ -8,9 +8,6 @@ on: develop_tag: required: true type: string - untested_tag_suffix: - required: true - type: string image_names: required: true type: string @@ -21,7 +18,7 @@ on: required: true jobs: - tag-without-untested-suffix: + tag-with-develop: runs-on: [self-hosted, ubuntu-20.04, X64, small] name: tag without untested suffix strategy: @@ -36,7 +33,4 @@ jobs: - name: Tag Docker image with develop if on main branch if: ${{ github.ref == 'refs/heads/main' }} run: | - docker buildx imagetools create --tag ${{ matrix.image_name }}:${{ inputs.develop_tag }} ${{ matrix.image_name }}:${{ inputs.commit_tag }}-${{ inputs.untested_tag_suffix }} - - name: Tag Docker image with the commit hash (without the "untested" suffix) - run: | - docker buildx imagetools create --tag ${{ matrix.image_name }}:${{ inputs.commit_tag }} ${{ matrix.image_name }}:${{ inputs.commit_tag }}-${{ inputs.untested_tag_suffix }} + docker buildx imagetools create --tag ${{ matrix.image_name }}:${{ inputs.develop_tag }} diff --git a/.github/workflows/traces-api-facade-build-and-publish.yml b/.github/workflows/traces-api-facade-build-and-publish.yml index e2dd28bbd..9eff36cb8 100644 --- a/.github/workflows/traces-api-facade-build-and-publish.yml +++ b/.github/workflows/traces-api-facade-build-and-publish.yml @@ -6,26 +6,28 @@ on: commit_tag: required: true type: string - last_commit_tag: - required: true - type: string - common_ancestor_tag: - required: true - type: string develop_tag: required: true type: string - untested_tag_suffix: - required: true - type: string image_name: required: true type: string + push_image: + required: true + type: boolean + default: false secrets: DOCKERHUB_USERNAME: required: true DOCKERHUB_TOKEN: required: true + workflow_dispatch: + inputs: + push_image: + description: 'Toggle whether to push image to docker registry' + required: true + type: boolean + default: true concurrency: group: traces-api-facade-build-and-publish-${{ github.workflow }}-${{ github.ref }} @@ -35,12 +37,23 @@ jobs: build-and-publish: runs-on: [self-hosted, ubuntu-20.04, X64, small] name: Traces api facade build - env: - COMMIT_TAG: ${{ inputs.commit_tag }} - DEVELOP_TAG: ${{ inputs.develop_tag }} - UNTESTED_TAG_SUFFIX: ${{ inputs.untested_tag_suffix }} - IMAGE_NAME: ${{ inputs.image_name }} steps: + - name: Set environment variables for workflow_call + if: github.event_name == 'workflow_call' + run: | + echo "COMMIT_TAG=${{ inputs.commit_tag }}" >> $GITHUB_ENV + echo "DEVELOP_TAG=${{ inputs.develop_tag }}" >> $GITHUB_ENV + echo "IMAGE_NAME=${{ inputs.image_name }}" >> $GITHUB_ENV + echo "PUSH_IMAGE=${{ inputs.push_image }}" >> $GITHUB_ENV + echo "TAGS=${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }},${{ env.IMAGE_NAME }}:${{ env.DEVELOP_TAG }}" >> $GITHUB_ENV + - name: Set environment variables for manual workflow_dispatch + if: github.event_name == 'workflow_dispatch' + run: | + echo COMMIT_TAG=$(git rev-parse --short "$GITHUB_SHA") >> $GITHUB_ENV + echo DEVELOP_TAG=develop >> $GITHUB_ENV + echo "IMAGE_NAME=consensys/linea-traces-api-facade" >> $GITHUB_ENV + echo "PUSH_IMAGE=${{ inputs.push_image }}" >> $GITHUB_ENV + echo "TAGS=${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }}" >> $GITHUB_ENV - name: Checkout uses: actions/checkout@v3 with: @@ -78,8 +91,8 @@ jobs: build-contexts: jar=./traces-api-facade/app/build/libs/ file: ./traces-api-facade/Dockerfile platforms: linux/amd64,linux/arm64 - push: true - tags: | - ${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }}-${{ env.UNTESTED_TAG_SUFFIX }} + load: ${{ !env.PUSH_IMAGE }} + push: ${{ env.PUSH_IMAGE }} + tags: ${{ env.TAGS }} cache-from: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache cache-to: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache,mode=max From 77b1dd2832c1718ec291c3506dbc3c9fee7b88e7 Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Wed, 16 Oct 2024 20:58:08 +0100 Subject: [PATCH 02/50] GHA - Return develop_tag input --- .github/workflows/build-and-publish.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index dd104f74c..e421edb07 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -9,6 +9,9 @@ on: last_commit_tag: required: true type: string + develop_tag: + required: true + type: string coordinator_changed: required: true type: string @@ -52,6 +55,7 @@ jobs: with: commit_tag: ${{ inputs.commit_tag }} last_commit_tag: ${{ inputs.last_commit_tag }} + develop_tag: ${{ inputs.develop_tag }} image_name: consensys/linea-coordinator secrets: inherit @@ -61,6 +65,7 @@ jobs: with: commit_tag: ${{ inputs.commit_tag }} last_commit_tag: ${{ inputs.last_commit_tag }} + develop_tag: ${{ inputs.develop_tag }} image_name: consensys/linea-prover secrets: inherit @@ -70,6 +75,7 @@ jobs: with: commit_tag: ${{ inputs.commit_tag }} last_commit_tag: ${{ inputs.last_commit_tag }} + develop_tag: ${{ inputs.develop_tag }} image_name: consensys/linea-postman secrets: inherit @@ -79,6 +85,7 @@ jobs: with: commit_tag: ${{ inputs.commit_tag }} last_commit_tag: ${{ inputs.last_commit_tag }} + develop_tag: ${{ inputs.develop_tag }} image_name: consensys/linea-traces-api-facade secrets: inherit From e4e505d1e1b774300fab5b00ab89aa81def0b418 Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Wed, 16 Oct 2024 21:00:45 +0100 Subject: [PATCH 03/50] GHA - push_image input required false --- .github/workflows/coordinator-build-and-publish.yml | 4 ++-- .github/workflows/postman-build-and-publish.yml | 4 ++-- .github/workflows/prover-build-and-publish.yml | 4 ++-- .github/workflows/traces-api-facade-build-and-publish.yml | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/coordinator-build-and-publish.yml b/.github/workflows/coordinator-build-and-publish.yml index 2109a7853..671450d36 100644 --- a/.github/workflows/coordinator-build-and-publish.yml +++ b/.github/workflows/coordinator-build-and-publish.yml @@ -13,7 +13,7 @@ on: required: true type: string push_image: - required: true + required: false type: boolean default: false secrets: @@ -25,7 +25,7 @@ on: inputs: push_image: description: 'Toggle whether to push image to docker registry' - required: true + required: false type: boolean default: true diff --git a/.github/workflows/postman-build-and-publish.yml b/.github/workflows/postman-build-and-publish.yml index 2298c42ac..283c2ee38 100644 --- a/.github/workflows/postman-build-and-publish.yml +++ b/.github/workflows/postman-build-and-publish.yml @@ -13,7 +13,7 @@ on: required: true type: string push_image: - required: true + required: false type: boolean default: false secrets: @@ -25,7 +25,7 @@ on: inputs: push_image: description: 'Toggle whether to push image to docker registry' - required: true + required: false type: boolean default: true diff --git a/.github/workflows/prover-build-and-publish.yml b/.github/workflows/prover-build-and-publish.yml index 827146524..bf1b7f6eb 100644 --- a/.github/workflows/prover-build-and-publish.yml +++ b/.github/workflows/prover-build-and-publish.yml @@ -13,7 +13,7 @@ on: required: true type: string push_image: - required: true + required: false type: boolean default: false secrets: @@ -25,7 +25,7 @@ on: inputs: push_image: description: 'Toggle whether to push image to docker registry' - required: true + required: false type: boolean default: true diff --git a/.github/workflows/traces-api-facade-build-and-publish.yml b/.github/workflows/traces-api-facade-build-and-publish.yml index 9eff36cb8..2a8bf60c4 100644 --- a/.github/workflows/traces-api-facade-build-and-publish.yml +++ b/.github/workflows/traces-api-facade-build-and-publish.yml @@ -13,7 +13,7 @@ on: required: true type: string push_image: - required: true + required: false type: boolean default: false secrets: @@ -25,7 +25,7 @@ on: inputs: push_image: description: 'Toggle whether to push image to docker registry' - required: true + required: false type: boolean default: true From 6a670e63be5db25c5a8bf5e6a69226644f26f51d Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Wed, 16 Oct 2024 21:05:26 +0100 Subject: [PATCH 04/50] GHA - remove input last_commit_tag --- .github/workflows/build-and-publish.yml | 7 ------- .github/workflows/main.yml | 1 - 2 files changed, 8 deletions(-) diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index e421edb07..228a904af 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -6,9 +6,6 @@ on: commit_tag: required: true type: string - last_commit_tag: - required: true - type: string develop_tag: required: true type: string @@ -54,7 +51,6 @@ jobs: if: ${{ always() && (inputs.coordinator_changed == 'true' || inputs.coordinator_image_tagged != 'true') }} with: commit_tag: ${{ inputs.commit_tag }} - last_commit_tag: ${{ inputs.last_commit_tag }} develop_tag: ${{ inputs.develop_tag }} image_name: consensys/linea-coordinator secrets: inherit @@ -64,7 +60,6 @@ jobs: if: ${{ always() && (inputs.prover_changed == 'true' || inputs.prover_image_tagged != 'true') }} with: commit_tag: ${{ inputs.commit_tag }} - last_commit_tag: ${{ inputs.last_commit_tag }} develop_tag: ${{ inputs.develop_tag }} image_name: consensys/linea-prover secrets: inherit @@ -74,7 +69,6 @@ jobs: if: ${{ always() && (inputs.postman_changed == 'true' || inputs.postman_image_tagged != 'true') }} with: commit_tag: ${{ inputs.commit_tag }} - last_commit_tag: ${{ inputs.last_commit_tag }} develop_tag: ${{ inputs.develop_tag }} image_name: consensys/linea-postman secrets: inherit @@ -84,7 +78,6 @@ jobs: if: ${{ always() && (inputs.traces_api_facade_changed == 'true' || inputs.traces_api_facade_image_tagged != 'true') }} with: commit_tag: ${{ inputs.commit_tag }} - last_commit_tag: ${{ inputs.last_commit_tag }} develop_tag: ${{ inputs.develop_tag }} image_name: consensys/linea-traces-api-facade secrets: inherit diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 92c36c339..b3cd58a3c 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -140,7 +140,6 @@ jobs: uses: ./.github/workflows/build-and-publish.yml with: commit_tag: ${{ needs.store-image-name-and-tags.outputs.commit_tag }} - last_commit_tag: ${{ needs.store-image-name-and-tags.outputs.last_commit_tag }} develop_tag: ${{ needs.store-image-name-and-tags.outputs.develop_tag }} coordinator_changed: ${{ needs.filter-commit-changes.outputs.coordinator }} postman_changed: ${{ needs.filter-commit-changes.outputs.postman }} From 2a4a3807c601f4d1e9ce171b830710323363ad0a Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Wed, 16 Oct 2024 21:08:48 +0100 Subject: [PATCH 05/50] GHA - remove input last_commit_tag 2 --- .github/workflows/main.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b3cd58a3c..c9ce81fd7 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -221,7 +221,6 @@ jobs: uses: ./.github/workflows/build-and-publish.yml with: commit_tag: ${{ needs.store-image-name-and-tags.outputs.commit_tag }} - last_commit_tag: ${{ needs.store-image-name-and-tags.outputs.last_commit_tag }} develop_tag: ${{ needs.store-image-name-and-tags.outputs.develop_tag }} coordinator_changed: ${{ needs.filter-commit-changes.outputs.coordinator }} postman_changed: ${{ needs.filter-commit-changes.outputs.postman }} From 3392c76b1c75a7ae2ad740f5c6d58b393c2fdec2 Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Wed, 16 Oct 2024 21:24:46 +0100 Subject: [PATCH 06/50] GHA - Fix if statement --- .github/workflows/coordinator-build-and-publish.yml | 4 ++-- .github/workflows/postman-build-and-publish.yml | 4 ++-- .github/workflows/prover-build-and-publish.yml | 4 ++-- .github/workflows/traces-api-facade-build-and-publish.yml | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/coordinator-build-and-publish.yml b/.github/workflows/coordinator-build-and-publish.yml index 671450d36..469300132 100644 --- a/.github/workflows/coordinator-build-and-publish.yml +++ b/.github/workflows/coordinator-build-and-publish.yml @@ -39,7 +39,7 @@ jobs: name: Coordinator build steps: - name: Set environment variables for workflow_call - if: github.event_name == 'workflow_call' + if: ${{ github.event_name == 'workflow_call' }} run: | echo "COMMIT_TAG=${{ inputs.commit_tag }}" >> $GITHUB_ENV echo "DEVELOP_TAG=${{ inputs.develop_tag }}" >> $GITHUB_ENV @@ -47,7 +47,7 @@ jobs: echo "PUSH_IMAGE=${{ inputs.push_image }}" >> $GITHUB_ENV echo "TAGS=${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }},${{ env.IMAGE_NAME }}:${{ env.DEVELOP_TAG }}" >> $GITHUB_ENV - name: Set environment variables for manual workflow_dispatch - if: github.event_name == 'workflow_dispatch' + if: ${{ github.event_name == 'workflow_dispatch' }} run: | echo COMMIT_TAG=$(git rev-parse --short "$GITHUB_SHA") >> $GITHUB_ENV echo DEVELOP_TAG=develop >> $GITHUB_ENV diff --git a/.github/workflows/postman-build-and-publish.yml b/.github/workflows/postman-build-and-publish.yml index 283c2ee38..e1a5b121b 100644 --- a/.github/workflows/postman-build-and-publish.yml +++ b/.github/workflows/postman-build-and-publish.yml @@ -39,7 +39,7 @@ jobs: name: Postman build steps: - name: Set environment variables for workflow_call - if: github.event_name == 'workflow_call' + if: ${{ github.event_name == 'workflow_call' }} run: | echo "COMMIT_TAG=${{ inputs.commit_tag }}" >> $GITHUB_ENV echo "DEVELOP_TAG=${{ inputs.develop_tag }}" >> $GITHUB_ENV @@ -47,7 +47,7 @@ jobs: echo "PUSH_IMAGE=${{ inputs.push_image }}" >> $GITHUB_ENV echo "TAGS=${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }},${{ env.IMAGE_NAME }}:${{ env.DEVELOP_TAG }}" >> $GITHUB_ENV - name: Set environment variables for manual workflow_dispatch - if: github.event_name == 'workflow_dispatch' + if: ${{ github.event_name == 'workflow_dispatch' }} run: | echo COMMIT_TAG=$(git rev-parse --short "$GITHUB_SHA") >> $GITHUB_ENV echo DEVELOP_TAG=develop >> $GITHUB_ENV diff --git a/.github/workflows/prover-build-and-publish.yml b/.github/workflows/prover-build-and-publish.yml index bf1b7f6eb..0180743ac 100644 --- a/.github/workflows/prover-build-and-publish.yml +++ b/.github/workflows/prover-build-and-publish.yml @@ -42,7 +42,7 @@ jobs: name: Prover build steps: - name: Set environment variables for workflow_call - if: github.event_name == 'workflow_call' + if: ${{ github.event_name == 'workflow_call' }} run: | echo "COMMIT_TAG=${{ inputs.commit_tag }}" >> $GITHUB_ENV echo "DEVELOP_TAG=${{ inputs.develop_tag }}" >> $GITHUB_ENV @@ -50,7 +50,7 @@ jobs: echo "PUSH_IMAGE=${{ inputs.push_image }}" >> $GITHUB_ENV echo "TAGS=${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }},${{ env.IMAGE_NAME }}:${{ env.DEVELOP_TAG }}" >> $GITHUB_ENV - name: Set environment variables for manual workflow_dispatch - if: github.event_name == 'workflow_dispatch' + if: ${{ github.event_name == 'workflow_dispatch' }} run: | echo COMMIT_TAG=$(git rev-parse --short "$GITHUB_SHA") >> $GITHUB_ENV echo DEVELOP_TAG=develop >> $GITHUB_ENV diff --git a/.github/workflows/traces-api-facade-build-and-publish.yml b/.github/workflows/traces-api-facade-build-and-publish.yml index 2a8bf60c4..d83cfe366 100644 --- a/.github/workflows/traces-api-facade-build-and-publish.yml +++ b/.github/workflows/traces-api-facade-build-and-publish.yml @@ -39,7 +39,7 @@ jobs: name: Traces api facade build steps: - name: Set environment variables for workflow_call - if: github.event_name == 'workflow_call' + if: ${{ github.event_name == 'workflow_call' }} run: | echo "COMMIT_TAG=${{ inputs.commit_tag }}" >> $GITHUB_ENV echo "DEVELOP_TAG=${{ inputs.develop_tag }}" >> $GITHUB_ENV @@ -47,7 +47,7 @@ jobs: echo "PUSH_IMAGE=${{ inputs.push_image }}" >> $GITHUB_ENV echo "TAGS=${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }},${{ env.IMAGE_NAME }}:${{ env.DEVELOP_TAG }}" >> $GITHUB_ENV - name: Set environment variables for manual workflow_dispatch - if: github.event_name == 'workflow_dispatch' + if: ${{ github.event_name == 'workflow_dispatch' }} run: | echo COMMIT_TAG=$(git rev-parse --short "$GITHUB_SHA") >> $GITHUB_ENV echo DEVELOP_TAG=develop >> $GITHUB_ENV From 45b5a5fda0b06a612ccc6932fb0dc86f63400cf4 Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Wed, 16 Oct 2024 21:30:46 +0100 Subject: [PATCH 07/50] GHA - Debug event name --- .github/workflows/traces-api-facade-build-and-publish.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/traces-api-facade-build-and-publish.yml b/.github/workflows/traces-api-facade-build-and-publish.yml index d83cfe366..927de0624 100644 --- a/.github/workflows/traces-api-facade-build-and-publish.yml +++ b/.github/workflows/traces-api-facade-build-and-publish.yml @@ -38,6 +38,9 @@ jobs: runs-on: [self-hosted, ubuntu-20.04, X64, small] name: Traces api facade build steps: + - name: debug + run: | + echo "${{ github.event_name }}" - name: Set environment variables for workflow_call if: ${{ github.event_name == 'workflow_call' }} run: | From d55d39e852bd9bd70fd2b2b4a5eb1528bf3951f3 Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Wed, 16 Oct 2024 21:34:02 +0100 Subject: [PATCH 08/50] GHA - Fix event name check --- .github/workflows/coordinator-build-and-publish.yml | 2 +- .github/workflows/postman-build-and-publish.yml | 2 +- .github/workflows/prover-build-and-publish.yml | 2 +- .github/workflows/traces-api-facade-build-and-publish.yml | 5 +---- 4 files changed, 4 insertions(+), 7 deletions(-) diff --git a/.github/workflows/coordinator-build-and-publish.yml b/.github/workflows/coordinator-build-and-publish.yml index 469300132..1ba7e6b28 100644 --- a/.github/workflows/coordinator-build-and-publish.yml +++ b/.github/workflows/coordinator-build-and-publish.yml @@ -39,7 +39,7 @@ jobs: name: Coordinator build steps: - name: Set environment variables for workflow_call - if: ${{ github.event_name == 'workflow_call' }} + if: ${{ github.event_name == 'pull_request' }} run: | echo "COMMIT_TAG=${{ inputs.commit_tag }}" >> $GITHUB_ENV echo "DEVELOP_TAG=${{ inputs.develop_tag }}" >> $GITHUB_ENV diff --git a/.github/workflows/postman-build-and-publish.yml b/.github/workflows/postman-build-and-publish.yml index e1a5b121b..7224949d5 100644 --- a/.github/workflows/postman-build-and-publish.yml +++ b/.github/workflows/postman-build-and-publish.yml @@ -39,7 +39,7 @@ jobs: name: Postman build steps: - name: Set environment variables for workflow_call - if: ${{ github.event_name == 'workflow_call' }} + if: ${{ github.event_name == 'pull_request' }} run: | echo "COMMIT_TAG=${{ inputs.commit_tag }}" >> $GITHUB_ENV echo "DEVELOP_TAG=${{ inputs.develop_tag }}" >> $GITHUB_ENV diff --git a/.github/workflows/prover-build-and-publish.yml b/.github/workflows/prover-build-and-publish.yml index 0180743ac..8f6df44a6 100644 --- a/.github/workflows/prover-build-and-publish.yml +++ b/.github/workflows/prover-build-and-publish.yml @@ -42,7 +42,7 @@ jobs: name: Prover build steps: - name: Set environment variables for workflow_call - if: ${{ github.event_name == 'workflow_call' }} + if: ${{ github.event_name == 'pull_request' }} run: | echo "COMMIT_TAG=${{ inputs.commit_tag }}" >> $GITHUB_ENV echo "DEVELOP_TAG=${{ inputs.develop_tag }}" >> $GITHUB_ENV diff --git a/.github/workflows/traces-api-facade-build-and-publish.yml b/.github/workflows/traces-api-facade-build-and-publish.yml index 927de0624..6b8758ac6 100644 --- a/.github/workflows/traces-api-facade-build-and-publish.yml +++ b/.github/workflows/traces-api-facade-build-and-publish.yml @@ -38,11 +38,8 @@ jobs: runs-on: [self-hosted, ubuntu-20.04, X64, small] name: Traces api facade build steps: - - name: debug - run: | - echo "${{ github.event_name }}" - name: Set environment variables for workflow_call - if: ${{ github.event_name == 'workflow_call' }} + if: ${{ github.event_name == 'pull_request' }} run: | echo "COMMIT_TAG=${{ inputs.commit_tag }}" >> $GITHUB_ENV echo "DEVELOP_TAG=${{ inputs.develop_tag }}" >> $GITHUB_ENV From 823a18f5bcddf66e22ec0d352f2dd06f729ecf7a Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Wed, 16 Oct 2024 21:43:08 +0100 Subject: [PATCH 09/50] GHA - Fix tags env var --- .github/workflows/coordinator-build-and-publish.yml | 4 ++-- .github/workflows/postman-build-and-publish.yml | 4 ++-- .github/workflows/prover-build-and-publish.yml | 4 ++-- .github/workflows/traces-api-facade-build-and-publish.yml | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/coordinator-build-and-publish.yml b/.github/workflows/coordinator-build-and-publish.yml index 1ba7e6b28..7493e5b1e 100644 --- a/.github/workflows/coordinator-build-and-publish.yml +++ b/.github/workflows/coordinator-build-and-publish.yml @@ -45,7 +45,7 @@ jobs: echo "DEVELOP_TAG=${{ inputs.develop_tag }}" >> $GITHUB_ENV echo "IMAGE_NAME=${{ inputs.image_name }}" >> $GITHUB_ENV echo "PUSH_IMAGE=${{ inputs.push_image }}" >> $GITHUB_ENV - echo "TAGS=${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }},${{ env.IMAGE_NAME }}:${{ env.DEVELOP_TAG }}" >> $GITHUB_ENV + echo "TAGS=${{ inputs.image_name }}:${{ inputs.commit_tag }},${{ inputs.image_name }}:${{ inputs.develop_tag }}" >> $GITHUB_ENV - name: Set environment variables for manual workflow_dispatch if: ${{ github.event_name == 'workflow_dispatch' }} run: | @@ -53,7 +53,7 @@ jobs: echo DEVELOP_TAG=develop >> $GITHUB_ENV echo "IMAGE_NAME=consensys/linea-traces-api-facade" >> $GITHUB_ENV echo "PUSH_IMAGE=${{ inputs.push_image }}" >> $GITHUB_ENV - echo "TAGS=${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }}" >> $GITHUB_ENV + echo "TAGS=${{ inputs.image_name }}:${{ inputs.commit_tag }}" >> $GITHUB_ENV - name: Checkout uses: actions/checkout@v4 - uses: actions/setup-java@v4 diff --git a/.github/workflows/postman-build-and-publish.yml b/.github/workflows/postman-build-and-publish.yml index 7224949d5..201d0faf1 100644 --- a/.github/workflows/postman-build-and-publish.yml +++ b/.github/workflows/postman-build-and-publish.yml @@ -45,7 +45,7 @@ jobs: echo "DEVELOP_TAG=${{ inputs.develop_tag }}" >> $GITHUB_ENV echo "IMAGE_NAME=${{ inputs.image_name }}" >> $GITHUB_ENV echo "PUSH_IMAGE=${{ inputs.push_image }}" >> $GITHUB_ENV - echo "TAGS=${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }},${{ env.IMAGE_NAME }}:${{ env.DEVELOP_TAG }}" >> $GITHUB_ENV + echo "TAGS=${{ inputs.image_name }}:${{ inputs.commit_tag }},${{ inputs.image_name }}:${{ inputs.develop_tag }}" >> $GITHUB_ENV - name: Set environment variables for manual workflow_dispatch if: ${{ github.event_name == 'workflow_dispatch' }} run: | @@ -53,7 +53,7 @@ jobs: echo DEVELOP_TAG=develop >> $GITHUB_ENV echo "IMAGE_NAME=consensys/linea-traces-api-facade" >> $GITHUB_ENV echo "PUSH_IMAGE=${{ inputs.push_image }}" >> $GITHUB_ENV - echo "TAGS=${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }}" >> $GITHUB_ENV + echo "TAGS=${{ inputs.image_name }}:${{ inputs.commit_tag }}" >> $GITHUB_ENV - name: Checkout uses: actions/checkout@v3 with: diff --git a/.github/workflows/prover-build-and-publish.yml b/.github/workflows/prover-build-and-publish.yml index 8f6df44a6..e77f2f657 100644 --- a/.github/workflows/prover-build-and-publish.yml +++ b/.github/workflows/prover-build-and-publish.yml @@ -48,7 +48,7 @@ jobs: echo "DEVELOP_TAG=${{ inputs.develop_tag }}" >> $GITHUB_ENV echo "IMAGE_NAME=${{ inputs.image_name }}" >> $GITHUB_ENV echo "PUSH_IMAGE=${{ inputs.push_image }}" >> $GITHUB_ENV - echo "TAGS=${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }},${{ env.IMAGE_NAME }}:${{ env.DEVELOP_TAG }}" >> $GITHUB_ENV + echo "TAGS=${{ inputs.image_name }}:${{ inputs.commit_tag }},${{ inputs.image_name }}:${{ inputs.develop_tag }}" >> $GITHUB_ENV - name: Set environment variables for manual workflow_dispatch if: ${{ github.event_name == 'workflow_dispatch' }} run: | @@ -56,7 +56,7 @@ jobs: echo DEVELOP_TAG=develop >> $GITHUB_ENV echo "IMAGE_NAME=consensys/linea-traces-api-facade" >> $GITHUB_ENV echo "PUSH_IMAGE=${{ inputs.push_image }}" >> $GITHUB_ENV - echo "TAGS=${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }}" >> $GITHUB_ENV + echo "TAGS=${{ inputs.image_name }}:${{ inputs.commit_tag }}" >> $GITHUB_ENV - name: Checkout uses: actions/checkout@v4 with: diff --git a/.github/workflows/traces-api-facade-build-and-publish.yml b/.github/workflows/traces-api-facade-build-and-publish.yml index 6b8758ac6..efeb2c6dc 100644 --- a/.github/workflows/traces-api-facade-build-and-publish.yml +++ b/.github/workflows/traces-api-facade-build-and-publish.yml @@ -45,15 +45,15 @@ jobs: echo "DEVELOP_TAG=${{ inputs.develop_tag }}" >> $GITHUB_ENV echo "IMAGE_NAME=${{ inputs.image_name }}" >> $GITHUB_ENV echo "PUSH_IMAGE=${{ inputs.push_image }}" >> $GITHUB_ENV - echo "TAGS=${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }},${{ env.IMAGE_NAME }}:${{ env.DEVELOP_TAG }}" >> $GITHUB_ENV + echo "TAGS=${{ inputs.image_name }}:${{ inputs.commit_tag }},${{ inputs.image_name }}:${{ inputs.develop_tag }}" >> $GITHUB_ENV - name: Set environment variables for manual workflow_dispatch if: ${{ github.event_name == 'workflow_dispatch' }} run: | echo COMMIT_TAG=$(git rev-parse --short "$GITHUB_SHA") >> $GITHUB_ENV echo DEVELOP_TAG=develop >> $GITHUB_ENV - echo "IMAGE_NAME=consensys/linea-traces-api-facade" >> $GITHUB_ENV + echo "IMAGE_NAME=inputs.image_name" >> $GITHUB_ENV echo "PUSH_IMAGE=${{ inputs.push_image }}" >> $GITHUB_ENV - echo "TAGS=${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }}" >> $GITHUB_ENV + echo "TAGS=${{ inputs.image_name }}:${{ inputs.commit_tag }}" >> $GITHUB_ENV - name: Checkout uses: actions/checkout@v3 with: From fe76bf2913f5059a67c25dbab1611c46e97c9a40 Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Wed, 16 Oct 2024 22:02:12 +0100 Subject: [PATCH 10/50] GHA - Fix load input --- .github/workflows/coordinator-build-and-publish.yml | 2 +- .github/workflows/postman-build-and-publish.yml | 2 +- .github/workflows/prover-build-and-publish.yml | 2 +- .github/workflows/traces-api-facade-build-and-publish.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/coordinator-build-and-publish.yml b/.github/workflows/coordinator-build-and-publish.yml index 7493e5b1e..805169040 100644 --- a/.github/workflows/coordinator-build-and-publish.yml +++ b/.github/workflows/coordinator-build-and-publish.yml @@ -87,7 +87,7 @@ jobs: build-contexts: zip=./coordinator/app/build/distributions/ file: ./coordinator/Dockerfile platforms: linux/amd64,linux/arm64 - load: ${{ !env.PUSH_IMAGE }} + load: true push: ${{ env.PUSH_IMAGE }} tags: ${{ env.TAGS }} cache-from: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache diff --git a/.github/workflows/postman-build-and-publish.yml b/.github/workflows/postman-build-and-publish.yml index 201d0faf1..8c8cf3fc7 100644 --- a/.github/workflows/postman-build-and-publish.yml +++ b/.github/workflows/postman-build-and-publish.yml @@ -81,7 +81,7 @@ jobs: context: ./ file: ./sdk/Dockerfile platforms: linux/amd64,linux/arm64 - load: ${{ !env.PUSH_IMAGE }} + load: true push: ${{ env.PUSH_IMAGE }} tags: ${{ env.TAGS }} cache-from: | diff --git a/.github/workflows/prover-build-and-publish.yml b/.github/workflows/prover-build-and-publish.yml index e77f2f657..81d80d61c 100644 --- a/.github/workflows/prover-build-and-publish.yml +++ b/.github/workflows/prover-build-and-publish.yml @@ -86,7 +86,7 @@ jobs: corset=corset/ constraints=constraints/ platforms: linux/amd64 - load: ${{ !env.PUSH_IMAGE }} + load: true push: ${{ env.PUSH_IMAGE }} tags: ${{ env.TAGS }} cache-from: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache diff --git a/.github/workflows/traces-api-facade-build-and-publish.yml b/.github/workflows/traces-api-facade-build-and-publish.yml index efeb2c6dc..7bf8a010a 100644 --- a/.github/workflows/traces-api-facade-build-and-publish.yml +++ b/.github/workflows/traces-api-facade-build-and-publish.yml @@ -91,7 +91,7 @@ jobs: build-contexts: jar=./traces-api-facade/app/build/libs/ file: ./traces-api-facade/Dockerfile platforms: linux/amd64,linux/arm64 - load: ${{ !env.PUSH_IMAGE }} + load: true push: ${{ env.PUSH_IMAGE }} tags: ${{ env.TAGS }} cache-from: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache From b66f2a7003d4821bddac638c1f58ad75d3726b2d Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Wed, 16 Oct 2024 22:36:31 +0100 Subject: [PATCH 11/50] GHA - Separate steps for pushing images because images can't be loaded with multiple platforms --- .../coordinator-build-and-publish.yml | 15 +++++++++++++- .../workflows/postman-build-and-publish.yml | 20 ++++++++++++++++++- .../traces-api-facade-build-and-publish.yml | 15 +++++++++++++- 3 files changed, 47 insertions(+), 3 deletions(-) diff --git a/.github/workflows/coordinator-build-and-publish.yml b/.github/workflows/coordinator-build-and-publish.yml index 805169040..d4f25739f 100644 --- a/.github/workflows/coordinator-build-and-publish.yml +++ b/.github/workflows/coordinator-build-and-publish.yml @@ -80,14 +80,27 @@ jobs: uses: docker/metadata-action@v3 with: images: ${{ env.IMAGE_NAME }} + - name: Build for testing + uses: docker/build-push-action@v6 + if: ${{ github.event_name == 'pull_request' }} + with: + context: . + build-contexts: zip=./coordinator/app/build/distributions/ + file: ./coordinator/Dockerfile + platforms: linux/amd64 + load: true + push: ${{ env.PUSH_IMAGE }} + tags: ${{ env.TAGS }} + cache-from: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache + cache-to: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache,mode=max - name: Build & push uses: docker/build-push-action@v6 + if: ${{ github.event_name == 'workflow_dispatch' }} with: context: . build-contexts: zip=./coordinator/app/build/distributions/ file: ./coordinator/Dockerfile platforms: linux/amd64,linux/arm64 - load: true push: ${{ env.PUSH_IMAGE }} tags: ${{ env.TAGS }} cache-from: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache diff --git a/.github/workflows/postman-build-and-publish.yml b/.github/workflows/postman-build-and-publish.yml index 8c8cf3fc7..50b25e348 100644 --- a/.github/workflows/postman-build-and-publish.yml +++ b/.github/workflows/postman-build-and-publish.yml @@ -75,13 +75,31 @@ jobs: run: | echo "We inject the commit tag in the docker image ${{ env.COMMIT_TAG }}" echo COMMIT_TAG=${{ env.COMMIT_TAG }} >> $GITHUB_ENV + - name: Build postman image for testing + uses: docker/build-push-action@v6 + if: ${{ github.event_name == 'pull_request' }} + with: + context: ./ + file: ./sdk/Dockerfile + platforms: linux/amd64 + load: true + push: ${{ env.PUSH_IMAGE }} + tags: ${{ env.TAGS }} + cache-from: | + type=registry,ref=${{ env.IMAGE_NAME }}:buildcache-amd64,platform=linux/amd64 + type=registry,ref=${{ env.IMAGE_NAME }}:buildcache-arm64,platform=linux/arm64 + cache-to: | + type=registry,ref=${{ env.IMAGE_NAME }}:buildcache-amd64,mode=max,platform=linux/amd64 + type=registry,ref=${{ env.IMAGE_NAME }}:buildcache-arm64,mode=max,platform=linux/arm64 + build-args: | + NATIVE_LIBS_RELEASE_TAG=blob-libs-v1.0.1 - name: Build and push postman image uses: docker/build-push-action@v6 + if: ${{ github.event_name == 'workflow_dispatch' }} with: context: ./ file: ./sdk/Dockerfile platforms: linux/amd64,linux/arm64 - load: true push: ${{ env.PUSH_IMAGE }} tags: ${{ env.TAGS }} cache-from: | diff --git a/.github/workflows/traces-api-facade-build-and-publish.yml b/.github/workflows/traces-api-facade-build-and-publish.yml index 7bf8a010a..8d2624040 100644 --- a/.github/workflows/traces-api-facade-build-and-publish.yml +++ b/.github/workflows/traces-api-facade-build-and-publish.yml @@ -84,14 +84,27 @@ jobs: uses: docker/metadata-action@v3 with: images: consensys/linea-traces-api-facade + - name: Build for testing + uses: docker/build-push-action@v6 + if: ${{ github.event_name == 'pull_request' }} + with: + context: . + build-contexts: jar=./traces-api-facade/app/build/libs/ + file: ./traces-api-facade/Dockerfile + platforms: linux/amd64 + load: true + push: ${{ env.PUSH_IMAGE }} + tags: ${{ env.TAGS }} + cache-from: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache + cache-to: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache,mode=max - name: Build & push uses: docker/build-push-action@v6 + if: ${{ github.event_name == 'workflow_dispatch' }} with: context: . build-contexts: jar=./traces-api-facade/app/build/libs/ file: ./traces-api-facade/Dockerfile platforms: linux/amd64,linux/arm64 - load: true push: ${{ env.PUSH_IMAGE }} tags: ${{ env.TAGS }} cache-from: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache From 95014b4c2f382f761a46013427369b6c5ed14c83 Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Thu, 17 Oct 2024 14:12:46 +0100 Subject: [PATCH 12/50] GHA - Add profile for pulling non-local images --- .github/workflows/reuse-run-e2e-tests.yml | 2 +- Makefile | 3 +++ docker/compose.yml | 32 +++++++++++------------ 3 files changed, 20 insertions(+), 17 deletions(-) diff --git a/.github/workflows/reuse-run-e2e-tests.yml b/.github/workflows/reuse-run-e2e-tests.yml index 3f109fce7..1a74b0ace 100644 --- a/.github/workflows/reuse-run-e2e-tests.yml +++ b/.github/workflows/reuse-run-e2e-tests.yml @@ -105,7 +105,7 @@ jobs: retry_wait_seconds: 30 timeout_minutes: 10 command: | - make pull-all-images + make pull-images-for-ci-testing - name: Spin up fresh environment with geth tracing with retry if: ${{ inputs.tracing-engine == 'geth' }} uses: nick-fields/retry@v2 diff --git a/Makefile b/Makefile index bca9ec1b5..c62ad1336 100644 --- a/Makefile +++ b/Makefile @@ -54,6 +54,9 @@ start-whole-environment-traces-v2: pull-all-images: docker compose -f docker/compose.yml -f docker/compose-local-dev-traces-v2.overrides.yml --profile l1 --profile l2 pull +pull-images-for-ci-testing: + docker compose -f docker/compose.yml -f docker/compose-local-dev-traces-v2.overrides.yml --profile ci-testing pull + compile-contracts: cd contracts; \ make compile diff --git a/docker/compose.yml b/docker/compose.yml index fa8bccecc..2071bef49 100644 --- a/docker/compose.yml +++ b/docker/compose.yml @@ -24,7 +24,7 @@ services: hostname: sequencer container_name: sequencer image: consensys/linea-besu:${SEQUENCER_TAG:-24.10-delivery34} - profiles: [ "l2", "l2-bc", "debug" ] + profiles: [ "l2", "l2-bc", "debug", "ci-testing" ] depends_on: linea-besu-sequencer-plugin-downloader: condition: service_completed_successfully @@ -90,7 +90,7 @@ services: hostname: l2-node image: consensys/linea-geth:${ZKGETH_TAG:-0588665} platform: linux/amd64 - profiles: [ "l2", "l2-bc", "debug" ] + profiles: [ "l2", "l2-bc", "debug", "ci-testing" ] depends_on: sequencer: condition: service_healthy @@ -172,7 +172,7 @@ services: hostname: traces-node image: consensys/linea-geth:${ZKGETH_TAG:-0588665} platform: linux/amd64 - profiles: [ "l2", "l2-bc", "debug" ] + profiles: [ "l2", "l2-bc", "debug", "ci-testing" ] depends_on: sequencer: condition: service_healthy @@ -208,7 +208,7 @@ services: image: consensys/linea-prover:b4550ce-untested platform: linux/amd64 # to avoid spinning up on CI for now - profiles: [ "l2" ] + profiles: [ "l2", "ci-testing" ] environment: GOMAXPROCS: 16 CONTROLLER_CONFIG: "/opt/linea/prover/config/controller/controller.config.toml" @@ -230,7 +230,7 @@ services: container_name: postman hostname: postman image: consensys/linea-postman:${POSTMAN_TAG:-5a6fdf3} - profiles: [ "l2", "debug" ] + profiles: [ "l2", "debug", "ci-testing" ] platform: linux/amd64 restart: on-failure depends_on: @@ -288,7 +288,7 @@ services: hostname: traces-api container_name: traces-api image: consensys/linea-traces-api-facade:${TRACES_API_TAG:-e9f2bcc} - profiles: [ "l2", "debug" ] + profiles: [ "l2", "debug", "ci-testing" ] restart: on-failure depends_on: traces-node: @@ -331,7 +331,7 @@ services: container_name: coordinator image: consensys/linea-coordinator:${COORDINATOR_TAG:-2ee4363} platform: linux/amd64 - profiles: [ "l2", "debug" ] + profiles: [ "l2", "debug", "ci-testing" ] depends_on: postgres: condition: service_healthy @@ -367,7 +367,7 @@ services: hostname: web3signer container_name: web3signer image: consensys/web3signer:23.3-jdk17 - profiles: [ "l2", "debug" ] + profiles: [ "l2", "debug", "ci-testing" ] ports: - "9000:9000" command: @@ -396,7 +396,7 @@ services: image: postgres:14.5 hostname: postgres container_name: postgres - profiles: [ "l2", "debug" ] + profiles: [ "l2", "debug", "ci-testing" ] environment: POSTGRES_USER: ${POSTGRES_USER:-postgres} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-postgres} @@ -426,7 +426,7 @@ services: container_name: l1-el-node hostname: l1-el-node image: hyperledger/besu:24.6.0 - profiles: [ "l1", "debug" ] + profiles: [ "l1", "debug", "ci-testing" ] depends_on: l1-node-genesis-generator: condition: service_completed_successfully @@ -458,7 +458,7 @@ services: container_name: l1-cl-node hostname: l1-cl-node image: consensys/teku:24.2.0 - profiles: [ "l1", "debug" ] + profiles: [ "l1", "debug", "ci-testing" ] depends_on: l1-el-node: condition: service_healthy @@ -484,7 +484,7 @@ services: l1-node-genesis-generator: build: context: ./config/l1-node/ - profiles: [ "l1", "debug" ] + profiles: [ "l1", "debug", "ci-testing" ] entrypoint: - /bin/sh - -c @@ -532,7 +532,7 @@ services: image: consensys/linea-besu:linea-delivery-27 hostname: zkbesu-shomei container_name: zkbesu-shomei - profiles: [ "l2", "l2-bc" ] + profiles: [ "l2", "l2-bc", "ci-testing" ] depends_on: shomei-plugin-downloader: condition: service_completed_successfully @@ -578,7 +578,7 @@ services: image: consensys/linea-shomei:2.2.0 hostname: shomei container_name: shomei - profiles: [ "l2", "l2-bc" ] + profiles: [ "l2", "l2-bc", "ci-testing" ] depends_on: zkbesu-shomei: condition: service_started @@ -614,7 +614,7 @@ services: image: consensys/linea-shomei:2.2.0 hostname: shomei-frontend container_name: shomei-frontend - profiles: [ "l2", "l2-bc" ] + profiles: [ "l2", "l2-bc", "ci-testing" ] depends_on: zkbesu-shomei: condition: service_started @@ -655,7 +655,7 @@ services: shomei-plugin-downloader: container_name: shomei-plugin-downloader - profiles: ["l2", "l2-bc"] + profiles: [ "l2", "l2-bc", "ci-testing" ] image: busybox:1.36.1 command: [ "sh", "/file-downloader.sh", "https://github.com/Consensys/besu-shomei-plugin/releases/download/v0.3.1/besu-shomei-plugin-v0.3.1.jar", "/shomei-plugin" ] volumes: From 9f0f1cf9656a1c155954f301223f834fde9844cc Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Thu, 17 Oct 2024 14:12:59 +0100 Subject: [PATCH 13/50] GHA - Clean env vars and correct inputs --- .github/workflows/build-and-publish.yml | 8 +++++ .../coordinator-build-and-publish.yml | 22 +++++------- .github/workflows/main.yml | 15 +++----- .../workflows/postman-build-and-publish.yml | 22 +++++------- .../workflows/prover-build-and-publish.yml | 22 +++++------- .github/workflows/reuse-tag-with-develop.yml | 36 ------------------- .../traces-api-facade-build-and-publish.yml | 22 +++++------- 7 files changed, 44 insertions(+), 103 deletions(-) delete mode 100644 .github/workflows/reuse-tag-with-develop.yml diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index 228a904af..4d2e3588a 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -9,6 +9,10 @@ on: develop_tag: required: true type: string + push_image: + required: false + type: boolean + default: false coordinator_changed: required: true type: string @@ -53,6 +57,7 @@ jobs: commit_tag: ${{ inputs.commit_tag }} develop_tag: ${{ inputs.develop_tag }} image_name: consensys/linea-coordinator + push_image: ${{ inputs.push_image }} secrets: inherit prover: @@ -62,6 +67,7 @@ jobs: commit_tag: ${{ inputs.commit_tag }} develop_tag: ${{ inputs.develop_tag }} image_name: consensys/linea-prover + push_image: ${{ inputs.push_image }} secrets: inherit postman: @@ -71,6 +77,7 @@ jobs: commit_tag: ${{ inputs.commit_tag }} develop_tag: ${{ inputs.develop_tag }} image_name: consensys/linea-postman + push_image: ${{ inputs.push_image }} secrets: inherit traces-api-facade: @@ -80,6 +87,7 @@ jobs: commit_tag: ${{ inputs.commit_tag }} develop_tag: ${{ inputs.develop_tag }} image_name: consensys/linea-traces-api-facade + push_image: ${{ inputs.push_image }} secrets: inherit transaction_exclusion_api: diff --git a/.github/workflows/coordinator-build-and-publish.yml b/.github/workflows/coordinator-build-and-publish.yml index d4f25739f..2882dc047 100644 --- a/.github/workflows/coordinator-build-and-publish.yml +++ b/.github/workflows/coordinator-build-and-publish.yml @@ -37,23 +37,17 @@ jobs: build-and-publish: runs-on: [self-hosted, ubuntu-20.04, X64, small] name: Coordinator build + env: + COMMIT_TAG: ${{ inputs.commit_tag }} + DEVELOP_TAG: ${{ inputs.develop_tag }} + IMAGE_NAME: ${{ inputs.image_name }} + PUSH_IMAGE: ${{ inputs.push_image }} + TAGS: ${{ inputs.image_name }}:${{ inputs.commit_tag }} steps: - - name: Set environment variables for workflow_call - if: ${{ github.event_name == 'pull_request' }} + - name: Set develop tag if main branch + if: ${{ github.ref != 'refs/heads/main' }} run: | - echo "COMMIT_TAG=${{ inputs.commit_tag }}" >> $GITHUB_ENV - echo "DEVELOP_TAG=${{ inputs.develop_tag }}" >> $GITHUB_ENV - echo "IMAGE_NAME=${{ inputs.image_name }}" >> $GITHUB_ENV - echo "PUSH_IMAGE=${{ inputs.push_image }}" >> $GITHUB_ENV echo "TAGS=${{ inputs.image_name }}:${{ inputs.commit_tag }},${{ inputs.image_name }}:${{ inputs.develop_tag }}" >> $GITHUB_ENV - - name: Set environment variables for manual workflow_dispatch - if: ${{ github.event_name == 'workflow_dispatch' }} - run: | - echo COMMIT_TAG=$(git rev-parse --short "$GITHUB_SHA") >> $GITHUB_ENV - echo DEVELOP_TAG=develop >> $GITHUB_ENV - echo "IMAGE_NAME=consensys/linea-traces-api-facade" >> $GITHUB_ENV - echo "PUSH_IMAGE=${{ inputs.push_image }}" >> $GITHUB_ENV - echo "TAGS=${{ inputs.image_name }}:${{ inputs.commit_tag }}" >> $GITHUB_ENV - name: Checkout uses: actions/checkout@v4 - uses: actions/setup-java@v4 diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index c9ce81fd7..f2920549e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -205,31 +205,24 @@ jobs: e2e-tests-logs-dump: true secrets: inherit - tag-after-run-tests-success: - needs: [ store-image-name-and-tags, testing, run-e2e-tests, run-e2e-tests-geth-tracing ] - if: ${{ always() && needs.testing.result == 'success' && needs.run-e2e-tests.outputs.tests_outcome == 'success' && needs.run-e2e-tests-geth-tracing.outputs.tests_outcome == 'success' }} - uses: ./.github/workflows/reuse-tag-with-develop.yml - with: - commit_tag: ${{ needs.store-image-name-and-tags.outputs.commit_tag }} - develop_tag: ${{ needs.store-image-name-and-tags.outputs.develop_tag }} - image_names: '["consensys/linea-coordinator", "consensys/linea-postman", "consensys/linea-prover", "consensys/linea-traces-api-facade", "consensys/linea-transaction-exclusion-api"]' - secrets: inherit - - publish-images-after-run-tests-success: + publish-images-after-run-tests-success-on-main: needs: [ store-image-name-and-tags, testing, run-e2e-tests, run-e2e-tests-geth-tracing, tag-after-run-tests-success ] if: ${{ always() && github.ref == 'refs/heads/main' && needs.testing.result == 'success' && needs.run-e2e-tests.outputs.tests_outcome == 'success' && needs.run-e2e-tests-geth-tracing.outputs.tests_outcome == 'success' }} uses: ./.github/workflows/build-and-publish.yml with: + push_image: 'true' commit_tag: ${{ needs.store-image-name-and-tags.outputs.commit_tag }} develop_tag: ${{ needs.store-image-name-and-tags.outputs.develop_tag }} coordinator_changed: ${{ needs.filter-commit-changes.outputs.coordinator }} postman_changed: ${{ needs.filter-commit-changes.outputs.postman }} prover_changed: ${{ needs.filter-commit-changes.outputs.prover }} traces_api_facade_changed: ${{ needs.filter-commit-changes.outputs.traces-api-facade }} + transaction_exclusion_api_changed: ${{ needs.filter-commit-changes.outputs.transaction-exclusion-api }} coordinator_image_tagged: ${{ needs.check-and-tag-images.outputs.image_tagged_coordinator }} postman_image_tagged: ${{ needs.check-and-tag-images.outputs.image_tagged_postman }} prover_image_tagged: ${{ needs.check-and-tag-images.outputs.image_tagged_prover }} traces_api_facade_image_tagged: ${{ needs.check-and-tag-images.outputs.image_tagged_traces_api_facade }} + transaction_exclusion_api_image_tagged: ${{ needs.check-and-tag-images.outputs.image_tagged_transaction_exclusion_api }} secrets: inherit cleanup-deployments: diff --git a/.github/workflows/postman-build-and-publish.yml b/.github/workflows/postman-build-and-publish.yml index 50b25e348..5fed38a85 100644 --- a/.github/workflows/postman-build-and-publish.yml +++ b/.github/workflows/postman-build-and-publish.yml @@ -37,23 +37,17 @@ jobs: build-and-publish: runs-on: [self-hosted, ubuntu-20.04, X64, small] name: Postman build + env: + COMMIT_TAG: ${{ inputs.commit_tag }} + DEVELOP_TAG: ${{ inputs.develop_tag }} + IMAGE_NAME: ${{ inputs.image_name }} + PUSH_IMAGE: ${{ inputs.push_image }} + TAGS: ${{ inputs.image_name }}:${{ inputs.commit_tag }} steps: - - name: Set environment variables for workflow_call - if: ${{ github.event_name == 'pull_request' }} + - name: Set develop tag if main branch + if: ${{ github.ref != 'refs/heads/main' }} run: | - echo "COMMIT_TAG=${{ inputs.commit_tag }}" >> $GITHUB_ENV - echo "DEVELOP_TAG=${{ inputs.develop_tag }}" >> $GITHUB_ENV - echo "IMAGE_NAME=${{ inputs.image_name }}" >> $GITHUB_ENV - echo "PUSH_IMAGE=${{ inputs.push_image }}" >> $GITHUB_ENV echo "TAGS=${{ inputs.image_name }}:${{ inputs.commit_tag }},${{ inputs.image_name }}:${{ inputs.develop_tag }}" >> $GITHUB_ENV - - name: Set environment variables for manual workflow_dispatch - if: ${{ github.event_name == 'workflow_dispatch' }} - run: | - echo COMMIT_TAG=$(git rev-parse --short "$GITHUB_SHA") >> $GITHUB_ENV - echo DEVELOP_TAG=develop >> $GITHUB_ENV - echo "IMAGE_NAME=consensys/linea-traces-api-facade" >> $GITHUB_ENV - echo "PUSH_IMAGE=${{ inputs.push_image }}" >> $GITHUB_ENV - echo "TAGS=${{ inputs.image_name }}:${{ inputs.commit_tag }}" >> $GITHUB_ENV - name: Checkout uses: actions/checkout@v3 with: diff --git a/.github/workflows/prover-build-and-publish.yml b/.github/workflows/prover-build-and-publish.yml index 81d80d61c..d007d5cc0 100644 --- a/.github/workflows/prover-build-and-publish.yml +++ b/.github/workflows/prover-build-and-publish.yml @@ -40,23 +40,17 @@ jobs: build-and-publish: runs-on: [self-hosted, ubuntu-20.04, X64, small] name: Prover build + env: + COMMIT_TAG: ${{ inputs.commit_tag }} + DEVELOP_TAG: ${{ inputs.develop_tag }} + IMAGE_NAME: ${{ inputs.image_name }} + PUSH_IMAGE: ${{ inputs.push_image }} + TAGS: ${{ inputs.image_name }}:${{ inputs.commit_tag }} steps: - - name: Set environment variables for workflow_call - if: ${{ github.event_name == 'pull_request' }} + - name: Set develop tag if main branch + if: ${{ github.ref != 'refs/heads/main' }} run: | - echo "COMMIT_TAG=${{ inputs.commit_tag }}" >> $GITHUB_ENV - echo "DEVELOP_TAG=${{ inputs.develop_tag }}" >> $GITHUB_ENV - echo "IMAGE_NAME=${{ inputs.image_name }}" >> $GITHUB_ENV - echo "PUSH_IMAGE=${{ inputs.push_image }}" >> $GITHUB_ENV echo "TAGS=${{ inputs.image_name }}:${{ inputs.commit_tag }},${{ inputs.image_name }}:${{ inputs.develop_tag }}" >> $GITHUB_ENV - - name: Set environment variables for manual workflow_dispatch - if: ${{ github.event_name == 'workflow_dispatch' }} - run: | - echo COMMIT_TAG=$(git rev-parse --short "$GITHUB_SHA") >> $GITHUB_ENV - echo DEVELOP_TAG=develop >> $GITHUB_ENV - echo "IMAGE_NAME=consensys/linea-traces-api-facade" >> $GITHUB_ENV - echo "PUSH_IMAGE=${{ inputs.push_image }}" >> $GITHUB_ENV - echo "TAGS=${{ inputs.image_name }}:${{ inputs.commit_tag }}" >> $GITHUB_ENV - name: Checkout uses: actions/checkout@v4 with: diff --git a/.github/workflows/reuse-tag-with-develop.yml b/.github/workflows/reuse-tag-with-develop.yml deleted file mode 100644 index dd55b2457..000000000 --- a/.github/workflows/reuse-tag-with-develop.yml +++ /dev/null @@ -1,36 +0,0 @@ -name: Reusable tag without untested suffix -on: - workflow_call: - inputs: - commit_tag: - required: true - type: string - develop_tag: - required: true - type: string - image_names: - required: true - type: string - secrets: - DOCKERHUB_USERNAME: - required: true - DOCKERHUB_TOKEN: - required: true - -jobs: - tag-with-develop: - runs-on: [self-hosted, ubuntu-20.04, X64, small] - name: tag without untested suffix - strategy: - matrix: - image_name: ${{ fromJSON(inputs.image_names) }} - steps: - - name: Login to Docker Hub - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Tag Docker image with develop if on main branch - if: ${{ github.ref == 'refs/heads/main' }} - run: | - docker buildx imagetools create --tag ${{ matrix.image_name }}:${{ inputs.develop_tag }} diff --git a/.github/workflows/traces-api-facade-build-and-publish.yml b/.github/workflows/traces-api-facade-build-and-publish.yml index 8d2624040..76ea6a3ba 100644 --- a/.github/workflows/traces-api-facade-build-and-publish.yml +++ b/.github/workflows/traces-api-facade-build-and-publish.yml @@ -37,23 +37,17 @@ jobs: build-and-publish: runs-on: [self-hosted, ubuntu-20.04, X64, small] name: Traces api facade build + env: + COMMIT_TAG: ${{ inputs.commit_tag }} + DEVELOP_TAG: ${{ inputs.develop_tag }} + IMAGE_NAME: ${{ inputs.image_name }} + PUSH_IMAGE: ${{ inputs.push_image }} + TAGS: ${{ inputs.image_name }}:${{ inputs.commit_tag }} steps: - - name: Set environment variables for workflow_call - if: ${{ github.event_name == 'pull_request' }} + - name: Set develop tag if main branch + if: ${{ github.ref != 'refs/heads/main' }} run: | - echo "COMMIT_TAG=${{ inputs.commit_tag }}" >> $GITHUB_ENV - echo "DEVELOP_TAG=${{ inputs.develop_tag }}" >> $GITHUB_ENV - echo "IMAGE_NAME=${{ inputs.image_name }}" >> $GITHUB_ENV - echo "PUSH_IMAGE=${{ inputs.push_image }}" >> $GITHUB_ENV echo "TAGS=${{ inputs.image_name }}:${{ inputs.commit_tag }},${{ inputs.image_name }}:${{ inputs.develop_tag }}" >> $GITHUB_ENV - - name: Set environment variables for manual workflow_dispatch - if: ${{ github.event_name == 'workflow_dispatch' }} - run: | - echo COMMIT_TAG=$(git rev-parse --short "$GITHUB_SHA") >> $GITHUB_ENV - echo DEVELOP_TAG=develop >> $GITHUB_ENV - echo "IMAGE_NAME=inputs.image_name" >> $GITHUB_ENV - echo "PUSH_IMAGE=${{ inputs.push_image }}" >> $GITHUB_ENV - echo "TAGS=${{ inputs.image_name }}:${{ inputs.commit_tag }}" >> $GITHUB_ENV - name: Checkout uses: actions/checkout@v3 with: From bc8ac2182f7d36262e7344a0b9d64fa32a796176 Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Thu, 17 Oct 2024 14:14:42 +0100 Subject: [PATCH 14/50] GHA - Remove requirement of removed job --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f2920549e..b15bdcbbb 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -206,7 +206,7 @@ jobs: secrets: inherit publish-images-after-run-tests-success-on-main: - needs: [ store-image-name-and-tags, testing, run-e2e-tests, run-e2e-tests-geth-tracing, tag-after-run-tests-success ] + needs: [ store-image-name-and-tags, testing, run-e2e-tests, run-e2e-tests-geth-tracing ] if: ${{ always() && github.ref == 'refs/heads/main' && needs.testing.result == 'success' && needs.run-e2e-tests.outputs.tests_outcome == 'success' && needs.run-e2e-tests-geth-tracing.outputs.tests_outcome == 'success' }} uses: ./.github/workflows/build-and-publish.yml with: From 14244eae61518aec2dcb9fb47f7ffc4ceed42e09 Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Thu, 17 Oct 2024 14:15:39 +0100 Subject: [PATCH 15/50] GHA - Fix push_image type --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b15bdcbbb..6445194aa 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -210,7 +210,7 @@ jobs: if: ${{ always() && github.ref == 'refs/heads/main' && needs.testing.result == 'success' && needs.run-e2e-tests.outputs.tests_outcome == 'success' && needs.run-e2e-tests-geth-tracing.outputs.tests_outcome == 'success' }} uses: ./.github/workflows/build-and-publish.yml with: - push_image: 'true' + push_image: true commit_tag: ${{ needs.store-image-name-and-tags.outputs.commit_tag }} develop_tag: ${{ needs.store-image-name-and-tags.outputs.develop_tag }} coordinator_changed: ${{ needs.filter-commit-changes.outputs.coordinator }} From edd36cdf8c4af717a95e4b3a5470355156b06a88 Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Thu, 17 Oct 2024 14:38:00 +0100 Subject: [PATCH 16/50] GHA - Remove profile from local image containers --- docker/compose-local-dev-traces-v2.overrides.yml | 2 +- docker/compose.yml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docker/compose-local-dev-traces-v2.overrides.yml b/docker/compose-local-dev-traces-v2.overrides.yml index e4397f965..e184e565b 100644 --- a/docker/compose-local-dev-traces-v2.overrides.yml +++ b/docker/compose-local-dev-traces-v2.overrides.yml @@ -27,7 +27,7 @@ services: hostname: traces-node-v2 container_name: traces-node-v2 image: consensys/linea-besu:24.9-delivery32 - profiles: [ "l2", "l2-bc", "debug" ] + profiles: [ "l2", "l2-bc", "debug", "ci-testing" ] depends_on: traces-node-v2-plugin-downloader: condition: service_completed_successfully diff --git a/docker/compose.yml b/docker/compose.yml index 2071bef49..94f5470fd 100644 --- a/docker/compose.yml +++ b/docker/compose.yml @@ -208,7 +208,7 @@ services: image: consensys/linea-prover:b4550ce-untested platform: linux/amd64 # to avoid spinning up on CI for now - profiles: [ "l2", "ci-testing" ] + profiles: [ "l2" ] environment: GOMAXPROCS: 16 CONTROLLER_CONFIG: "/opt/linea/prover/config/controller/controller.config.toml" @@ -230,7 +230,7 @@ services: container_name: postman hostname: postman image: consensys/linea-postman:${POSTMAN_TAG:-5a6fdf3} - profiles: [ "l2", "debug", "ci-testing" ] + profiles: [ "l2", "debug" ] platform: linux/amd64 restart: on-failure depends_on: @@ -288,7 +288,7 @@ services: hostname: traces-api container_name: traces-api image: consensys/linea-traces-api-facade:${TRACES_API_TAG:-e9f2bcc} - profiles: [ "l2", "debug", "ci-testing" ] + profiles: [ "l2", "debug" ] restart: on-failure depends_on: traces-node: @@ -331,7 +331,7 @@ services: container_name: coordinator image: consensys/linea-coordinator:${COORDINATOR_TAG:-2ee4363} platform: linux/amd64 - profiles: [ "l2", "debug", "ci-testing" ] + profiles: [ "l2", "debug" ] depends_on: postgres: condition: service_healthy From f0d3c58278fcc994c6e5e53a78bd73a753877aa3 Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Thu, 17 Oct 2024 15:45:54 +0100 Subject: [PATCH 17/50] GHA - Store docker image artifact and download in e2e test job --- .../workflows/coordinator-build-and-publish.yml | 17 +++++++++++++++-- .github/workflows/postman-build-and-publish.yml | 13 ++++++++++++- .github/workflows/prover-build-and-publish.yml | 13 ++++++++++++- .github/workflows/reuse-run-e2e-tests.yml | 9 +++++++++ .../traces-api-facade-build-and-publish.yml | 13 ++++++++++++- 5 files changed, 60 insertions(+), 5 deletions(-) diff --git a/.github/workflows/coordinator-build-and-publish.yml b/.github/workflows/coordinator-build-and-publish.yml index 2882dc047..ed52b0100 100644 --- a/.github/workflows/coordinator-build-and-publish.yml +++ b/.github/workflows/coordinator-build-and-publish.yml @@ -45,7 +45,7 @@ jobs: TAGS: ${{ inputs.image_name }}:${{ inputs.commit_tag }} steps: - name: Set develop tag if main branch - if: ${{ github.ref != 'refs/heads/main' }} + if: ${{ github.ref == 'refs/heads/main' }} run: | echo "TAGS=${{ inputs.image_name }}:${{ inputs.commit_tag }},${{ inputs.image_name }}:${{ inputs.develop_tag }}" >> $GITHUB_ENV - name: Checkout @@ -66,9 +66,11 @@ jobs: password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Set up QEMU uses: docker/setup-qemu-action@v3 - - name: Set up Docker Buildx + - name: Set up Docker Buildx - local id: buildx uses: docker/setup-buildx-action@v3 + with: + driver: docker - name: Docker meta id: coordinator uses: docker/metadata-action@v3 @@ -87,6 +89,17 @@ jobs: tags: ${{ env.TAGS }} cache-from: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache cache-to: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache,mode=max + - name: Save Docker image as artifact + if: ${{ github.event_name == 'pull_request' }} + run: | + docker save ${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }} | gzip > linea-coordinator.tar.gz + shell: bash + - name: Upload artifact + if: ${{ github.event_name == 'pull_request' }} + uses: actions/upload-artifact@v4 + with: + name: linea-coordinator + path: linea-coordinator.tar.gz - name: Build & push uses: docker/build-push-action@v6 if: ${{ github.event_name == 'workflow_dispatch' }} diff --git a/.github/workflows/postman-build-and-publish.yml b/.github/workflows/postman-build-and-publish.yml index 5fed38a85..e8d1882b7 100644 --- a/.github/workflows/postman-build-and-publish.yml +++ b/.github/workflows/postman-build-and-publish.yml @@ -45,7 +45,7 @@ jobs: TAGS: ${{ inputs.image_name }}:${{ inputs.commit_tag }} steps: - name: Set develop tag if main branch - if: ${{ github.ref != 'refs/heads/main' }} + if: ${{ github.ref == 'refs/heads/main' }} run: | echo "TAGS=${{ inputs.image_name }}:${{ inputs.commit_tag }},${{ inputs.image_name }}:${{ inputs.develop_tag }}" >> $GITHUB_ENV - name: Checkout @@ -87,6 +87,17 @@ jobs: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache-arm64,mode=max,platform=linux/arm64 build-args: | NATIVE_LIBS_RELEASE_TAG=blob-libs-v1.0.1 + - name: Save Docker image as artifact + if: ${{ github.event_name == 'pull_request' }} + run: | + docker save ${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }} | gzip > linea-postman.tar.gz + shell: bash + - name: Upload artifact + if: ${{ github.event_name == 'pull_request' }} + uses: actions/upload-artifact@v4 + with: + name: linea-postman + path: linea-postman.tar.gz - name: Build and push postman image uses: docker/build-push-action@v6 if: ${{ github.event_name == 'workflow_dispatch' }} diff --git a/.github/workflows/prover-build-and-publish.yml b/.github/workflows/prover-build-and-publish.yml index d007d5cc0..77af112f9 100644 --- a/.github/workflows/prover-build-and-publish.yml +++ b/.github/workflows/prover-build-and-publish.yml @@ -48,7 +48,7 @@ jobs: TAGS: ${{ inputs.image_name }}:${{ inputs.commit_tag }} steps: - name: Set develop tag if main branch - if: ${{ github.ref != 'refs/heads/main' }} + if: ${{ github.ref == 'refs/heads/main' }} run: | echo "TAGS=${{ inputs.image_name }}:${{ inputs.commit_tag }},${{ inputs.image_name }}:${{ inputs.develop_tag }}" >> $GITHUB_ENV - name: Checkout @@ -85,3 +85,14 @@ jobs: tags: ${{ env.TAGS }} cache-from: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache cache-to: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache,mode=max + - name: Save Docker image as artifact + if: ${{ github.event_name == 'pull_request' }} + run: | + docker save ${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }} | gzip > linea-prover.tar.gz + shell: bash + - name: Upload artifact + if: ${{ github.event_name == 'pull_request' }} + uses: actions/upload-artifact@v4 + with: + name: linea-prover + path: linea-prover.tar.gz diff --git a/.github/workflows/reuse-run-e2e-tests.yml b/.github/workflows/reuse-run-e2e-tests.yml index 1a74b0ace..2db019c0e 100644 --- a/.github/workflows/reuse-run-e2e-tests.yml +++ b/.github/workflows/reuse-run-e2e-tests.yml @@ -106,6 +106,15 @@ jobs: timeout_minutes: 10 command: | make pull-images-for-ci-testing + - name: Download local docker images + uses: actions/download-artifact@v4 + - name: Load Docker image + run: | + gunzip -c linea-coordinator.tar.gz | docker load && + gunzip -c linea-postman.tar.gz | docker load && + gunzip -c linea-prover.tar.gz | docker load && + gunzip -c linea-traces-api-facade.tar.gz | docker load && + shell: bash - name: Spin up fresh environment with geth tracing with retry if: ${{ inputs.tracing-engine == 'geth' }} uses: nick-fields/retry@v2 diff --git a/.github/workflows/traces-api-facade-build-and-publish.yml b/.github/workflows/traces-api-facade-build-and-publish.yml index 76ea6a3ba..49c870163 100644 --- a/.github/workflows/traces-api-facade-build-and-publish.yml +++ b/.github/workflows/traces-api-facade-build-and-publish.yml @@ -45,7 +45,7 @@ jobs: TAGS: ${{ inputs.image_name }}:${{ inputs.commit_tag }} steps: - name: Set develop tag if main branch - if: ${{ github.ref != 'refs/heads/main' }} + if: ${{ github.ref == 'refs/heads/main' }} run: | echo "TAGS=${{ inputs.image_name }}:${{ inputs.commit_tag }},${{ inputs.image_name }}:${{ inputs.develop_tag }}" >> $GITHUB_ENV - name: Checkout @@ -91,6 +91,17 @@ jobs: tags: ${{ env.TAGS }} cache-from: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache cache-to: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache,mode=max + - name: Save Docker image as artifact + if: ${{ github.event_name == 'pull_request' }} + run: | + docker save ${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }} | gzip > linea-traces-api-facade.tar.gz + shell: bash + - name: Upload artifact + if: ${{ github.event_name == 'pull_request' }} + uses: actions/upload-artifact@v4 + with: + name: linea-traces-api-facade + path: linea-traces-api-facade.tar.gz - name: Build & push uses: docker/build-push-action@v6 if: ${{ github.event_name == 'workflow_dispatch' }} From 22cdb410d341c317c2081a1d4c4d416abcc7ec9a Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Thu, 17 Oct 2024 15:54:27 +0100 Subject: [PATCH 18/50] GHA - remove custom driver input --- .github/workflows/coordinator-build-and-publish.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/coordinator-build-and-publish.yml b/.github/workflows/coordinator-build-and-publish.yml index ed52b0100..23c6321d0 100644 --- a/.github/workflows/coordinator-build-and-publish.yml +++ b/.github/workflows/coordinator-build-and-publish.yml @@ -69,8 +69,6 @@ jobs: - name: Set up Docker Buildx - local id: buildx uses: docker/setup-buildx-action@v3 - with: - driver: docker - name: Docker meta id: coordinator uses: docker/metadata-action@v3 From 7fc648f1eaa3a729e0fe1281656b17398d8292e4 Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Thu, 17 Oct 2024 16:05:40 +0100 Subject: [PATCH 19/50] GHA - Fix end of line --- .github/workflows/reuse-run-e2e-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/reuse-run-e2e-tests.yml b/.github/workflows/reuse-run-e2e-tests.yml index 2db019c0e..a851dd46e 100644 --- a/.github/workflows/reuse-run-e2e-tests.yml +++ b/.github/workflows/reuse-run-e2e-tests.yml @@ -113,7 +113,7 @@ jobs: gunzip -c linea-coordinator.tar.gz | docker load && gunzip -c linea-postman.tar.gz | docker load && gunzip -c linea-prover.tar.gz | docker load && - gunzip -c linea-traces-api-facade.tar.gz | docker load && + gunzip -c linea-traces-api-facade.tar.gz | docker load shell: bash - name: Spin up fresh environment with geth tracing with retry if: ${{ inputs.tracing-engine == 'geth' }} From ed48f9ab0b501d2db208e2ed61f8fe6a438f5d09 Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Thu, 17 Oct 2024 16:44:56 +0100 Subject: [PATCH 20/50] GHA - Set file location --- .github/workflows/reuse-run-e2e-tests.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/reuse-run-e2e-tests.yml b/.github/workflows/reuse-run-e2e-tests.yml index a851dd46e..5f84ba0b1 100644 --- a/.github/workflows/reuse-run-e2e-tests.yml +++ b/.github/workflows/reuse-run-e2e-tests.yml @@ -108,12 +108,12 @@ jobs: make pull-images-for-ci-testing - name: Download local docker images uses: actions/download-artifact@v4 - - name: Load Docker image + - name: Load Docker images run: | - gunzip -c linea-coordinator.tar.gz | docker load && - gunzip -c linea-postman.tar.gz | docker load && - gunzip -c linea-prover.tar.gz | docker load && - gunzip -c linea-traces-api-facade.tar.gz | docker load + gunzip -c /runner/_work/linea-monorepo/linea-monorepo/linea-coordinator.tar.gz | docker load && + gunzip -c /runner/_work/linea-monorepo/linea-monorepo/linea-postman.tar.gz | docker load && + gunzip -c /runner/_work/linea-monorepo/linea-monorepo/linea-prover.tar.gz | docker load && + gunzip -c /runner/_work/linea-monorepo/linea-monorepo/linea-traces-api-facade.tar.gz | docker load shell: bash - name: Spin up fresh environment with geth tracing with retry if: ${{ inputs.tracing-engine == 'geth' }} From 57be36bd1ae6d3e4173d33118bdcc88996a3a2d5 Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Thu, 17 Oct 2024 17:01:08 +0100 Subject: [PATCH 21/50] Test file location Signed-off-by: Bradley Bown --- .github/workflows/reuse-run-e2e-tests.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/reuse-run-e2e-tests.yml b/.github/workflows/reuse-run-e2e-tests.yml index 5f84ba0b1..00b8265af 100644 --- a/.github/workflows/reuse-run-e2e-tests.yml +++ b/.github/workflows/reuse-run-e2e-tests.yml @@ -110,10 +110,10 @@ jobs: uses: actions/download-artifact@v4 - name: Load Docker images run: | - gunzip -c /runner/_work/linea-monorepo/linea-monorepo/linea-coordinator.tar.gz | docker load && - gunzip -c /runner/_work/linea-monorepo/linea-monorepo/linea-postman.tar.gz | docker load && - gunzip -c /runner/_work/linea-monorepo/linea-monorepo/linea-prover.tar.gz | docker load && - gunzip -c /runner/_work/linea-monorepo/linea-monorepo/linea-traces-api-facade.tar.gz | docker load + gunzip -c /runner/_work/linea-monorepo/linea-monorepo/linea-coordinator/linea-coordinator.tar.gz | docker load && + gunzip -c /runner/_work/linea-monorepo/linea-monorepo/linea-postman/linea-postman.tar.gz | docker load && + gunzip -c /runner/_work/linea-monorepo/linea-monorepo/linea-prover/linea-prover.tar.gz | docker load && + gunzip -c /runner/_work/linea-monorepo/linea-monorepo/linea-traces-api-facade/linea-traces-api-facade.tar.gz | docker load shell: bash - name: Spin up fresh environment with geth tracing with retry if: ${{ inputs.tracing-engine == 'geth' }} From 81fb00cc7e481ab290d8039a392e90399d4fefe1 Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Thu, 17 Oct 2024 19:30:33 +0100 Subject: [PATCH 22/50] Testing image publishing --- .../workflows/coordinator-build-and-publish.yml | 10 +++++----- .github/workflows/main.yml | 2 +- .github/workflows/postman-build-and-publish.yml | 6 +++--- .github/workflows/prover-build-and-publish.yml | 4 ++-- .../traces-api-facade-build-and-publish.yml | 14 +++++--------- 5 files changed, 16 insertions(+), 20 deletions(-) diff --git a/.github/workflows/coordinator-build-and-publish.yml b/.github/workflows/coordinator-build-and-publish.yml index 23c6321d0..b4bec8edf 100644 --- a/.github/workflows/coordinator-build-and-publish.yml +++ b/.github/workflows/coordinator-build-and-publish.yml @@ -47,7 +47,7 @@ jobs: - name: Set develop tag if main branch if: ${{ github.ref == 'refs/heads/main' }} run: | - echo "TAGS=${{ inputs.image_name }}:${{ inputs.commit_tag }},${{ inputs.image_name }}:${{ inputs.develop_tag }}" >> $GITHUB_ENV + echo "TAGS=" >> $GITHUB_ENV - name: Checkout uses: actions/checkout@v4 - uses: actions/setup-java@v4 @@ -76,7 +76,7 @@ jobs: images: ${{ env.IMAGE_NAME }} - name: Build for testing uses: docker/build-push-action@v6 - if: ${{ github.event_name == 'pull_request' }} + if: ${{ env.PUSH_IMAGE == 'false' && github.event_name == 'pull_request' }} with: context: . build-contexts: zip=./coordinator/app/build/distributions/ @@ -88,19 +88,19 @@ jobs: cache-from: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache cache-to: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache,mode=max - name: Save Docker image as artifact - if: ${{ github.event_name == 'pull_request' }} + if: ${{ env.PUSH_IMAGE == 'false' && github.event_name == 'pull_request' }} run: | docker save ${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }} | gzip > linea-coordinator.tar.gz shell: bash - name: Upload artifact - if: ${{ github.event_name == 'pull_request' }} + if: ${{ env.PUSH_IMAGE == 'false' && github.event_name == 'pull_request' }} uses: actions/upload-artifact@v4 with: name: linea-coordinator path: linea-coordinator.tar.gz - name: Build & push uses: docker/build-push-action@v6 - if: ${{ github.event_name == 'workflow_dispatch' }} + if: ${{ env.PUSH_IMAGE == 'true' || github.event_name == 'workflow_dispatch' }} with: context: . build-contexts: zip=./coordinator/app/build/distributions/ diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 6445194aa..ed05d04aa 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -207,7 +207,7 @@ jobs: publish-images-after-run-tests-success-on-main: needs: [ store-image-name-and-tags, testing, run-e2e-tests, run-e2e-tests-geth-tracing ] - if: ${{ always() && github.ref == 'refs/heads/main' && needs.testing.result == 'success' && needs.run-e2e-tests.outputs.tests_outcome == 'success' && needs.run-e2e-tests-geth-tracing.outputs.tests_outcome == 'success' }} + if: ${{ always() && github.ref != 'refs/heads/main' && needs.testing.result == 'success' && needs.run-e2e-tests.outputs.tests_outcome == 'success' && needs.run-e2e-tests-geth-tracing.outputs.tests_outcome == 'success' }} uses: ./.github/workflows/build-and-publish.yml with: push_image: true diff --git a/.github/workflows/postman-build-and-publish.yml b/.github/workflows/postman-build-and-publish.yml index e8d1882b7..71790c494 100644 --- a/.github/workflows/postman-build-and-publish.yml +++ b/.github/workflows/postman-build-and-publish.yml @@ -88,19 +88,19 @@ jobs: build-args: | NATIVE_LIBS_RELEASE_TAG=blob-libs-v1.0.1 - name: Save Docker image as artifact - if: ${{ github.event_name == 'pull_request' }} + if: ${{ env.PUSH_IMAGE == 'false' && github.event_name == 'pull_request' }} run: | docker save ${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }} | gzip > linea-postman.tar.gz shell: bash - name: Upload artifact - if: ${{ github.event_name == 'pull_request' }} + if: ${{ env.PUSH_IMAGE == 'false' && github.event_name == 'pull_request' }} uses: actions/upload-artifact@v4 with: name: linea-postman path: linea-postman.tar.gz - name: Build and push postman image uses: docker/build-push-action@v6 - if: ${{ github.event_name == 'workflow_dispatch' }} + if: ${{ env.PUSH_IMAGE == 'true' || github.event_name == 'workflow_dispatch' }} with: context: ./ file: ./sdk/Dockerfile diff --git a/.github/workflows/prover-build-and-publish.yml b/.github/workflows/prover-build-and-publish.yml index 77af112f9..44eb9caf9 100644 --- a/.github/workflows/prover-build-and-publish.yml +++ b/.github/workflows/prover-build-and-publish.yml @@ -86,12 +86,12 @@ jobs: cache-from: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache cache-to: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache,mode=max - name: Save Docker image as artifact - if: ${{ github.event_name == 'pull_request' }} + if: ${{ env.PUSH_IMAGE == 'false' && github.event_name == 'pull_request' }} run: | docker save ${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }} | gzip > linea-prover.tar.gz shell: bash - name: Upload artifact - if: ${{ github.event_name == 'pull_request' }} + if: ${{ env.PUSH_IMAGE == 'false' && github.event_name == 'pull_request' }} uses: actions/upload-artifact@v4 with: name: linea-prover diff --git a/.github/workflows/traces-api-facade-build-and-publish.yml b/.github/workflows/traces-api-facade-build-and-publish.yml index 49c870163..13081ff1d 100644 --- a/.github/workflows/traces-api-facade-build-and-publish.yml +++ b/.github/workflows/traces-api-facade-build-and-publish.yml @@ -44,10 +44,6 @@ jobs: PUSH_IMAGE: ${{ inputs.push_image }} TAGS: ${{ inputs.image_name }}:${{ inputs.commit_tag }} steps: - - name: Set develop tag if main branch - if: ${{ github.ref == 'refs/heads/main' }} - run: | - echo "TAGS=${{ inputs.image_name }}:${{ inputs.commit_tag }},${{ inputs.image_name }}:${{ inputs.develop_tag }}" >> $GITHUB_ENV - name: Checkout uses: actions/checkout@v3 with: @@ -80,7 +76,7 @@ jobs: images: consensys/linea-traces-api-facade - name: Build for testing uses: docker/build-push-action@v6 - if: ${{ github.event_name == 'pull_request' }} + if: ${{ env.PUSH_IMAGE == 'false' && github.event_name == 'pull_request' }} with: context: . build-contexts: jar=./traces-api-facade/app/build/libs/ @@ -92,25 +88,25 @@ jobs: cache-from: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache cache-to: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache,mode=max - name: Save Docker image as artifact - if: ${{ github.event_name == 'pull_request' }} + if: ${{ env.PUSH_IMAGE == 'false' && github.event_name == 'pull_request' }} run: | docker save ${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }} | gzip > linea-traces-api-facade.tar.gz shell: bash - name: Upload artifact - if: ${{ github.event_name == 'pull_request' }} + if: ${{ env.PUSH_IMAGE == 'false' && github.event_name == 'pull_request' }} uses: actions/upload-artifact@v4 with: name: linea-traces-api-facade path: linea-traces-api-facade.tar.gz - name: Build & push uses: docker/build-push-action@v6 - if: ${{ github.event_name == 'workflow_dispatch' }} + if: ${{ env.PUSH_IMAGE == 'true' || github.event_name == 'workflow_dispatch' }} with: context: . build-contexts: jar=./traces-api-facade/app/build/libs/ file: ./traces-api-facade/Dockerfile platforms: linux/amd64,linux/arm64 push: ${{ env.PUSH_IMAGE }} - tags: ${{ env.TAGS }} + tags: ${{ inputs.image_name }}:${{ inputs.commit_tag }},${{ inputs.image_name }}:${{ inputs.develop_tag }} cache-from: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache cache-to: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache,mode=max From 0c588be1f4ed452d1d21c633a662eceb77650915 Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Thu, 17 Oct 2024 19:57:37 +0100 Subject: [PATCH 23/50] Fix load and push error --- .github/workflows/postman-build-and-publish.yml | 2 +- .github/workflows/prover-build-and-publish.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/postman-build-and-publish.yml b/.github/workflows/postman-build-and-publish.yml index 71790c494..319e72de2 100644 --- a/.github/workflows/postman-build-and-publish.yml +++ b/.github/workflows/postman-build-and-publish.yml @@ -71,7 +71,7 @@ jobs: echo COMMIT_TAG=${{ env.COMMIT_TAG }} >> $GITHUB_ENV - name: Build postman image for testing uses: docker/build-push-action@v6 - if: ${{ github.event_name == 'pull_request' }} + if: ${{ env.PUSH_IMAGE == 'false' && github.event_name == 'pull_request' }} with: context: ./ file: ./sdk/Dockerfile diff --git a/.github/workflows/prover-build-and-publish.yml b/.github/workflows/prover-build-and-publish.yml index 44eb9caf9..d86a9b502 100644 --- a/.github/workflows/prover-build-and-publish.yml +++ b/.github/workflows/prover-build-and-publish.yml @@ -80,7 +80,7 @@ jobs: corset=corset/ constraints=constraints/ platforms: linux/amd64 - load: true + load: ${{ env.PUSH_IMAGE == 'false' }} push: ${{ env.PUSH_IMAGE }} tags: ${{ env.TAGS }} cache-from: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache From fcf95be6313281a2a57c09a2ec80d83b8d1e2d6d Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Thu, 17 Oct 2024 21:18:45 +0100 Subject: [PATCH 24/50] Commit tag from current branch, fix tags env var --- .github/workflows/coordinator-build-and-publish.yml | 2 +- .github/workflows/main.yml | 2 +- .github/workflows/reuse-store-image-name-and-tags.yml | 3 +-- .github/workflows/traces-api-facade-build-and-publish.yml | 6 +++++- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/coordinator-build-and-publish.yml b/.github/workflows/coordinator-build-and-publish.yml index b4bec8edf..b521cff10 100644 --- a/.github/workflows/coordinator-build-and-publish.yml +++ b/.github/workflows/coordinator-build-and-publish.yml @@ -47,7 +47,7 @@ jobs: - name: Set develop tag if main branch if: ${{ github.ref == 'refs/heads/main' }} run: | - echo "TAGS=" >> $GITHUB_ENV + echo "TAGS=${{ inputs.image_name }}:${{ inputs.commit_tag }},${{ inputs.image_name }}:${{ inputs.develop_tag }}" >> $GITHUB_ENV - name: Checkout uses: actions/checkout@v4 - uses: actions/setup-java@v4 diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ed05d04aa..6445194aa 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -207,7 +207,7 @@ jobs: publish-images-after-run-tests-success-on-main: needs: [ store-image-name-and-tags, testing, run-e2e-tests, run-e2e-tests-geth-tracing ] - if: ${{ always() && github.ref != 'refs/heads/main' && needs.testing.result == 'success' && needs.run-e2e-tests.outputs.tests_outcome == 'success' && needs.run-e2e-tests-geth-tracing.outputs.tests_outcome == 'success' }} + if: ${{ always() && github.ref == 'refs/heads/main' && needs.testing.result == 'success' && needs.run-e2e-tests.outputs.tests_outcome == 'success' && needs.run-e2e-tests-geth-tracing.outputs.tests_outcome == 'success' }} uses: ./.github/workflows/build-and-publish.yml with: push_image: true diff --git a/.github/workflows/reuse-store-image-name-and-tags.yml b/.github/workflows/reuse-store-image-name-and-tags.yml index 5a8669289..b4acc031a 100644 --- a/.github/workflows/reuse-store-image-name-and-tags.yml +++ b/.github/workflows/reuse-store-image-name-and-tags.yml @@ -19,7 +19,6 @@ jobs: name: Compute version tags env: # REF_NAME: ${{ github.ref_name }} - BRANCH_NAME: ${{ github.head_ref || github.ref_name }} EVENT_BEFORE: ${{ github.event.before }} outputs: commit_tag: ${{ steps.step1.outputs.COMMIT_TAG }} @@ -31,7 +30,7 @@ jobs: - name: Compute version tags id: step1 run: | - echo COMMIT_TAG=$(git rev-parse --short "$GITHUB_SHA") >> $GITHUB_OUTPUT + echo COMMIT_TAG=$(git rev-parse --short HEAD) >> $GITHUB_OUTPUT echo LAST_COMMIT_TAG=$(git rev-parse --short "${{ env.EVENT_BEFORE }}") >> $GITHUB_OUTPUT echo DEVELOP_TAG=develop >> $GITHUB_OUTPUT - name: Show version tags diff --git a/.github/workflows/traces-api-facade-build-and-publish.yml b/.github/workflows/traces-api-facade-build-and-publish.yml index 13081ff1d..e4b02883e 100644 --- a/.github/workflows/traces-api-facade-build-and-publish.yml +++ b/.github/workflows/traces-api-facade-build-and-publish.yml @@ -44,6 +44,10 @@ jobs: PUSH_IMAGE: ${{ inputs.push_image }} TAGS: ${{ inputs.image_name }}:${{ inputs.commit_tag }} steps: + - name: Set develop tag if main branch + if: ${{ github.ref == 'refs/heads/main' }} + run: | + echo "TAGS=${{ inputs.image_name }}:${{ inputs.commit_tag }},${{ inputs.image_name }}:${{ inputs.develop_tag }}" >> $GITHUB_ENV - name: Checkout uses: actions/checkout@v3 with: @@ -107,6 +111,6 @@ jobs: file: ./traces-api-facade/Dockerfile platforms: linux/amd64,linux/arm64 push: ${{ env.PUSH_IMAGE }} - tags: ${{ inputs.image_name }}:${{ inputs.commit_tag }},${{ inputs.image_name }}:${{ inputs.develop_tag }} + tags: ${{ env.TAGS }} cache-from: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache cache-to: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache,mode=max From c5ce2ed6117e6ff07fe81899ecf49f292f719418 Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Thu, 17 Oct 2024 21:42:03 +0100 Subject: [PATCH 25/50] Test fetch depth --- .github/workflows/reuse-store-image-name-and-tags.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/reuse-store-image-name-and-tags.yml b/.github/workflows/reuse-store-image-name-and-tags.yml index b4acc031a..3e1661a31 100644 --- a/.github/workflows/reuse-store-image-name-and-tags.yml +++ b/.github/workflows/reuse-store-image-name-and-tags.yml @@ -27,10 +27,12 @@ jobs: steps: - name: Checkout uses: actions/checkout@v3 + with: + fetch-depth: 0 - name: Compute version tags id: step1 run: | - echo COMMIT_TAG=$(git rev-parse --short HEAD) >> $GITHUB_OUTPUT + echo COMMIT_TAG=$(git rev-parse --short "$GITHUB_SHA") >> $GITHUB_OUTPUT echo LAST_COMMIT_TAG=$(git rev-parse --short "${{ env.EVENT_BEFORE }}") >> $GITHUB_OUTPUT echo DEVELOP_TAG=develop >> $GITHUB_OUTPUT - name: Show version tags From ace2f40fd584cc288a032597496d647047d9f77c Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Thu, 17 Oct 2024 21:43:35 +0100 Subject: [PATCH 26/50] Test --- .github/workflows/reuse-store-image-name-and-tags.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/reuse-store-image-name-and-tags.yml b/.github/workflows/reuse-store-image-name-and-tags.yml index 3e1661a31..b853cd1c0 100644 --- a/.github/workflows/reuse-store-image-name-and-tags.yml +++ b/.github/workflows/reuse-store-image-name-and-tags.yml @@ -32,7 +32,7 @@ jobs: - name: Compute version tags id: step1 run: | - echo COMMIT_TAG=$(git rev-parse --short "$GITHUB_SHA") >> $GITHUB_OUTPUT + echo COMMIT_TAG=$(git rev-parse --short HEAD) >> $GITHUB_OUTPUT echo LAST_COMMIT_TAG=$(git rev-parse --short "${{ env.EVENT_BEFORE }}") >> $GITHUB_OUTPUT echo DEVELOP_TAG=develop >> $GITHUB_OUTPUT - name: Show version tags From 7b14d6d8043a46f34d78c6c0fee2b3e4eecb7b2f Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Thu, 17 Oct 2024 21:46:51 +0100 Subject: [PATCH 27/50] Revert commit tag changes --- .github/workflows/reuse-store-image-name-and-tags.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/reuse-store-image-name-and-tags.yml b/.github/workflows/reuse-store-image-name-and-tags.yml index b853cd1c0..b349e4244 100644 --- a/.github/workflows/reuse-store-image-name-and-tags.yml +++ b/.github/workflows/reuse-store-image-name-and-tags.yml @@ -27,12 +27,10 @@ jobs: steps: - name: Checkout uses: actions/checkout@v3 - with: - fetch-depth: 0 - name: Compute version tags id: step1 run: | - echo COMMIT_TAG=$(git rev-parse --short HEAD) >> $GITHUB_OUTPUT + echo COMMIT_TAG=$(git rev-parse --short "$GITHUB_SHA") >> $GITHUB_OUTPUT echo LAST_COMMIT_TAG=$(git rev-parse --short "${{ env.EVENT_BEFORE }}") >> $GITHUB_OUTPUT echo DEVELOP_TAG=develop >> $GITHUB_OUTPUT - name: Show version tags From 5c33033dbf859032868883e78ea504dc4a60958a Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Fri, 18 Oct 2024 09:46:18 +0100 Subject: [PATCH 28/50] Testing removal of docker login step before push --- .github/workflows/build-and-publish.yml | 4 ++-- .../workflows/coordinator-build-and-publish.yml | 15 ++++++++------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index 4d2e3588a..f4107a2e7 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -45,9 +45,9 @@ on: type: string secrets: DOCKERHUB_USERNAME: - required: true + required: false DOCKERHUB_TOKEN: - required: true + required: false jobs: coordinator: diff --git a/.github/workflows/coordinator-build-and-publish.yml b/.github/workflows/coordinator-build-and-publish.yml index b521cff10..8887489e8 100644 --- a/.github/workflows/coordinator-build-and-publish.yml +++ b/.github/workflows/coordinator-build-and-publish.yml @@ -18,9 +18,9 @@ on: default: false secrets: DOCKERHUB_USERNAME: - required: true + required: false DOCKERHUB_TOKEN: - required: true + required: false workflow_dispatch: inputs: push_image: @@ -59,11 +59,6 @@ jobs: - name: Build dist run: | ./gradlew coordinator:app:distZip --no-daemon - - name: Login to Docker Hub - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Set up QEMU uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx - local @@ -98,6 +93,12 @@ jobs: with: name: linea-coordinator path: linea-coordinator.tar.gz + - name: Login to Docker Hub + if: ${{ env.PUSH_IMAGE == 'true' || github.event_name == 'workflow_dispatch' }} + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build & push uses: docker/build-push-action@v6 if: ${{ env.PUSH_IMAGE == 'true' || github.event_name == 'workflow_dispatch' }} From cad6ba1c9645069c3b9ffd018d7dc679a3444d08 Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Fri, 18 Oct 2024 09:58:50 +0100 Subject: [PATCH 29/50] TEST - Removal of cache --- .github/workflows/coordinator-build-and-publish.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/coordinator-build-and-publish.yml b/.github/workflows/coordinator-build-and-publish.yml index 8887489e8..15fa5adcc 100644 --- a/.github/workflows/coordinator-build-and-publish.yml +++ b/.github/workflows/coordinator-build-and-publish.yml @@ -80,8 +80,6 @@ jobs: load: true push: ${{ env.PUSH_IMAGE }} tags: ${{ env.TAGS }} - cache-from: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache - cache-to: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache,mode=max - name: Save Docker image as artifact if: ${{ env.PUSH_IMAGE == 'false' && github.event_name == 'pull_request' }} run: | From cc3a7d2c3280ee4e15b28b36ba11b07208728945 Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Fri, 18 Oct 2024 10:26:15 +0100 Subject: [PATCH 30/50] Only login to docker on main --- .../coordinator-build-and-publish.yml | 4 +- .../workflows/postman-build-and-publish.yml | 25 +++++------- .../workflows/prover-build-and-publish.yml | 40 ++++++++++++++----- .../traces-api-facade-build-and-publish.yml | 17 ++++---- 4 files changed, 49 insertions(+), 37 deletions(-) diff --git a/.github/workflows/coordinator-build-and-publish.yml b/.github/workflows/coordinator-build-and-publish.yml index 15fa5adcc..bca5158bf 100644 --- a/.github/workflows/coordinator-build-and-publish.yml +++ b/.github/workflows/coordinator-build-and-publish.yml @@ -78,7 +78,7 @@ jobs: file: ./coordinator/Dockerfile platforms: linux/amd64 load: true - push: ${{ env.PUSH_IMAGE }} + push: false tags: ${{ env.TAGS }} - name: Save Docker image as artifact if: ${{ env.PUSH_IMAGE == 'false' && github.event_name == 'pull_request' }} @@ -105,7 +105,7 @@ jobs: build-contexts: zip=./coordinator/app/build/distributions/ file: ./coordinator/Dockerfile platforms: linux/amd64,linux/arm64 - push: ${{ env.PUSH_IMAGE }} + push: true tags: ${{ env.TAGS }} cache-from: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache cache-to: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache,mode=max diff --git a/.github/workflows/postman-build-and-publish.yml b/.github/workflows/postman-build-and-publish.yml index 319e72de2..e28928e37 100644 --- a/.github/workflows/postman-build-and-publish.yml +++ b/.github/workflows/postman-build-and-publish.yml @@ -18,9 +18,9 @@ on: default: false secrets: DOCKERHUB_USERNAME: - required: true + required: false DOCKERHUB_TOKEN: - required: true + required: false workflow_dispatch: inputs: push_image: @@ -54,11 +54,6 @@ jobs: ssh-key: ${{ secrets.SELF_GITHUB_SSH_KEY }} submodules: true persist-credentials: false - - name: Login to Docker Hub - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Set up QEMU uses: docker/setup-qemu-action@v3 with: @@ -77,14 +72,8 @@ jobs: file: ./sdk/Dockerfile platforms: linux/amd64 load: true - push: ${{ env.PUSH_IMAGE }} + push: false tags: ${{ env.TAGS }} - cache-from: | - type=registry,ref=${{ env.IMAGE_NAME }}:buildcache-amd64,platform=linux/amd64 - type=registry,ref=${{ env.IMAGE_NAME }}:buildcache-arm64,platform=linux/arm64 - cache-to: | - type=registry,ref=${{ env.IMAGE_NAME }}:buildcache-amd64,mode=max,platform=linux/amd64 - type=registry,ref=${{ env.IMAGE_NAME }}:buildcache-arm64,mode=max,platform=linux/arm64 build-args: | NATIVE_LIBS_RELEASE_TAG=blob-libs-v1.0.1 - name: Save Docker image as artifact @@ -98,6 +87,12 @@ jobs: with: name: linea-postman path: linea-postman.tar.gz + - name: Login to Docker Hub + if: ${{ env.PUSH_IMAGE == 'true' || github.event_name == 'workflow_dispatch' }} + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push postman image uses: docker/build-push-action@v6 if: ${{ env.PUSH_IMAGE == 'true' || github.event_name == 'workflow_dispatch' }} @@ -105,7 +100,7 @@ jobs: context: ./ file: ./sdk/Dockerfile platforms: linux/amd64,linux/arm64 - push: ${{ env.PUSH_IMAGE }} + push: true tags: ${{ env.TAGS }} cache-from: | type=registry,ref=${{ env.IMAGE_NAME }}:buildcache-amd64,platform=linux/amd64 diff --git a/.github/workflows/prover-build-and-publish.yml b/.github/workflows/prover-build-and-publish.yml index d86a9b502..0d2ad2c74 100644 --- a/.github/workflows/prover-build-and-publish.yml +++ b/.github/workflows/prover-build-and-publish.yml @@ -18,9 +18,9 @@ on: default: false secrets: DOCKERHUB_USERNAME: - required: true + required: false DOCKERHUB_TOKEN: - required: true + required: false workflow_dispatch: inputs: push_image: @@ -57,11 +57,6 @@ jobs: ssh-key: ${{ secrets.SELF_GITHUB_SSH_KEY }} submodules: true persist-credentials: false - - name: Login to Docker Hub - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Show the "version" build argument @@ -70,6 +65,7 @@ jobs: echo COMMIT_TAG=${{ env.COMMIT_TAG }} >> $GITHUB_ENV - name: Build and push prover image uses: docker/build-push-action@v6 + if: ${{ env.PUSH_IMAGE == 'false' && github.event_name == 'pull_request' }} with: context: . file: ./prover/Dockerfile @@ -80,11 +76,9 @@ jobs: corset=corset/ constraints=constraints/ platforms: linux/amd64 - load: ${{ env.PUSH_IMAGE == 'false' }} - push: ${{ env.PUSH_IMAGE }} + load: true + push: false tags: ${{ env.TAGS }} - cache-from: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache - cache-to: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache,mode=max - name: Save Docker image as artifact if: ${{ env.PUSH_IMAGE == 'false' && github.event_name == 'pull_request' }} run: | @@ -96,3 +90,27 @@ jobs: with: name: linea-prover path: linea-prover.tar.gz + - name: Login to Docker Hub + if: ${{ env.PUSH_IMAGE == 'true' || github.event_name == 'workflow_dispatch' }} + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build and push prover image + uses: docker/build-push-action@v6 + if: ${{ env.PUSH_IMAGE == 'true' || github.event_name == 'workflow_dispatch' }} + with: + context: . + file: ./prover/Dockerfile + build-args: | + RUSTFLAGS="-C target-cpu=x86-64-v3" + build-contexts: | + prover=prover/ + corset=corset/ + constraints=constraints/ + platforms: linux/amd64 + load: false + push: true + tags: ${{ env.TAGS }} + cache-from: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache + cache-to: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache,mode=max diff --git a/.github/workflows/traces-api-facade-build-and-publish.yml b/.github/workflows/traces-api-facade-build-and-publish.yml index e4b02883e..6e42db8b4 100644 --- a/.github/workflows/traces-api-facade-build-and-publish.yml +++ b/.github/workflows/traces-api-facade-build-and-publish.yml @@ -18,9 +18,9 @@ on: default: false secrets: DOCKERHUB_USERNAME: - required: true + required: false DOCKERHUB_TOKEN: - required: true + required: false workflow_dispatch: inputs: push_image: @@ -63,11 +63,6 @@ jobs: run: | ./gradlew traces-api-facade:app:shadowJar echo ${{ github.workspace }} - - name: Login to Docker Hub - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Set up QEMU uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx @@ -89,8 +84,6 @@ jobs: load: true push: ${{ env.PUSH_IMAGE }} tags: ${{ env.TAGS }} - cache-from: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache - cache-to: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache,mode=max - name: Save Docker image as artifact if: ${{ env.PUSH_IMAGE == 'false' && github.event_name == 'pull_request' }} run: | @@ -102,6 +95,12 @@ jobs: with: name: linea-traces-api-facade path: linea-traces-api-facade.tar.gz + - name: Login to Docker Hub + if: ${{ env.PUSH_IMAGE == 'true' || github.event_name == 'workflow_dispatch' }} + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build & push uses: docker/build-push-action@v6 if: ${{ env.PUSH_IMAGE == 'true' || github.event_name == 'workflow_dispatch' }} From 99d698924eddab4b8d30e126f317718bb9c85a71 Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Fri, 18 Oct 2024 11:07:39 +0100 Subject: [PATCH 31/50] Testing pull image without docker login --- .github/actions/check-image-tags-exist/action.yml | 12 ------------ .github/actions/image-tag-and-push/action.yml | 9 ++------- 2 files changed, 2 insertions(+), 19 deletions(-) diff --git a/.github/actions/check-image-tags-exist/action.yml b/.github/actions/check-image-tags-exist/action.yml index 2703b3f75..e6de9e5e5 100644 --- a/.github/actions/check-image-tags-exist/action.yml +++ b/.github/actions/check-image-tags-exist/action.yml @@ -22,25 +22,13 @@ outputs: runs: using: 'composite' steps: - - name: Login to Docker Hub - uses: docker/login-action@v2 - with: - username: ${{ inputs.docker_username }} - password: ${{ inputs.docker_password }} - name: Check last commit image tag exists id: last_commit_image_exists shell: bash continue-on-error: true run: | echo last_commit_tag_exists=$(docker pull ${{ inputs.image_name }}:${{ inputs.last_commit_tag }} > /dev/null ; echo $?) >> $GITHUB_OUTPUT - - name: Check ancestor commit image tag exists - shell: bash - id: ancestor_commit_image_exists - continue-on-error: true - run: | - echo common_ancestor_commit_tag_exists=$(docker pull ${{ inputs.image_name }}:${{ inputs.common_ancestor_tag }} > /dev/null ; echo $?) >> $GITHUB_OUTPUT - name: Show outputs shell: bash run: | echo "last_commit_tag_exists: ${{ steps.last_commit_image_exists.outputs.last_commit_tag_exists }}" - echo "common_ancestor_commit_tag_exists: ${{ steps.ancestor_commit_image_exists.outputs.common_ancestor_commit_tag_exists }}" diff --git a/.github/actions/image-tag-and-push/action.yml b/.github/actions/image-tag-and-push/action.yml index 79ed8172b..e30b7dca3 100644 --- a/.github/actions/image-tag-and-push/action.yml +++ b/.github/actions/image-tag-and-push/action.yml @@ -33,6 +33,7 @@ runs: using: 'composite' steps: - name: Login to Docker Hub + if: ${{ github.ref == 'refs/heads/main' && inputs.last_commit_tag_exists == '0' }} uses: docker/login-action@v2 with: username: ${{ inputs.docker_username }} @@ -41,19 +42,13 @@ runs: shell: bash run: | echo IMAGE_TAGGED=false >> $GITHUB_ENV - - name: Tag Docker image with last commit tag with the commit hash plus - shell: bash - if: ${{ inputs.last_commit_tag != '0000000' && inputs.last_commit_tag_exists == '0' }} - run: | - docker buildx imagetools create --tag ${{ inputs.image_name }}:${{ inputs.commit_tag }} ${{ inputs.image_name }}:${{ inputs.last_commit_tag }} - echo IMAGE_TAGGED=true >> $GITHUB_ENV - name: Tag Docker image with develop if on main branch shell: bash if: ${{ github.ref == 'refs/heads/main' && inputs.last_commit_tag_exists == '0' }} run: | docker buildx imagetools create --tag ${{ inputs.image_name }}:${{ inputs.develop_tag }} ${{ inputs.image_name }}:${{ inputs.last_commit_tag }} + docker buildx imagetools create --tag ${{ inputs.image_name }}:${{ inputs.commit_tag }} ${{ inputs.image_name }}:${{ inputs.last_commit_tag }} echo IMAGE_TAGGED=true >> $GITHUB_ENV - - name: Set output from environment variable shell: bash id: set-output From 62d0f7c7f4f04b316c2341d84a16dcb4e26af23a Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Fri, 18 Oct 2024 11:10:34 +0100 Subject: [PATCH 32/50] Testing pull image without docker login - 2 --- .github/workflows/coordinator-build-and-publish.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/coordinator-build-and-publish.yml b/.github/workflows/coordinator-build-and-publish.yml index bca5158bf..ef3dc60d8 100644 --- a/.github/workflows/coordinator-build-and-publish.yml +++ b/.github/workflows/coordinator-build-and-publish.yml @@ -109,3 +109,4 @@ jobs: tags: ${{ env.TAGS }} cache-from: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache cache-to: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache,mode=max + From 683545e4ba2d4cfb866f6a0a7a9cb11dda455047 Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Fri, 18 Oct 2024 11:19:44 +0100 Subject: [PATCH 33/50] Test force build --- docker/compose.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/docker/compose.yml b/docker/compose.yml index 94f5470fd..7d0bc6833 100644 --- a/docker/compose.yml +++ b/docker/compose.yml @@ -742,4 +742,3 @@ services: - loki networks: - linea - From ddf8f5d5314ad3081b9b323dcae43dc4a0baa7b6 Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Fri, 18 Oct 2024 11:29:19 +0100 Subject: [PATCH 34/50] Test no changes --- .github/workflows/reuse-check-images-tags-and-push.yml | 2 +- docker/compose.yml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/reuse-check-images-tags-and-push.yml b/.github/workflows/reuse-check-images-tags-and-push.yml index bc213a437..13dfe8328 100644 --- a/.github/workflows/reuse-check-images-tags-and-push.yml +++ b/.github/workflows/reuse-check-images-tags-and-push.yml @@ -68,7 +68,7 @@ jobs: - name: Check image tags exist for coordinator uses: ./.github/actions/check-image-tags-exist - if: ${{ inputs.coordinator_changed == 'false' }} + if: ${{ inputs.coordinator_changed != 'false' }} id: check_image_tags_exist_coordinator with: last_commit_tag: ${{ inputs.last_commit_tag }} diff --git a/docker/compose.yml b/docker/compose.yml index 7d0bc6833..94f5470fd 100644 --- a/docker/compose.yml +++ b/docker/compose.yml @@ -742,3 +742,4 @@ services: - loki networks: - linea + From 5a4bc07b85ca24601baeb29c792c412342a4c7db Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Fri, 18 Oct 2024 11:42:11 +0100 Subject: [PATCH 35/50] Docker secrets required false --- .../actions/check-image-tags-exist/action.yml | 6 ------ .../reuse-check-images-tags-and-push.yml | 18 ++++-------------- 2 files changed, 4 insertions(+), 20 deletions(-) diff --git a/.github/actions/check-image-tags-exist/action.yml b/.github/actions/check-image-tags-exist/action.yml index e6de9e5e5..e3ab6eb74 100644 --- a/.github/actions/check-image-tags-exist/action.yml +++ b/.github/actions/check-image-tags-exist/action.yml @@ -8,12 +8,6 @@ inputs: image_name: description: 'The name of the image to check' required: true - docker_username: - description: 'The username to login to Docker Hub' - required: true - docker_password: - description: 'The password to login to Docker Hub' - required: true outputs: last_commit_tag_exists: description: 'Whether the last commit image tag exists' diff --git a/.github/workflows/reuse-check-images-tags-and-push.yml b/.github/workflows/reuse-check-images-tags-and-push.yml index 13dfe8328..07f46c9ff 100644 --- a/.github/workflows/reuse-check-images-tags-and-push.yml +++ b/.github/workflows/reuse-check-images-tags-and-push.yml @@ -39,9 +39,9 @@ on: value: ${{ jobs.image_tag_push.outputs.image_tagged_transaction_exclusion_api }} secrets: DOCKERHUB_USERNAME: - required: true + required: false DOCKERHUB_TOKEN: - required: true + required: false concurrency: group: check-images-tags-and-push-${{ github.workflow }}-${{ github.ref }} @@ -68,13 +68,11 @@ jobs: - name: Check image tags exist for coordinator uses: ./.github/actions/check-image-tags-exist - if: ${{ inputs.coordinator_changed != 'false' }} + if: ${{ inputs.coordinator_changed == 'false' }} id: check_image_tags_exist_coordinator with: last_commit_tag: ${{ inputs.last_commit_tag }} image_name: consensys/linea-coordinator - docker_username: ${{ secrets.DOCKERHUB_USERNAME }} - docker_password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Check image tags exist for postman uses: ./.github/actions/check-image-tags-exist @@ -83,8 +81,6 @@ jobs: with: last_commit_tag: ${{ inputs.last_commit_tag }} image_name: consensys/linea-postman - docker_username: ${{ secrets.DOCKERHUB_USERNAME }} - docker_password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Check image tags exist for prover uses: ./.github/actions/check-image-tags-exist @@ -93,8 +89,6 @@ jobs: with: last_commit_tag: ${{ inputs.last_commit_tag }} image_name: consensys/linea-prover - docker_username: ${{ secrets.DOCKERHUB_USERNAME }} - docker_password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Check image tags exist for traces-api-facade uses: ./.github/actions/check-image-tags-exist @@ -103,8 +97,6 @@ jobs: with: last_commit_tag: ${{ inputs.last_commit_tag }} image_name: consensys/linea-traces-api-facade - docker_username: ${{ secrets.DOCKERHUB_USERNAME }} - docker_password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Check image tags exist for transaction-exclusion-api uses: ./.github/actions/check-image-tags-exist @@ -112,13 +104,11 @@ jobs: id: check_image_tags_exist_transaction_exclusion_api with: last_commit_tag: ${{ inputs.last_commit_tag }} - common_ancestor_tag: ${{ inputs.common_ancestor_tag }} image_name: consensys/linea-transaction-exclusion-api - docker_username: ${{ secrets.DOCKERHUB_USERNAME }} - docker_password: ${{ secrets.DOCKERHUB_TOKEN }} image_tag_push: runs-on: [self-hosted, ubuntu-20.04, X64, small] + if: ${{ github.ref == 'refs/heads/main' }} name: Tag and push images needs: [ check_image_tags_exist ] outputs: From 23b7473f375bd3539900e484ab4fed1dd9ea05df Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Fri, 18 Oct 2024 11:49:11 +0100 Subject: [PATCH 36/50] Remove requirements for dockerhub credentials for pulls --- .github/workflows/coordinator-testing.yml | 10 ---------- .github/workflows/main.yml | 2 -- .github/workflows/postman-testing.yml | 5 ----- .github/workflows/reuse-run-e2e-tests.yml | 10 ---------- .github/workflows/testing.yml | 5 ----- .github/workflows/traces-api-facade-testing.yml | 6 +----- 6 files changed, 1 insertion(+), 37 deletions(-) diff --git a/.github/workflows/coordinator-testing.yml b/.github/workflows/coordinator-testing.yml index 58abc2ad4..6c6220d3e 100644 --- a/.github/workflows/coordinator-testing.yml +++ b/.github/workflows/coordinator-testing.yml @@ -6,11 +6,6 @@ on: commit_tag: required: true type: string - secrets: - DOCKERHUB_USERNAME: - required: true - DOCKERHUB_TOKEN: - required: true concurrency: group: coordinator-testing-${{ github.workflow }}-${{ github.ref }} @@ -51,11 +46,6 @@ jobs: - name: Build coordinator and Unit tests run: | ./gradlew -V coordinator:app:buildNeeded - - name: Login to Docker Hub - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Run integration tests run: | ./gradlew integrationTest diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 6445194aa..ff1cf6dcf 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -190,7 +190,6 @@ jobs: commit_tag: ${{ needs.store-image-name-and-tags.outputs.commit_tag }} tracing-engine: 'geth' e2e-tests-logs-dump: true - secrets: inherit run-e2e-tests: needs: [ store-image-name-and-tags, docker-build, manual-docker-build-and-e2e-tests ] @@ -203,7 +202,6 @@ jobs: commit_tag: ${{ needs.store-image-name-and-tags.outputs.commit_tag }} tracing-engine: 'besu' e2e-tests-logs-dump: true - secrets: inherit publish-images-after-run-tests-success-on-main: needs: [ store-image-name-and-tags, testing, run-e2e-tests, run-e2e-tests-geth-tracing ] diff --git a/.github/workflows/postman-testing.yml b/.github/workflows/postman-testing.yml index 64071e2f1..a352614ef 100644 --- a/.github/workflows/postman-testing.yml +++ b/.github/workflows/postman-testing.yml @@ -2,11 +2,6 @@ name: postman-and-SDK-testing on: workflow_call: - secrets: - DOCKERHUB_USERNAME: - required: true - DOCKERHUB_TOKEN: - required: true concurrency: group: postman-testing-${{ github.workflow }}-${{ github.ref }} diff --git a/.github/workflows/reuse-run-e2e-tests.yml b/.github/workflows/reuse-run-e2e-tests.yml index 00b8265af..a437ddfe1 100644 --- a/.github/workflows/reuse-run-e2e-tests.yml +++ b/.github/workflows/reuse-run-e2e-tests.yml @@ -52,11 +52,6 @@ on: outputs: tests_outcome: value: ${{ jobs.run-e2e-tests.outputs.tests_outcome }} - secrets: - DOCKERHUB_USERNAME: - required: true - DOCKERHUB_TOKEN: - required: true jobs: run-e2e-tests: @@ -80,11 +75,6 @@ jobs: uses: ./.github/actions/setup-nodejs with: pnpm-install-options: '--frozen-lockfile --prefer-offline' - - name: Login to Docker Hub - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Create directory for conflated traces run: | mkdir -p tmp/local/traces/v2/conflated diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index 571fc7cc8..3b6ddd4e2 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -45,24 +45,19 @@ jobs: if: ${{ always() && (inputs.coordinator_changed == 'true' || inputs.coordinator_image_tagged != 'true') }} with: commit_tag: ${{ inputs.commit_tag }} - secrets: inherit prover: uses: ./.github/workflows/prover-testing.yml if: ${{ always() && inputs.prover_changed == 'true' }} - secrets: inherit postman: uses: ./.github/workflows/postman-testing.yml if: ${{ always() && (inputs.postman_changed == 'true' || inputs.postman_image_tagged != 'true') }} - secrets: inherit traces-api-facade: uses: ./.github/workflows/traces-api-facade-testing.yml if: ${{ always() && (inputs.traces_api_facade_changed == 'true' || inputs.traces_api_facade_image_tagged != 'true') }} - secrets: inherit transaction-exclusion-api: uses: ./.github/workflows/transaction-exclusion-api-testing.yml if: ${{ always() && (inputs.transaction_exclusion_api_changed == 'true' || inputs.transaction_exclusion_api_image_tagged != 'true') }} - secrets: inherit diff --git a/.github/workflows/traces-api-facade-testing.yml b/.github/workflows/traces-api-facade-testing.yml index 6df13304c..d532eb15f 100644 --- a/.github/workflows/traces-api-facade-testing.yml +++ b/.github/workflows/traces-api-facade-testing.yml @@ -2,11 +2,7 @@ name: traces-api-facade-testing on: workflow_call: - secrets: - DOCKERHUB_USERNAME: - required: true - DOCKERHUB_TOKEN: - required: true + workflow_dispatch: inputs: coverage: From c92d3a7d698c2796949029b9fb2d821d801e3270 Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Fri, 18 Oct 2024 13:02:41 +0100 Subject: [PATCH 37/50] Rename arfifacts and compose profile --- .../coordinator-build-and-publish.yml | 6 ++--- .../workflows/postman-build-and-publish.yml | 6 ++--- .../workflows/prover-build-and-publish.yml | 6 ++--- .github/workflows/reuse-run-e2e-tests.yml | 12 +++++----- .../traces-api-facade-build-and-publish.yml | 6 ++--- Makefile | 4 ++-- docker/compose.yml | 24 +++++++++---------- 7 files changed, 32 insertions(+), 32 deletions(-) diff --git a/.github/workflows/coordinator-build-and-publish.yml b/.github/workflows/coordinator-build-and-publish.yml index ef3dc60d8..8beaaab2f 100644 --- a/.github/workflows/coordinator-build-and-publish.yml +++ b/.github/workflows/coordinator-build-and-publish.yml @@ -83,14 +83,14 @@ jobs: - name: Save Docker image as artifact if: ${{ env.PUSH_IMAGE == 'false' && github.event_name == 'pull_request' }} run: | - docker save ${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }} | gzip > linea-coordinator.tar.gz + docker save ${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }} | gzip > linea-coordinator-docker-image.tar.gz shell: bash - - name: Upload artifact + - name: Upload Docker image artifact if: ${{ env.PUSH_IMAGE == 'false' && github.event_name == 'pull_request' }} uses: actions/upload-artifact@v4 with: name: linea-coordinator - path: linea-coordinator.tar.gz + path: linea-coordinator-docker-image.tar.gz - name: Login to Docker Hub if: ${{ env.PUSH_IMAGE == 'true' || github.event_name == 'workflow_dispatch' }} uses: docker/login-action@v3 diff --git a/.github/workflows/postman-build-and-publish.yml b/.github/workflows/postman-build-and-publish.yml index e28928e37..da715059f 100644 --- a/.github/workflows/postman-build-and-publish.yml +++ b/.github/workflows/postman-build-and-publish.yml @@ -79,14 +79,14 @@ jobs: - name: Save Docker image as artifact if: ${{ env.PUSH_IMAGE == 'false' && github.event_name == 'pull_request' }} run: | - docker save ${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }} | gzip > linea-postman.tar.gz + docker save ${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }} | gzip > linea-postman-docker-image.tar.gz shell: bash - - name: Upload artifact + - name: Upload Docker image artifact if: ${{ env.PUSH_IMAGE == 'false' && github.event_name == 'pull_request' }} uses: actions/upload-artifact@v4 with: name: linea-postman - path: linea-postman.tar.gz + path: linea-postman-docker-image.tar.gz - name: Login to Docker Hub if: ${{ env.PUSH_IMAGE == 'true' || github.event_name == 'workflow_dispatch' }} uses: docker/login-action@v3 diff --git a/.github/workflows/prover-build-and-publish.yml b/.github/workflows/prover-build-and-publish.yml index 0d2ad2c74..9d95ed488 100644 --- a/.github/workflows/prover-build-and-publish.yml +++ b/.github/workflows/prover-build-and-publish.yml @@ -82,14 +82,14 @@ jobs: - name: Save Docker image as artifact if: ${{ env.PUSH_IMAGE == 'false' && github.event_name == 'pull_request' }} run: | - docker save ${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }} | gzip > linea-prover.tar.gz + docker save ${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }} | gzip > linea-prover-docker-image.tar.gz shell: bash - - name: Upload artifact + - name: Upload Docker image artifact if: ${{ env.PUSH_IMAGE == 'false' && github.event_name == 'pull_request' }} uses: actions/upload-artifact@v4 with: name: linea-prover - path: linea-prover.tar.gz + path: linea-prover-docker-image.tar.gz - name: Login to Docker Hub if: ${{ env.PUSH_IMAGE == 'true' || github.event_name == 'workflow_dispatch' }} uses: docker/login-action@v3 diff --git a/.github/workflows/reuse-run-e2e-tests.yml b/.github/workflows/reuse-run-e2e-tests.yml index a437ddfe1..1cc0f3206 100644 --- a/.github/workflows/reuse-run-e2e-tests.yml +++ b/.github/workflows/reuse-run-e2e-tests.yml @@ -95,15 +95,15 @@ jobs: retry_wait_seconds: 30 timeout_minutes: 10 command: | - make pull-images-for-ci-testing - - name: Download local docker images + make pull-images-external-to-monorepo + - name: Download local docker image artifacts uses: actions/download-artifact@v4 - name: Load Docker images run: | - gunzip -c /runner/_work/linea-monorepo/linea-monorepo/linea-coordinator/linea-coordinator.tar.gz | docker load && - gunzip -c /runner/_work/linea-monorepo/linea-monorepo/linea-postman/linea-postman.tar.gz | docker load && - gunzip -c /runner/_work/linea-monorepo/linea-monorepo/linea-prover/linea-prover.tar.gz | docker load && - gunzip -c /runner/_work/linea-monorepo/linea-monorepo/linea-traces-api-facade/linea-traces-api-facade.tar.gz | docker load + gunzip -c /runner/_work/linea-monorepo/linea-monorepo/linea-coordinator/linea-coordinator-docker-image.tar.gz | docker load && + gunzip -c /runner/_work/linea-monorepo/linea-monorepo/linea-postman/linea-postman-docker-image.tar.gz | docker load && + gunzip -c /runner/_work/linea-monorepo/linea-monorepo/linea-prover/linea-prover-docker-image.tar.gz | docker load && + gunzip -c /runner/_work/linea-monorepo/linea-monorepo/linea-traces-api-facade/linea-traces-api-facade-docker-image.tar.gz | docker load shell: bash - name: Spin up fresh environment with geth tracing with retry if: ${{ inputs.tracing-engine == 'geth' }} diff --git a/.github/workflows/traces-api-facade-build-and-publish.yml b/.github/workflows/traces-api-facade-build-and-publish.yml index 6e42db8b4..e248131b2 100644 --- a/.github/workflows/traces-api-facade-build-and-publish.yml +++ b/.github/workflows/traces-api-facade-build-and-publish.yml @@ -87,14 +87,14 @@ jobs: - name: Save Docker image as artifact if: ${{ env.PUSH_IMAGE == 'false' && github.event_name == 'pull_request' }} run: | - docker save ${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }} | gzip > linea-traces-api-facade.tar.gz + docker save ${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }} | gzip > linea-traces-api-facade-docker-image.tar.gz shell: bash - - name: Upload artifact + - name: Upload Docker image artifact if: ${{ env.PUSH_IMAGE == 'false' && github.event_name == 'pull_request' }} uses: actions/upload-artifact@v4 with: name: linea-traces-api-facade - path: linea-traces-api-facade.tar.gz + path: linea-traces-api-facade-docker-image.tar.gz - name: Login to Docker Hub if: ${{ env.PUSH_IMAGE == 'true' || github.event_name == 'workflow_dispatch' }} uses: docker/login-action@v3 diff --git a/Makefile b/Makefile index c62ad1336..cda135314 100644 --- a/Makefile +++ b/Makefile @@ -54,8 +54,8 @@ start-whole-environment-traces-v2: pull-all-images: docker compose -f docker/compose.yml -f docker/compose-local-dev-traces-v2.overrides.yml --profile l1 --profile l2 pull -pull-images-for-ci-testing: - docker compose -f docker/compose.yml -f docker/compose-local-dev-traces-v2.overrides.yml --profile ci-testing pull +pull-images-external-to-monorepo: + docker compose -f docker/compose.yml -f docker/compose-local-dev-traces-v2.overrides.yml --profile external-to-monorepo pull compile-contracts: cd contracts; \ diff --git a/docker/compose.yml b/docker/compose.yml index 94f5470fd..477f5a330 100644 --- a/docker/compose.yml +++ b/docker/compose.yml @@ -24,7 +24,7 @@ services: hostname: sequencer container_name: sequencer image: consensys/linea-besu:${SEQUENCER_TAG:-24.10-delivery34} - profiles: [ "l2", "l2-bc", "debug", "ci-testing" ] + profiles: [ "l2", "l2-bc", "debug", "external-to-monorepo" ] depends_on: linea-besu-sequencer-plugin-downloader: condition: service_completed_successfully @@ -90,7 +90,7 @@ services: hostname: l2-node image: consensys/linea-geth:${ZKGETH_TAG:-0588665} platform: linux/amd64 - profiles: [ "l2", "l2-bc", "debug", "ci-testing" ] + profiles: [ "l2", "l2-bc", "debug", "external-to-monorepo" ] depends_on: sequencer: condition: service_healthy @@ -172,7 +172,7 @@ services: hostname: traces-node image: consensys/linea-geth:${ZKGETH_TAG:-0588665} platform: linux/amd64 - profiles: [ "l2", "l2-bc", "debug", "ci-testing" ] + profiles: [ "l2", "l2-bc", "debug", "external-to-monorepo" ] depends_on: sequencer: condition: service_healthy @@ -367,7 +367,7 @@ services: hostname: web3signer container_name: web3signer image: consensys/web3signer:23.3-jdk17 - profiles: [ "l2", "debug", "ci-testing" ] + profiles: [ "l2", "debug", "external-to-monorepo" ] ports: - "9000:9000" command: @@ -396,7 +396,7 @@ services: image: postgres:14.5 hostname: postgres container_name: postgres - profiles: [ "l2", "debug", "ci-testing" ] + profiles: [ "l2", "debug", "external-to-monorepo" ] environment: POSTGRES_USER: ${POSTGRES_USER:-postgres} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-postgres} @@ -426,7 +426,7 @@ services: container_name: l1-el-node hostname: l1-el-node image: hyperledger/besu:24.6.0 - profiles: [ "l1", "debug", "ci-testing" ] + profiles: [ "l1", "debug", "external-to-monorepo" ] depends_on: l1-node-genesis-generator: condition: service_completed_successfully @@ -458,7 +458,7 @@ services: container_name: l1-cl-node hostname: l1-cl-node image: consensys/teku:24.2.0 - profiles: [ "l1", "debug", "ci-testing" ] + profiles: [ "l1", "debug", "external-to-monorepo" ] depends_on: l1-el-node: condition: service_healthy @@ -484,7 +484,7 @@ services: l1-node-genesis-generator: build: context: ./config/l1-node/ - profiles: [ "l1", "debug", "ci-testing" ] + profiles: [ "l1", "debug", "external-to-monorepo" ] entrypoint: - /bin/sh - -c @@ -532,7 +532,7 @@ services: image: consensys/linea-besu:linea-delivery-27 hostname: zkbesu-shomei container_name: zkbesu-shomei - profiles: [ "l2", "l2-bc", "ci-testing" ] + profiles: [ "l2", "l2-bc", "external-to-monorepo" ] depends_on: shomei-plugin-downloader: condition: service_completed_successfully @@ -578,7 +578,7 @@ services: image: consensys/linea-shomei:2.2.0 hostname: shomei container_name: shomei - profiles: [ "l2", "l2-bc", "ci-testing" ] + profiles: [ "l2", "l2-bc", "external-to-monorepo" ] depends_on: zkbesu-shomei: condition: service_started @@ -614,7 +614,7 @@ services: image: consensys/linea-shomei:2.2.0 hostname: shomei-frontend container_name: shomei-frontend - profiles: [ "l2", "l2-bc", "ci-testing" ] + profiles: [ "l2", "l2-bc", "external-to-monorepo" ] depends_on: zkbesu-shomei: condition: service_started @@ -655,7 +655,7 @@ services: shomei-plugin-downloader: container_name: shomei-plugin-downloader - profiles: [ "l2", "l2-bc", "ci-testing" ] + profiles: [ "l2", "l2-bc", "external-to-monorepo" ] image: busybox:1.36.1 command: [ "sh", "/file-downloader.sh", "https://github.com/Consensys/besu-shomei-plugin/releases/download/v0.3.1/besu-shomei-plugin-v0.3.1.jar", "/shomei-plugin" ] volumes: From a0218c56572d87bf3221c76ab076159b20e59a4a Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Fri, 18 Oct 2024 13:06:21 +0100 Subject: [PATCH 38/50] Fix testing.yml secrets --- .github/workflows/testing.yml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index 3b6ddd4e2..b7c20c1c5 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -33,11 +33,6 @@ on: transaction_exclusion_api_image_tagged: required: true type: string - secrets: - DOCKERHUB_USERNAME: - required: true - DOCKERHUB_TOKEN: - required: true jobs: coordinator: @@ -45,14 +40,17 @@ jobs: if: ${{ always() && (inputs.coordinator_changed == 'true' || inputs.coordinator_image_tagged != 'true') }} with: commit_tag: ${{ inputs.commit_tag }} + secrets: inherit prover: uses: ./.github/workflows/prover-testing.yml if: ${{ always() && inputs.prover_changed == 'true' }} + secrets: inherit postman: uses: ./.github/workflows/postman-testing.yml if: ${{ always() && (inputs.postman_changed == 'true' || inputs.postman_image_tagged != 'true') }} + secrets: inherit traces-api-facade: uses: ./.github/workflows/traces-api-facade-testing.yml From cd364932b4a231a40db6fbffbcdb244ecf92ba9f Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Fri, 18 Oct 2024 13:41:00 +0100 Subject: [PATCH 39/50] Replace usage of inputs with env vars --- .github/workflows/coordinator-build-and-publish.yml | 2 +- .github/workflows/postman-build-and-publish.yml | 2 +- .github/workflows/prover-build-and-publish.yml | 2 +- .github/workflows/traces-api-facade-build-and-publish.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/coordinator-build-and-publish.yml b/.github/workflows/coordinator-build-and-publish.yml index 8beaaab2f..d4bdd7931 100644 --- a/.github/workflows/coordinator-build-and-publish.yml +++ b/.github/workflows/coordinator-build-and-publish.yml @@ -47,7 +47,7 @@ jobs: - name: Set develop tag if main branch if: ${{ github.ref == 'refs/heads/main' }} run: | - echo "TAGS=${{ inputs.image_name }}:${{ inputs.commit_tag }},${{ inputs.image_name }}:${{ inputs.develop_tag }}" >> $GITHUB_ENV + echo "TAGS=${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }},${{ env.IMAGE_NAME }}:${{ env.DEVELOP_TAG }}" >> $GITHUB_ENV - name: Checkout uses: actions/checkout@v4 - uses: actions/setup-java@v4 diff --git a/.github/workflows/postman-build-and-publish.yml b/.github/workflows/postman-build-and-publish.yml index da715059f..6c41dbd73 100644 --- a/.github/workflows/postman-build-and-publish.yml +++ b/.github/workflows/postman-build-and-publish.yml @@ -47,7 +47,7 @@ jobs: - name: Set develop tag if main branch if: ${{ github.ref == 'refs/heads/main' }} run: | - echo "TAGS=${{ inputs.image_name }}:${{ inputs.commit_tag }},${{ inputs.image_name }}:${{ inputs.develop_tag }}" >> $GITHUB_ENV + echo "TAGS=${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }},${{ env.IMAGE_NAME }}:${{ env.DEVELOP_TAG }}" >> $GITHUB_ENV - name: Checkout uses: actions/checkout@v3 with: diff --git a/.github/workflows/prover-build-and-publish.yml b/.github/workflows/prover-build-and-publish.yml index 9d95ed488..dced3c398 100644 --- a/.github/workflows/prover-build-and-publish.yml +++ b/.github/workflows/prover-build-and-publish.yml @@ -50,7 +50,7 @@ jobs: - name: Set develop tag if main branch if: ${{ github.ref == 'refs/heads/main' }} run: | - echo "TAGS=${{ inputs.image_name }}:${{ inputs.commit_tag }},${{ inputs.image_name }}:${{ inputs.develop_tag }}" >> $GITHUB_ENV + echo "TAGS=${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }},${{ env.IMAGE_NAME }}:${{ env.DEVELOP_TAG }}" >> $GITHUB_ENV - name: Checkout uses: actions/checkout@v4 with: diff --git a/.github/workflows/traces-api-facade-build-and-publish.yml b/.github/workflows/traces-api-facade-build-and-publish.yml index e248131b2..fe1d3f0f3 100644 --- a/.github/workflows/traces-api-facade-build-and-publish.yml +++ b/.github/workflows/traces-api-facade-build-and-publish.yml @@ -47,7 +47,7 @@ jobs: - name: Set develop tag if main branch if: ${{ github.ref == 'refs/heads/main' }} run: | - echo "TAGS=${{ inputs.image_name }}:${{ inputs.commit_tag }},${{ inputs.image_name }}:${{ inputs.develop_tag }}" >> $GITHUB_ENV + echo "TAGS=${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }},${{ env.IMAGE_NAME }}:${{ env.DEVELOP_TAG }}" >> $GITHUB_ENV - name: Checkout uses: actions/checkout@v3 with: From 0163d737821eef3767d41e75f58e075c4dcfcd14 Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Fri, 18 Oct 2024 13:45:24 +0100 Subject: [PATCH 40/50] Remove unnecessary inputs --- .github/actions/image-tag-and-push/action.yml | 4 ++-- .github/workflows/all-tools.yml | 3 --- .github/workflows/reuse-check-images-tags-and-push.yml | 4 ---- 3 files changed, 2 insertions(+), 9 deletions(-) diff --git a/.github/actions/image-tag-and-push/action.yml b/.github/actions/image-tag-and-push/action.yml index e30b7dca3..519e526ef 100644 --- a/.github/actions/image-tag-and-push/action.yml +++ b/.github/actions/image-tag-and-push/action.yml @@ -19,10 +19,10 @@ inputs: required: true docker_username: description: 'The username to login to Docker Hub' - required: true + required: false docker_password: description: 'The password to login to Docker Hub' - required: true + required: false outputs: image_tagged: diff --git a/.github/workflows/all-tools.yml b/.github/workflows/all-tools.yml index bb2d25fca..a2405eec5 100644 --- a/.github/workflows/all-tools.yml +++ b/.github/workflows/all-tools.yml @@ -51,8 +51,6 @@ jobs: with: last_commit_tag: ${{ needs.store_image_name_and_tags.outputs.last_commit_tag }} image_name: consensys/linea-alltools - docker_username: ${{ secrets.DOCKERHUB_USERNAME }} - docker_password: ${{ secrets.DOCKERHUB_TOKEN }} all-tools-tag-only: runs-on: [self-hosted, ubuntu-20.04, X64, small] @@ -73,7 +71,6 @@ jobs: develop_tag: ${{ needs.store_image_name_and_tags.outputs.develop_tag }} image_name: consensys/linea-alltools last_commit_tag_exists: ${{ needs.check_image_tags_exist.outputs.last_commit_tag_exists }} - common_ancestor_commit_tag_exists: ${{ needs.check_image_tags_exist.outputs.common_ancestor_commit_tag_exists }} docker_username: ${{ secrets.DOCKERHUB_USERNAME }} docker_password: ${{ secrets.DOCKERHUB_TOKEN }} diff --git a/.github/workflows/reuse-check-images-tags-and-push.yml b/.github/workflows/reuse-check-images-tags-and-push.yml index 07f46c9ff..e050df1bd 100644 --- a/.github/workflows/reuse-check-images-tags-and-push.yml +++ b/.github/workflows/reuse-check-images-tags-and-push.yml @@ -131,7 +131,6 @@ jobs: develop_tag: ${{ inputs.develop_tag }} image_name: consensys/linea-coordinator last_commit_tag_exists: ${{ needs.check_image_tags_exist.outputs.last_commit_tag_exists_coordinator }} - common_ancestor_commit_tag_exists: ${{ needs.check_image_tags_exist.outputs.common_ancestor_commit_tag_exists_coordinator }} docker_username: ${{ secrets.DOCKERHUB_USERNAME }} docker_password: ${{ secrets.DOCKERHUB_TOKEN }} @@ -145,7 +144,6 @@ jobs: develop_tag: ${{ inputs.develop_tag }} image_name: consensys/linea-postman last_commit_tag_exists: ${{ needs.check_image_tags_exist.outputs.last_commit_tag_exists_postman }} - common_ancestor_commit_tag_exists: ${{ needs.check_image_tags_exist.outputs.common_ancestor_commit_tag_exists_postman }} docker_username: ${{ secrets.DOCKERHUB_USERNAME }} docker_password: ${{ secrets.DOCKERHUB_TOKEN }} @@ -159,7 +157,6 @@ jobs: develop_tag: ${{ inputs.develop_tag }} image_name: consensys/linea-prover last_commit_tag_exists: ${{ needs.check_image_tags_exist.outputs.last_commit_tag_exists_prover }} - common_ancestor_commit_tag_exists: ${{ needs.check_image_tags_exist.outputs.common_ancestor_commit_tag_exists_prover }} docker_username: ${{ secrets.DOCKERHUB_USERNAME }} docker_password: ${{ secrets.DOCKERHUB_TOKEN }} @@ -173,7 +170,6 @@ jobs: develop_tag: ${{ inputs.develop_tag }} image_name: consensys/linea-traces-api-facade last_commit_tag_exists: ${{ needs.check_image_tags_exist.outputs.last_commit_tag_exists_traces_api_facade }} - common_ancestor_commit_tag_exists: ${{ needs.check_image_tags_exist.outputs.common_ancestor_commit_tag_exists_traces_api_facade }} docker_username: ${{ secrets.DOCKERHUB_USERNAME }} docker_password: ${{ secrets.DOCKERHUB_TOKEN }} From 7d81af6d14c3ca8e509ac9a1079a27269c7426be Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Fri, 18 Oct 2024 14:33:24 +0100 Subject: [PATCH 41/50] Reinstate dockerhub login for e2e tests --- .github/workflows/main.yml | 2 ++ .github/workflows/reuse-run-e2e-tests.yml | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ff1cf6dcf..6445194aa 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -190,6 +190,7 @@ jobs: commit_tag: ${{ needs.store-image-name-and-tags.outputs.commit_tag }} tracing-engine: 'geth' e2e-tests-logs-dump: true + secrets: inherit run-e2e-tests: needs: [ store-image-name-and-tags, docker-build, manual-docker-build-and-e2e-tests ] @@ -202,6 +203,7 @@ jobs: commit_tag: ${{ needs.store-image-name-and-tags.outputs.commit_tag }} tracing-engine: 'besu' e2e-tests-logs-dump: true + secrets: inherit publish-images-after-run-tests-success-on-main: needs: [ store-image-name-and-tags, testing, run-e2e-tests, run-e2e-tests-geth-tracing ] diff --git a/.github/workflows/reuse-run-e2e-tests.yml b/.github/workflows/reuse-run-e2e-tests.yml index 1cc0f3206..599f02829 100644 --- a/.github/workflows/reuse-run-e2e-tests.yml +++ b/.github/workflows/reuse-run-e2e-tests.yml @@ -52,6 +52,11 @@ on: outputs: tests_outcome: value: ${{ jobs.run-e2e-tests.outputs.tests_outcome }} + secrets: + DOCKERHUB_USERNAME: + required: true + DOCKERHUB_TOKEN: + required: true jobs: run-e2e-tests: @@ -75,6 +80,11 @@ jobs: uses: ./.github/actions/setup-nodejs with: pnpm-install-options: '--frozen-lockfile --prefer-offline' + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Create directory for conflated traces run: | mkdir -p tmp/local/traces/v2/conflated From 9ff5244fada2c9c9fa52926bb9daf3445a6db697 Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Fri, 18 Oct 2024 14:39:14 +0100 Subject: [PATCH 42/50] Reinstate dockerhub login for coordinator-testing.yml --- .github/workflows/coordinator-testing.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/coordinator-testing.yml b/.github/workflows/coordinator-testing.yml index 6c6220d3e..58abc2ad4 100644 --- a/.github/workflows/coordinator-testing.yml +++ b/.github/workflows/coordinator-testing.yml @@ -6,6 +6,11 @@ on: commit_tag: required: true type: string + secrets: + DOCKERHUB_USERNAME: + required: true + DOCKERHUB_TOKEN: + required: true concurrency: group: coordinator-testing-${{ github.workflow }}-${{ github.ref }} @@ -46,6 +51,11 @@ jobs: - name: Build coordinator and Unit tests run: | ./gradlew -V coordinator:app:buildNeeded + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Run integration tests run: | ./gradlew integrationTest From 30a20d95c595a99c11d0f366b1dfb326f83afc5d Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Fri, 18 Oct 2024 14:51:14 +0100 Subject: [PATCH 43/50] Reinstate dockerhub login for build steps --- .../workflows/coordinator-build-and-publish.yml | 15 +++++++-------- .github/workflows/postman-build-and-publish.yml | 15 +++++++-------- .github/workflows/prover-build-and-publish.yml | 15 +++++++-------- .../traces-api-facade-build-and-publish.yml | 15 +++++++-------- 4 files changed, 28 insertions(+), 32 deletions(-) diff --git a/.github/workflows/coordinator-build-and-publish.yml b/.github/workflows/coordinator-build-and-publish.yml index d4bdd7931..be6a4124d 100644 --- a/.github/workflows/coordinator-build-and-publish.yml +++ b/.github/workflows/coordinator-build-and-publish.yml @@ -18,9 +18,9 @@ on: default: false secrets: DOCKERHUB_USERNAME: - required: false + required: true DOCKERHUB_TOKEN: - required: false + required: true workflow_dispatch: inputs: push_image: @@ -59,6 +59,11 @@ jobs: - name: Build dist run: | ./gradlew coordinator:app:distZip --no-daemon + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Set up QEMU uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx - local @@ -91,12 +96,6 @@ jobs: with: name: linea-coordinator path: linea-coordinator-docker-image.tar.gz - - name: Login to Docker Hub - if: ${{ env.PUSH_IMAGE == 'true' || github.event_name == 'workflow_dispatch' }} - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build & push uses: docker/build-push-action@v6 if: ${{ env.PUSH_IMAGE == 'true' || github.event_name == 'workflow_dispatch' }} diff --git a/.github/workflows/postman-build-and-publish.yml b/.github/workflows/postman-build-and-publish.yml index 6c41dbd73..a6fa4ec31 100644 --- a/.github/workflows/postman-build-and-publish.yml +++ b/.github/workflows/postman-build-and-publish.yml @@ -18,9 +18,9 @@ on: default: false secrets: DOCKERHUB_USERNAME: - required: false + required: true DOCKERHUB_TOKEN: - required: false + required: true workflow_dispatch: inputs: push_image: @@ -54,6 +54,11 @@ jobs: ssh-key: ${{ secrets.SELF_GITHUB_SSH_KEY }} submodules: true persist-credentials: false + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Set up QEMU uses: docker/setup-qemu-action@v3 with: @@ -87,12 +92,6 @@ jobs: with: name: linea-postman path: linea-postman-docker-image.tar.gz - - name: Login to Docker Hub - if: ${{ env.PUSH_IMAGE == 'true' || github.event_name == 'workflow_dispatch' }} - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push postman image uses: docker/build-push-action@v6 if: ${{ env.PUSH_IMAGE == 'true' || github.event_name == 'workflow_dispatch' }} diff --git a/.github/workflows/prover-build-and-publish.yml b/.github/workflows/prover-build-and-publish.yml index dced3c398..b27b6e50b 100644 --- a/.github/workflows/prover-build-and-publish.yml +++ b/.github/workflows/prover-build-and-publish.yml @@ -18,9 +18,9 @@ on: default: false secrets: DOCKERHUB_USERNAME: - required: false + required: true DOCKERHUB_TOKEN: - required: false + required: true workflow_dispatch: inputs: push_image: @@ -57,6 +57,11 @@ jobs: ssh-key: ${{ secrets.SELF_GITHUB_SSH_KEY }} submodules: true persist-credentials: false + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Show the "version" build argument @@ -90,12 +95,6 @@ jobs: with: name: linea-prover path: linea-prover-docker-image.tar.gz - - name: Login to Docker Hub - if: ${{ env.PUSH_IMAGE == 'true' || github.event_name == 'workflow_dispatch' }} - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push prover image uses: docker/build-push-action@v6 if: ${{ env.PUSH_IMAGE == 'true' || github.event_name == 'workflow_dispatch' }} diff --git a/.github/workflows/traces-api-facade-build-and-publish.yml b/.github/workflows/traces-api-facade-build-and-publish.yml index fe1d3f0f3..5d464b75c 100644 --- a/.github/workflows/traces-api-facade-build-and-publish.yml +++ b/.github/workflows/traces-api-facade-build-and-publish.yml @@ -18,9 +18,9 @@ on: default: false secrets: DOCKERHUB_USERNAME: - required: false + required: true DOCKERHUB_TOKEN: - required: false + required: true workflow_dispatch: inputs: push_image: @@ -63,6 +63,11 @@ jobs: run: | ./gradlew traces-api-facade:app:shadowJar echo ${{ github.workspace }} + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Set up QEMU uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx @@ -95,12 +100,6 @@ jobs: with: name: linea-traces-api-facade path: linea-traces-api-facade-docker-image.tar.gz - - name: Login to Docker Hub - if: ${{ env.PUSH_IMAGE == 'true' || github.event_name == 'workflow_dispatch' }} - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build & push uses: docker/build-push-action@v6 if: ${{ env.PUSH_IMAGE == 'true' || github.event_name == 'workflow_dispatch' }} From ae473b1c8024de2d9221d545f0cde1398afe2f64 Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Fri, 18 Oct 2024 15:04:13 +0100 Subject: [PATCH 44/50] Fix secrets for build-and-publish.yml --- .github/workflows/build-and-publish.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index f4107a2e7..4d2e3588a 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -45,9 +45,9 @@ on: type: string secrets: DOCKERHUB_USERNAME: - required: false + required: true DOCKERHUB_TOKEN: - required: false + required: true jobs: coordinator: From 98b1b70a2e2101fefd4a399807ae76a8e3308fee Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Fri, 18 Oct 2024 15:28:35 +0100 Subject: [PATCH 45/50] Non concurrent manual-docker-build-and-e2e-tests --- .github/workflows/main.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 6445194aa..d4f1ab769 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -130,6 +130,9 @@ jobs: runs-on: [self-hosted, ubuntu-20.04, X64, small] needs: [ store-image-name-and-tags, filter-commit-changes, check-and-tag-images ] environment: ${{ github.ref != 'refs/heads/main' && 'docker-build-and-e2e' || '' }} + concurrency: + group: manual-docker-build-and-e2e-tests-${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} steps: - name: Deploy environment run: | From 911c6389a89ef7f5cb9be2ca17d3c9b466b9ca5e Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Fri, 18 Oct 2024 15:38:29 +0100 Subject: [PATCH 46/50] Optional docker secrets, check if they're set before running login step --- .github/workflows/build-and-publish.yml | 4 ++-- .github/workflows/coordinator-build-and-publish.yml | 1 + .github/workflows/coordinator-testing.yml | 5 +++-- .github/workflows/postman-build-and-publish.yml | 5 +++-- .github/workflows/prover-build-and-publish.yml | 5 +++-- .github/workflows/reuse-run-e2e-tests.yml | 5 +++-- .github/workflows/traces-api-facade-build-and-publish.yml | 5 +++-- 7 files changed, 18 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index 4d2e3588a..f4107a2e7 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -45,9 +45,9 @@ on: type: string secrets: DOCKERHUB_USERNAME: - required: true + required: false DOCKERHUB_TOKEN: - required: true + required: false jobs: coordinator: diff --git a/.github/workflows/coordinator-build-and-publish.yml b/.github/workflows/coordinator-build-and-publish.yml index be6a4124d..f3dda9281 100644 --- a/.github/workflows/coordinator-build-and-publish.yml +++ b/.github/workflows/coordinator-build-and-publish.yml @@ -60,6 +60,7 @@ jobs: run: | ./gradlew coordinator:app:distZip --no-daemon - name: Login to Docker Hub + if: ${{ secrets.DOCKERHUB_USERNAME != '' && secrets.DOCKERHUB_TOKEN != '' }} uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} diff --git a/.github/workflows/coordinator-testing.yml b/.github/workflows/coordinator-testing.yml index 58abc2ad4..37fe26c08 100644 --- a/.github/workflows/coordinator-testing.yml +++ b/.github/workflows/coordinator-testing.yml @@ -8,9 +8,9 @@ on: type: string secrets: DOCKERHUB_USERNAME: - required: true + required: false DOCKERHUB_TOKEN: - required: true + required: false concurrency: group: coordinator-testing-${{ github.workflow }}-${{ github.ref }} @@ -52,6 +52,7 @@ jobs: run: | ./gradlew -V coordinator:app:buildNeeded - name: Login to Docker Hub + if: ${{ secrets.DOCKERHUB_USERNAME != '' && secrets.DOCKERHUB_TOKEN != '' }} uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} diff --git a/.github/workflows/postman-build-and-publish.yml b/.github/workflows/postman-build-and-publish.yml index a6fa4ec31..311c0ce61 100644 --- a/.github/workflows/postman-build-and-publish.yml +++ b/.github/workflows/postman-build-and-publish.yml @@ -18,9 +18,9 @@ on: default: false secrets: DOCKERHUB_USERNAME: - required: true + required: false DOCKERHUB_TOKEN: - required: true + required: false workflow_dispatch: inputs: push_image: @@ -55,6 +55,7 @@ jobs: submodules: true persist-credentials: false - name: Login to Docker Hub + if: ${{ secrets.DOCKERHUB_USERNAME != '' && secrets.DOCKERHUB_TOKEN != '' }} uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} diff --git a/.github/workflows/prover-build-and-publish.yml b/.github/workflows/prover-build-and-publish.yml index b27b6e50b..5f412e3c9 100644 --- a/.github/workflows/prover-build-and-publish.yml +++ b/.github/workflows/prover-build-and-publish.yml @@ -18,9 +18,9 @@ on: default: false secrets: DOCKERHUB_USERNAME: - required: true + required: false DOCKERHUB_TOKEN: - required: true + required: false workflow_dispatch: inputs: push_image: @@ -58,6 +58,7 @@ jobs: submodules: true persist-credentials: false - name: Login to Docker Hub + if: ${{ secrets.DOCKERHUB_USERNAME != '' && secrets.DOCKERHUB_TOKEN != '' }} uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} diff --git a/.github/workflows/reuse-run-e2e-tests.yml b/.github/workflows/reuse-run-e2e-tests.yml index 599f02829..fda11e0bf 100644 --- a/.github/workflows/reuse-run-e2e-tests.yml +++ b/.github/workflows/reuse-run-e2e-tests.yml @@ -54,9 +54,9 @@ on: value: ${{ jobs.run-e2e-tests.outputs.tests_outcome }} secrets: DOCKERHUB_USERNAME: - required: true + required: false DOCKERHUB_TOKEN: - required: true + required: false jobs: run-e2e-tests: @@ -81,6 +81,7 @@ jobs: with: pnpm-install-options: '--frozen-lockfile --prefer-offline' - name: Login to Docker Hub + if: ${{ secrets.DOCKERHUB_USERNAME != '' && secrets.DOCKERHUB_TOKEN != '' }} uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} diff --git a/.github/workflows/traces-api-facade-build-and-publish.yml b/.github/workflows/traces-api-facade-build-and-publish.yml index 5d464b75c..7b006f3b1 100644 --- a/.github/workflows/traces-api-facade-build-and-publish.yml +++ b/.github/workflows/traces-api-facade-build-and-publish.yml @@ -18,9 +18,9 @@ on: default: false secrets: DOCKERHUB_USERNAME: - required: true + required: false DOCKERHUB_TOKEN: - required: true + required: false workflow_dispatch: inputs: push_image: @@ -64,6 +64,7 @@ jobs: ./gradlew traces-api-facade:app:shadowJar echo ${{ github.workspace }} - name: Login to Docker Hub + if: ${{ secrets.DOCKERHUB_USERNAME != '' && secrets.DOCKERHUB_TOKEN != '' }} uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} From a710e896c53ab5c5f044d1398d68ff784a4d66f5 Mon Sep 17 00:00:00 2001 From: Bradley Bown Date: Fri, 18 Oct 2024 15:45:30 +0100 Subject: [PATCH 47/50] Set to env vars --- .github/workflows/coordinator-build-and-publish.yml | 4 +++- .github/workflows/coordinator-testing.yml | 4 +++- .github/workflows/postman-build-and-publish.yml | 4 +++- .github/workflows/prover-build-and-publish.yml | 4 +++- .github/workflows/reuse-run-e2e-tests.yml | 4 +++- .github/workflows/traces-api-facade-build-and-publish.yml | 4 +++- 6 files changed, 18 insertions(+), 6 deletions(-) diff --git a/.github/workflows/coordinator-build-and-publish.yml b/.github/workflows/coordinator-build-and-publish.yml index f3dda9281..240344be1 100644 --- a/.github/workflows/coordinator-build-and-publish.yml +++ b/.github/workflows/coordinator-build-and-publish.yml @@ -43,6 +43,8 @@ jobs: IMAGE_NAME: ${{ inputs.image_name }} PUSH_IMAGE: ${{ inputs.push_image }} TAGS: ${{ inputs.image_name }}:${{ inputs.commit_tag }} + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} steps: - name: Set develop tag if main branch if: ${{ github.ref == 'refs/heads/main' }} @@ -60,7 +62,7 @@ jobs: run: | ./gradlew coordinator:app:distZip --no-daemon - name: Login to Docker Hub - if: ${{ secrets.DOCKERHUB_USERNAME != '' && secrets.DOCKERHUB_TOKEN != '' }} + if: ${{ env.DOCKERHUB_USERNAME != '' && env.DOCKERHUB_TOKEN != '' }} uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} diff --git a/.github/workflows/coordinator-testing.yml b/.github/workflows/coordinator-testing.yml index 37fe26c08..96ad4a3b8 100644 --- a/.github/workflows/coordinator-testing.yml +++ b/.github/workflows/coordinator-testing.yml @@ -24,6 +24,8 @@ jobs: env: COMMIT_TAG: ${{ inputs.commit_tag }} GITHUB_TOKEN: ${{ secrets._GITHUB_TOKEN_RELEASE_ACCESS }} + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} runs-on: [self-hosted, ubuntu-22.04, X64, medium] name: Coordinator tests steps: @@ -52,7 +54,7 @@ jobs: run: | ./gradlew -V coordinator:app:buildNeeded - name: Login to Docker Hub - if: ${{ secrets.DOCKERHUB_USERNAME != '' && secrets.DOCKERHUB_TOKEN != '' }} + if: ${{ env.DOCKERHUB_USERNAME != '' && env.DOCKERHUB_TOKEN != '' }} uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} diff --git a/.github/workflows/postman-build-and-publish.yml b/.github/workflows/postman-build-and-publish.yml index 311c0ce61..ea021f8ba 100644 --- a/.github/workflows/postman-build-and-publish.yml +++ b/.github/workflows/postman-build-and-publish.yml @@ -43,6 +43,8 @@ jobs: IMAGE_NAME: ${{ inputs.image_name }} PUSH_IMAGE: ${{ inputs.push_image }} TAGS: ${{ inputs.image_name }}:${{ inputs.commit_tag }} + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} steps: - name: Set develop tag if main branch if: ${{ github.ref == 'refs/heads/main' }} @@ -55,7 +57,7 @@ jobs: submodules: true persist-credentials: false - name: Login to Docker Hub - if: ${{ secrets.DOCKERHUB_USERNAME != '' && secrets.DOCKERHUB_TOKEN != '' }} + if: ${{ env.DOCKERHUB_USERNAME != '' && env.DOCKERHUB_TOKEN != '' }} uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} diff --git a/.github/workflows/prover-build-and-publish.yml b/.github/workflows/prover-build-and-publish.yml index 5f412e3c9..70c8cc68e 100644 --- a/.github/workflows/prover-build-and-publish.yml +++ b/.github/workflows/prover-build-and-publish.yml @@ -46,6 +46,8 @@ jobs: IMAGE_NAME: ${{ inputs.image_name }} PUSH_IMAGE: ${{ inputs.push_image }} TAGS: ${{ inputs.image_name }}:${{ inputs.commit_tag }} + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} steps: - name: Set develop tag if main branch if: ${{ github.ref == 'refs/heads/main' }} @@ -58,7 +60,7 @@ jobs: submodules: true persist-credentials: false - name: Login to Docker Hub - if: ${{ secrets.DOCKERHUB_USERNAME != '' && secrets.DOCKERHUB_TOKEN != '' }} + if: ${{ env.DOCKERHUB_USERNAME != '' && env.DOCKERHUB_TOKEN != '' }} uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} diff --git a/.github/workflows/reuse-run-e2e-tests.yml b/.github/workflows/reuse-run-e2e-tests.yml index fda11e0bf..196f150dd 100644 --- a/.github/workflows/reuse-run-e2e-tests.yml +++ b/.github/workflows/reuse-run-e2e-tests.yml @@ -67,6 +67,8 @@ jobs: TRACES_API_TAG: ${{ inputs.commit_tag }} TRANSACTION_EXCLUSION_API_TAG: ${{ inputs.commit_tag }} GITHUB_TOKEN: ${{ secrets._GITHUB_TOKEN_RELEASE_ACCESS }} + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} outputs: tests_outcome: ${{ steps.run_e2e_tests.outcome }} runs-on: [self-hosted, ubuntu-22.04, X64, large] @@ -81,7 +83,7 @@ jobs: with: pnpm-install-options: '--frozen-lockfile --prefer-offline' - name: Login to Docker Hub - if: ${{ secrets.DOCKERHUB_USERNAME != '' && secrets.DOCKERHUB_TOKEN != '' }} + if: ${{ env.DOCKERHUB_USERNAME != '' && env.DOCKERHUB_TOKEN != '' }} uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} diff --git a/.github/workflows/traces-api-facade-build-and-publish.yml b/.github/workflows/traces-api-facade-build-and-publish.yml index 7b006f3b1..72113120b 100644 --- a/.github/workflows/traces-api-facade-build-and-publish.yml +++ b/.github/workflows/traces-api-facade-build-and-publish.yml @@ -43,6 +43,8 @@ jobs: IMAGE_NAME: ${{ inputs.image_name }} PUSH_IMAGE: ${{ inputs.push_image }} TAGS: ${{ inputs.image_name }}:${{ inputs.commit_tag }} + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} steps: - name: Set develop tag if main branch if: ${{ github.ref == 'refs/heads/main' }} @@ -64,7 +66,7 @@ jobs: ./gradlew traces-api-facade:app:shadowJar echo ${{ github.workspace }} - name: Login to Docker Hub - if: ${{ secrets.DOCKERHUB_USERNAME != '' && secrets.DOCKERHUB_TOKEN != '' }} + if: ${{ env.DOCKERHUB_USERNAME != '' && env.DOCKERHUB_TOKEN != '' }} uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} From 821b84205836664cef5dce2601478a70fcf376cf Mon Sep 17 00:00:00 2001 From: jonesho Date: Wed, 23 Oct 2024 14:33:22 +0800 Subject: [PATCH 48/50] feat: add support for transaction-exclusion-api in new github workflow --- .github/workflows/build-and-publish.yml | 4 +- .../reuse-check-images-tags-and-push.yml | 3 - .github/workflows/reuse-run-e2e-tests.yml | 3 +- .../traces-api-facade-build-and-publish.yml | 4 +- ...action-exclusion-api-build-and-publish.yml | 78 ++++++++++++++----- .../transaction-exclusion-api-testing.yml | 10 +-- .../compose-local-dev-traces-v2.overrides.yml | 2 +- docker/compose.yml | 4 +- 8 files changed, 70 insertions(+), 38 deletions(-) diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index f4107a2e7..b1298f8f1 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -95,9 +95,7 @@ jobs: if: ${{ always() && (inputs.transaction_exclusion_api_changed == 'true' || inputs.transaction_exclusion_api_image_tagged != 'true') }} with: commit_tag: ${{ inputs.commit_tag }} - last_commit_tag: ${{ inputs.last_commit_tag }} - common_ancestor_tag: ${{ inputs.common_ancestor_tag }} develop_tag: ${{ inputs.develop_tag }} - untested_tag_suffix: ${{ inputs.untested_tag_suffix }} image_name: consensys/linea-transaction-exclusion-api + push_image: ${{ inputs.push_image }} secrets: inherit diff --git a/.github/workflows/reuse-check-images-tags-and-push.yml b/.github/workflows/reuse-check-images-tags-and-push.yml index e050df1bd..e0e5b70d5 100644 --- a/.github/workflows/reuse-check-images-tags-and-push.yml +++ b/.github/workflows/reuse-check-images-tags-and-push.yml @@ -180,11 +180,8 @@ jobs: with: commit_tag: ${{ inputs.commit_tag }} last_commit_tag: ${{ inputs.last_commit_tag }} - common_ancestor_tag: ${{ inputs.common_ancestor_tag }} develop_tag: ${{ inputs.develop_tag }} - untested_tag_suffix: ${{ inputs.untested_tag_suffix }} image_name: consensys/linea-transaction-exclusion-api last_commit_tag_exists: ${{ needs.check_image_tags_exist.outputs.last_commit_tag_exists_transaction_exclusion_api }} - common_ancestor_commit_tag_exists: ${{ needs.check_image_tags_exist.outputs.common_ancestor_commit_tag_exists_transaction_exclusion_api }} docker_username: ${{ secrets.DOCKERHUB_USERNAME }} docker_password: ${{ secrets.DOCKERHUB_TOKEN }} diff --git a/.github/workflows/reuse-run-e2e-tests.yml b/.github/workflows/reuse-run-e2e-tests.yml index 196f150dd..3c1df5333 100644 --- a/.github/workflows/reuse-run-e2e-tests.yml +++ b/.github/workflows/reuse-run-e2e-tests.yml @@ -116,7 +116,8 @@ jobs: gunzip -c /runner/_work/linea-monorepo/linea-monorepo/linea-coordinator/linea-coordinator-docker-image.tar.gz | docker load && gunzip -c /runner/_work/linea-monorepo/linea-monorepo/linea-postman/linea-postman-docker-image.tar.gz | docker load && gunzip -c /runner/_work/linea-monorepo/linea-monorepo/linea-prover/linea-prover-docker-image.tar.gz | docker load && - gunzip -c /runner/_work/linea-monorepo/linea-monorepo/linea-traces-api-facade/linea-traces-api-facade-docker-image.tar.gz | docker load + gunzip -c /runner/_work/linea-monorepo/linea-monorepo/linea-traces-api-facade/linea-traces-api-facade-docker-image.tar.gz | docker load && + gunzip -c /runner/_work/linea-monorepo/linea-monorepo/linea-transaction-exclusion-api/linea-transaction-exclusion-api-docker-image.tar.gz | docker load shell: bash - name: Spin up fresh environment with geth tracing with retry if: ${{ inputs.tracing-engine == 'geth' }} diff --git a/.github/workflows/traces-api-facade-build-and-publish.yml b/.github/workflows/traces-api-facade-build-and-publish.yml index 72113120b..1656594c4 100644 --- a/.github/workflows/traces-api-facade-build-and-publish.yml +++ b/.github/workflows/traces-api-facade-build-and-publish.yml @@ -90,7 +90,7 @@ jobs: file: ./traces-api-facade/Dockerfile platforms: linux/amd64 load: true - push: ${{ env.PUSH_IMAGE }} + push: false tags: ${{ env.TAGS }} - name: Save Docker image as artifact if: ${{ env.PUSH_IMAGE == 'false' && github.event_name == 'pull_request' }} @@ -111,7 +111,7 @@ jobs: build-contexts: jar=./traces-api-facade/app/build/libs/ file: ./traces-api-facade/Dockerfile platforms: linux/amd64,linux/arm64 - push: ${{ env.PUSH_IMAGE }} + push: true tags: ${{ env.TAGS }} cache-from: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache cache-to: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache,mode=max diff --git a/.github/workflows/transaction-exclusion-api-build-and-publish.yml b/.github/workflows/transaction-exclusion-api-build-and-publish.yml index 3a1a3ce0a..fe837591e 100644 --- a/.github/workflows/transaction-exclusion-api-build-and-publish.yml +++ b/.github/workflows/transaction-exclusion-api-build-and-publish.yml @@ -6,26 +6,32 @@ on: commit_tag: required: true type: string - last_commit_tag: - required: true - type: string - common_ancestor_tag: - required: true - type: string develop_tag: required: true type: string - untested_tag_suffix: - required: true - type: string image_name: required: true type: string + push_image: + required: false + type: boolean + default: false secrets: DOCKERHUB_USERNAME: - required: true + required: false DOCKERHUB_TOKEN: - required: true + required: false + workflow_dispatch: + inputs: + push_image: + description: 'Toggle whether to push image to docker registry' + required: false + type: boolean + default: true + +concurrency: + group: transaction-exclusion-api-build-and-publish-${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} jobs: build-and-publish: @@ -34,9 +40,16 @@ jobs: env: COMMIT_TAG: ${{ inputs.commit_tag }} DEVELOP_TAG: ${{ inputs.develop_tag }} - UNTESTED_TAG_SUFFIX: ${{ inputs.untested_tag_suffix }} IMAGE_NAME: ${{ inputs.image_name }} + PUSH_IMAGE: ${{ inputs.push_image }} + TAGS: ${{ inputs.image_name }}:${{ inputs.commit_tag }} + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} steps: + - name: Set develop tag if main branch + if: ${{ github.ref == 'refs/heads/main' }} + run: | + echo "TAGS=${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }},${{ env.IMAGE_NAME }}:${{ env.DEVELOP_TAG }}" >> $GITHUB_ENV - name: Checkout uses: actions/checkout@v3 with: @@ -51,30 +64,53 @@ jobs: - name: Build dist run: | ./gradlew transaction-exclusion-api:app:distZip --no-daemon - - name: Set up QEMU - uses: docker/setup-qemu-action@v2 - - name: Set up Docker Buildx - id: buildx - uses: docker/setup-buildx-action@v2 - name: Login to Docker Hub - uses: docker/login-action@v1 + if: ${{ env.DOCKERHUB_USERNAME != '' && env.DOCKERHUB_TOKEN != '' }} + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + - name: Set up Docker Buildx - local + id: buildx + uses: docker/setup-buildx-action@v3 - name: Docker meta id: transaction-exclusion-api uses: docker/metadata-action@v3 with: - images: consensys/linea-transaction-exclusion-api + images: ${{ env.IMAGE_NAME }} + - name: Build for testing + uses: docker/build-push-action@v6 + if: ${{ env.PUSH_IMAGE == 'false' && github.event_name == 'pull_request' }} + with: + context: . + build-contexts: zip=./transaction-exclusion-api/app/build/distributions/ + file: ./transaction-exclusion-api/Dockerfile + platforms: linux/amd64 + load: true + push: false + tags: ${{ env.TAGS }} + - name: Save Docker image as artifact + if: ${{ env.PUSH_IMAGE == 'false' && github.event_name == 'pull_request' }} + run: | + docker save ${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }} | gzip > linea-transaction-exclusion-api-docker-image.tar.gz + shell: bash + - name: Upload Docker image artifact + if: ${{ env.PUSH_IMAGE == 'false' && github.event_name == 'pull_request' }} + uses: actions/upload-artifact@v4 + with: + name: linea-transaction-exclusion-api + path: linea-transaction-exclusion-api-docker-image.tar.gz - name: Build & push uses: docker/build-push-action@v6 + if: ${{ env.PUSH_IMAGE == 'true' || github.event_name == 'workflow_dispatch' }} with: context: . build-contexts: zip=./transaction-exclusion-api/app/build/distributions/ file: ./transaction-exclusion-api/Dockerfile platforms: linux/amd64,linux/arm64 push: true - tags: | - ${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }}-${{ env.UNTESTED_TAG_SUFFIX }} + tags: ${{ env.TAGS }} cache-from: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache cache-to: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache,mode=max diff --git a/.github/workflows/transaction-exclusion-api-testing.yml b/.github/workflows/transaction-exclusion-api-testing.yml index 77fd024da..28b6ae5cb 100644 --- a/.github/workflows/transaction-exclusion-api-testing.yml +++ b/.github/workflows/transaction-exclusion-api-testing.yml @@ -2,11 +2,7 @@ name: transaction-exclusion-api-testing on: workflow_call: - secrets: - DOCKERHUB_USERNAME: - required: true - DOCKERHUB_TOKEN: - required: true + workflow_dispatch: inputs: coverage: @@ -14,6 +10,10 @@ on: required: false type: boolean default: false + +concurrency: + group: transaction-exclusion-api-testing-${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} jobs: run-tests: diff --git a/docker/compose-local-dev-traces-v2.overrides.yml b/docker/compose-local-dev-traces-v2.overrides.yml index e184e565b..8e78f6ec7 100644 --- a/docker/compose-local-dev-traces-v2.overrides.yml +++ b/docker/compose-local-dev-traces-v2.overrides.yml @@ -27,7 +27,7 @@ services: hostname: traces-node-v2 container_name: traces-node-v2 image: consensys/linea-besu:24.9-delivery32 - profiles: [ "l2", "l2-bc", "debug", "ci-testing" ] + profiles: [ "l2", "l2-bc", "debug", "external-to-monorepo" ] depends_on: traces-node-v2-plugin-downloader: condition: service_completed_successfully diff --git a/docker/compose.yml b/docker/compose.yml index 477f5a330..5900ac1f8 100644 --- a/docker/compose.yml +++ b/docker/compose.yml @@ -123,7 +123,7 @@ services: hostname: l2-node-besu container_name: l2-node-besu image: consensys/linea-besu:24.10-delivery34 - profiles: [ "l2", "l2-bc", "debug" ] + profiles: [ "l2", "l2-bc", "debug", "external-to-monorepo" ] depends_on: sequencer: condition: service_healthy @@ -308,7 +308,7 @@ services: transaction-exclusion-api: hostname: transaction-exclusion-api container_name: transaction-exclusion-api - image: consensys/linea-transaction-exclusion-api:${TRANSACTION_EXCLUSION_API_TAG:-d227ddf} + image: consensys/linea-transaction-exclusion-api:${TRANSACTION_EXCLUSION_API_TAG:-cd58916} profiles: [ "l2", "debug" ] restart: on-failure depends_on: From 6f929ab376ed4830ff99cf21f91403cc346de6ec Mon Sep 17 00:00:00 2001 From: jonesho Date: Thu, 24 Oct 2024 02:56:28 +0800 Subject: [PATCH 49/50] feat: remove new line pipeline testing --- .github/workflows/transaction-exclusion-api-testing.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/transaction-exclusion-api-testing.yml b/.github/workflows/transaction-exclusion-api-testing.yml index 28b6ae5cb..cb076b35d 100644 --- a/.github/workflows/transaction-exclusion-api-testing.yml +++ b/.github/workflows/transaction-exclusion-api-testing.yml @@ -2,7 +2,6 @@ name: transaction-exclusion-api-testing on: workflow_call: - workflow_dispatch: inputs: coverage: From 123454d09c8fa858936cee1d89f95794d2ecc63a Mon Sep 17 00:00:00 2001 From: jonesho Date: Thu, 24 Oct 2024 03:12:03 +0800 Subject: [PATCH 50/50] feat: add echo for github.ref pipeline testing --- .github/workflows/reuse-store-image-name-and-tags.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/reuse-store-image-name-and-tags.yml b/.github/workflows/reuse-store-image-name-and-tags.yml index b349e4244..05a61e23e 100644 --- a/.github/workflows/reuse-store-image-name-and-tags.yml +++ b/.github/workflows/reuse-store-image-name-and-tags.yml @@ -39,3 +39,4 @@ jobs: echo "COMMIT_TAG: ${{ steps.step1.outputs.COMMIT_TAG }}" echo "LAST_COMMIT_TAG: ${{ steps.step1.outputs.LAST_COMMIT_TAG }}" echo "DEVELOP_TAG: ${{ steps.step1.outputs.DEVELOP_TAG }}" + echo "github.ref: ${{ github.ref }}"