status-im/nimbus-eth2@unstable [a2d80081-e48e-42a4-b773-d83f60056386] #757
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build nimbus-eth2 docker image | |
| run-name: "${{ inputs.repository }}@${{ inputs.ref }}${{ inputs.correlation_id && format(' [{0}]', inputs.correlation_id) || '' }}" | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| repository: | |
| description: The source nimbus-eth2 repository to build from | |
| default: status-im/nimbus-eth2 | |
| type: string | |
| required: true | |
| ref: | |
| description: The branch, tag or SHA to checkout and build from | |
| default: unstable | |
| type: string | |
| required: true | |
| docker_tag: | |
| description: Override target docker tag (defaults to the above source ref if left blank) | |
| type: string | |
| required: false | |
| correlation_id: | |
| description: Optional correlation ID passed through to the run name (used by integrations) | |
| type: string | |
| required: false | |
| jobs: | |
| prepare: | |
| runs-on: self-hosted-ghr-size-s-x64 | |
| outputs: | |
| platforms: ${{ steps.setup.outputs.platforms }} | |
| target_tag: ${{ steps.tag.outputs.docker_tag }} | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - name: Prepare Matrix | |
| id: setup | |
| uses: ./.github/actions/prepare | |
| with: | |
| client: 'nimbus-eth2' | |
| repository: ${{ inputs.repository }} | |
| ref: ${{ inputs.ref }} | |
| - name: Generate target tag | |
| id: tag | |
| uses: ./.github/actions/docker-tag | |
| with: | |
| input: ${{ inputs.docker_tag || inputs.ref }} | |
| repository: ${{ inputs.repository }} | |
| upstream_repository: status-im/nimbus-eth2 | |
| docker_tag: ${{ inputs.docker_tag }} | |
| deploy-beacon: | |
| needs: | |
| - prepare | |
| runs-on: ${{ matrix.runner }} | |
| continue-on-error: true | |
| strategy: | |
| matrix: | |
| include: ${{fromJson(needs.prepare.outputs.platforms)}} | |
| outputs: | |
| git_commit_hash: ${{ steps.set_output.outputs.git_commit_hash }} | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - uses: ./.github/actions/install-deps | |
| with: | |
| repository: ${{ inputs.repository }} | |
| - uses: ./.github/actions/deploy | |
| id: deploy | |
| with: | |
| source_repository: ${{ inputs.repository }} | |
| source_ref: ${{ inputs.ref }} | |
| target_tag: ${{ needs.prepare.outputs.target_tag }}-${{ matrix.slug }} | |
| target_repository: ethpandaops/nimbus-eth2 | |
| target_dockerfile: ./nimbus-eth2/Dockerfile.beacon | |
| platform: ${{ matrix.platform }} | |
| DOCKER_USERNAME: "${{ vars.DOCKER_USERNAME }}" | |
| DOCKER_PASSWORD: "${{ secrets.DOCKER_PASSWORD }}" | |
| MACOS_PASSWORD: "${{ secrets.MACOS_PASSWORD }}" | |
| GOPROXY: "${{ vars.GOPROXY }}" | |
| HARBOR_USERNAME: "${{ vars.HARBOR_USERNAME }}" | |
| HARBOR_PASSWORD: "${{ secrets.HARBOR_PASSWORD }}" | |
| harbor_registry: ${{ vars.HARBOR_REGISTRY }} | |
| # This step captures the git commit hash from the deploy action for job output | |
| - name: Set job output | |
| id: set_output | |
| run: echo "git_commit_hash=${{ steps.deploy.outputs.git_commit_hash }}" >> $GITHUB_OUTPUT | |
| shell: bash | |
| deploy-beacon-minimal: | |
| needs: | |
| - prepare | |
| runs-on: ${{ matrix.runner }} | |
| continue-on-error: true | |
| strategy: | |
| matrix: | |
| include: ${{fromJson(needs.prepare.outputs.platforms)}} | |
| outputs: | |
| git_commit_hash: ${{ steps.set_output.outputs.git_commit_hash }} | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - uses: ./.github/actions/install-deps | |
| with: | |
| repository: ${{ inputs.repository }} | |
| - uses: ./.github/actions/deploy | |
| id: deploy | |
| with: | |
| source_repository: ${{ inputs.repository }} | |
| source_ref: ${{ inputs.ref }} | |
| target_tag: ${{ needs.prepare.outputs.target_tag }}-minimal-${{ matrix.slug }} | |
| target_repository: ethpandaops/nimbus-eth2 | |
| target_dockerfile: ./nimbus-eth2/Dockerfile.beacon-minimal | |
| platform: ${{ matrix.platform }} | |
| DOCKER_USERNAME: "${{ vars.DOCKER_USERNAME }}" | |
| DOCKER_PASSWORD: "${{ secrets.DOCKER_PASSWORD }}" | |
| MACOS_PASSWORD: "${{ secrets.MACOS_PASSWORD }}" | |
| GOPROXY: "${{ vars.GOPROXY }}" | |
| # This step captures the git commit hash from the deploy action for job output | |
| - name: Set job output | |
| id: set_output | |
| run: echo "git_commit_hash=${{ steps.deploy.outputs.git_commit_hash }}" >> $GITHUB_OUTPUT | |
| shell: bash | |
| deploy-validator: | |
| needs: | |
| - prepare | |
| runs-on: ${{ matrix.runner }} | |
| continue-on-error: true | |
| strategy: | |
| matrix: | |
| include: ${{fromJson(needs.prepare.outputs.platforms)}} | |
| outputs: | |
| git_commit_hash: ${{ steps.set_output.outputs.git_commit_hash }} | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - uses: ./.github/actions/deploy | |
| id: deploy | |
| with: | |
| source_repository: ${{ inputs.repository }} | |
| source_ref: ${{ inputs.ref }} | |
| target_tag: ${{ needs.prepare.outputs.target_tag }}-${{ matrix.slug }} | |
| target_repository: ethpandaops/nimbus-validator-client | |
| target_dockerfile: ./nimbus-eth2/Dockerfile.validator | |
| platform: ${{ matrix.platform }} | |
| DOCKER_USERNAME: "${{ vars.DOCKER_USERNAME }}" | |
| DOCKER_PASSWORD: "${{ secrets.DOCKER_PASSWORD }}" | |
| MACOS_PASSWORD: "${{ secrets.MACOS_PASSWORD }}" | |
| GOPROXY: "${{ vars.GOPROXY }}" | |
| HARBOR_USERNAME: "${{ vars.HARBOR_USERNAME }}" | |
| HARBOR_PASSWORD: "${{ secrets.HARBOR_PASSWORD }}" | |
| harbor_registry: ${{ vars.HARBOR_REGISTRY }} | |
| # This step captures the git commit hash from the deploy action for job output | |
| - name: Set job output | |
| id: set_output | |
| run: echo "git_commit_hash=${{ steps.deploy.outputs.git_commit_hash }}" >> $GITHUB_OUTPUT | |
| shell: bash | |
| deploy-validator-minimal: | |
| needs: | |
| - prepare | |
| runs-on: ${{ matrix.runner }} | |
| continue-on-error: true | |
| strategy: | |
| matrix: | |
| include: ${{fromJson(needs.prepare.outputs.platforms)}} | |
| outputs: | |
| git_commit_hash: ${{ steps.set_output.outputs.git_commit_hash }} | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - uses: ./.github/actions/deploy | |
| id: deploy | |
| with: | |
| source_repository: ${{ inputs.repository }} | |
| source_ref: ${{ inputs.ref }} | |
| target_tag: ${{ needs.prepare.outputs.target_tag }}-minimal-${{ matrix.slug }} | |
| target_repository: ethpandaops/nimbus-validator-client | |
| target_dockerfile: ./nimbus-eth2/Dockerfile.validator-minimal | |
| platform: ${{ matrix.platform }} | |
| DOCKER_USERNAME: "${{ vars.DOCKER_USERNAME }}" | |
| DOCKER_PASSWORD: "${{ secrets.DOCKER_PASSWORD }}" | |
| MACOS_PASSWORD: "${{ secrets.MACOS_PASSWORD }}" | |
| GOPROXY: "${{ vars.GOPROXY }}" | |
| HARBOR_USERNAME: "${{ vars.HARBOR_USERNAME }}" | |
| HARBOR_PASSWORD: "${{ secrets.HARBOR_PASSWORD }}" | |
| harbor_registry: ${{ vars.HARBOR_REGISTRY }} | |
| # This step captures the git commit hash from the deploy action for job output | |
| - name: Set job output | |
| id: set_output | |
| run: echo "git_commit_hash=${{ steps.deploy.outputs.git_commit_hash }}" >> $GITHUB_OUTPUT | |
| shell: bash | |
| manifest-beacon: | |
| needs: | |
| - prepare | |
| - deploy-beacon | |
| runs-on: self-hosted-ghr-size-s-x64 | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - uses: ./.github/actions/manifest | |
| with: | |
| source_repository: ${{ inputs.repository }} | |
| source_ref: ${{ inputs.ref }} | |
| target_tag: ${{ needs.prepare.outputs.target_tag }} | |
| target_repository: ethpandaops/nimbus-eth2 | |
| platforms: ${{ needs.prepare.outputs.platforms }} | |
| harbor_registry: ${{ vars.HARBOR_REGISTRY }} | |
| HARBOR_USERNAME: "${{ vars.HARBOR_USERNAME }}" | |
| HARBOR_PASSWORD: "${{ secrets.HARBOR_PASSWORD }}" | |
| git_commit_hash: ${{ needs.deploy-beacon.outputs.git_commit_hash }} | |
| DOCKER_USERNAME: "${{ vars.DOCKER_USERNAME }}" | |
| DOCKER_PASSWORD: "${{ secrets.DOCKER_PASSWORD }}" | |
| manifest-beacon-minimal: | |
| needs: | |
| - prepare | |
| - deploy-beacon-minimal | |
| runs-on: self-hosted-ghr-size-s-x64 | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - uses: ./.github/actions/manifest | |
| with: | |
| source_repository: ${{ inputs.repository }} | |
| source_ref: ${{ inputs.ref }} | |
| target_tag: ${{ needs.prepare.outputs.target_tag }}-minimal | |
| target_repository: ethpandaops/nimbus-eth2 | |
| platforms: ${{ needs.prepare.outputs.platforms }} | |
| harbor_registry: ${{ vars.HARBOR_REGISTRY }} | |
| HARBOR_USERNAME: "${{ vars.HARBOR_USERNAME }}" | |
| HARBOR_PASSWORD: "${{ secrets.HARBOR_PASSWORD }}" | |
| git_commit_hash: ${{ needs.deploy-beacon-minimal.outputs.git_commit_hash }} | |
| DOCKER_USERNAME: "${{ vars.DOCKER_USERNAME }}" | |
| DOCKER_PASSWORD: "${{ secrets.DOCKER_PASSWORD }}" | |
| manifest-validator: | |
| needs: | |
| - prepare | |
| - deploy-validator | |
| runs-on: self-hosted-ghr-size-s-x64 | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - uses: ./.github/actions/manifest | |
| with: | |
| source_repository: ${{ inputs.repository }} | |
| source_ref: ${{ inputs.ref }} | |
| target_tag: ${{ needs.prepare.outputs.target_tag }} | |
| target_repository: ethpandaops/nimbus-validator-client | |
| platforms: ${{ needs.prepare.outputs.platforms }} | |
| harbor_registry: ${{ vars.HARBOR_REGISTRY }} | |
| HARBOR_USERNAME: "${{ vars.HARBOR_USERNAME }}" | |
| HARBOR_PASSWORD: "${{ secrets.HARBOR_PASSWORD }}" | |
| git_commit_hash: ${{ needs.deploy-validator.outputs.git_commit_hash }} | |
| DOCKER_USERNAME: "${{ vars.DOCKER_USERNAME }}" | |
| DOCKER_PASSWORD: "${{ secrets.DOCKER_PASSWORD }}" | |
| manifest-validator-minimal: | |
| needs: | |
| - prepare | |
| - deploy-validator-minimal | |
| runs-on: self-hosted-ghr-size-s-x64 | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - uses: ./.github/actions/manifest | |
| with: | |
| source_repository: ${{ inputs.repository }} | |
| source_ref: ${{ inputs.ref }} | |
| target_tag: ${{ needs.prepare.outputs.target_tag }}-minimal | |
| target_repository: ethpandaops/nimbus-validator-client | |
| platforms: ${{ needs.prepare.outputs.platforms }} | |
| harbor_registry: ${{ vars.HARBOR_REGISTRY }} | |
| HARBOR_USERNAME: "${{ vars.HARBOR_USERNAME }}" | |
| HARBOR_PASSWORD: "${{ secrets.HARBOR_PASSWORD }}" | |
| git_commit_hash: ${{ needs.deploy-validator-minimal.outputs.git_commit_hash }} | |
| DOCKER_USERNAME: "${{ vars.DOCKER_USERNAME }}" | |
| DOCKER_PASSWORD: "${{ secrets.DOCKER_PASSWORD }}" | |
| notify: | |
| name: Discord Notification | |
| runs-on: ubuntu-latest | |
| needs: | |
| - prepare | |
| - deploy-beacon | |
| - deploy-beacon-minimal | |
| - deploy-validator | |
| - deploy-validator-minimal | |
| - manifest-beacon | |
| - manifest-beacon-minimal | |
| - manifest-validator | |
| - manifest-validator-minimal | |
| if: failure() | |
| steps: | |
| - name: Notify | |
| uses: nobrayner/discord-webhook@1766a33bf571acdcc0678f00da4fb83aad01ebc7 # v1 | |
| with: | |
| github-token: ${{ secrets.github_token }} | |
| discord-webhook: ${{ secrets.DISCORD_WEBHOOK }} |