perf(pruning): adaptive proportional sub-sharding + 2s wait #56
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: docker-build-cometbft | ||
| permissions: | ||
| contents: read | ||
| permissions: | ||
| contents: read | ||
| on: | ||
| workflow_dispatch: | ||
| push: | ||
| branches: | ||
| - main | ||
| - v0.38.x | ||
| - v1.x | ||
| - v2.x | ||
| tags: | ||
| - "v[0-9]+.[0-9]+.[0-9]+" | ||
| - "v[0-9]+.[0-9]+.[0-9]+-alpha.[0-9]+" | ||
| - "v[0-9]+.[0-9]+.[0-9]+-beta.[0-9]+" | ||
| - "v[0-9]+.[0-9]+.[0-9]+-rc[0-9]+" | ||
| concurrency: | ||
| group: ${{ github.workflow }}-${{ github.ref }} | ||
| cancel-in-progress: true | ||
| env: | ||
| DOCKER_ORG: cometbft | ||
| DOCKER_IMAGE: cometbft | ||
| jobs: | ||
| vars: | ||
| runs-on: ubuntu-latest | ||
| outputs: | ||
| repo: ${{ steps.set.outputs.repo }} | ||
| tags: ${{ steps.set.outputs.tags }} | ||
| steps: | ||
| - id: set | ||
| run: | | ||
| REPO="${DOCKER_ORG}/${DOCKER_IMAGE}" | ||
| VERSION="${GITHUB_REF_NAME}" | ||
| TAGS="${REPO}:${VERSION}" | ||
| if [ "$VERSION" = "main" ]; then | ||
| TAGS="${TAGS:+$TAGS,}$REPO:latest" | ||
| fi | ||
| echo "repo=${REPO}" >> $GITHUB_OUTPUT | ||
| echo "tags=${TAGS}" >> $GITHUB_OUTPUT | ||
| build-images: | ||
| needs: vars | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| include: | ||
| - os: ubuntu-24.04 | ||
| arch: amd64 | ||
| - os: ubuntu-24.04-arm | ||
| arch: arm64 | ||
| runs-on: ${{ matrix.os }} | ||
| outputs: | ||
| digest-amd64: ${{ steps.digest.outputs.digest-amd64 }} | ||
| digest-arm64: ${{ steps.digest.outputs.digest-arm64 }} | ||
| steps: | ||
| - id: tags | ||
| run: | | ||
| TAGS=$(echo "${{ needs.vars.outputs.tags }}" | sed "s/[^,]*/&-${{ matrix.arch }}/g") | ||
| echo "tags=${TAGS}" >> $GITHUB_OUTPUT | ||
| - uses: actions/checkout@v4 | ||
| - uses: docker/login-action@v3 | ||
| with: | ||
| username: ${{ secrets.DOCKERHUB_USERNAME }} | ||
| password: ${{ secrets.DOCKERHUB_TOKEN }} | ||
| - uses: docker/setup-buildx-action@v3 | ||
| - uses: docker/build-push-action@v6 | ||
| id: build | ||
| with: | ||
| platforms: linux/${{ matrix.arch }} | ||
| context: . | ||
| file: ./DOCKER/Dockerfile | ||
| push: true | ||
| tags: ${{ steps.tags.outputs.tags }} | ||
| - id: digest | ||
| run: echo "digest-${{ matrix.arch }}=${{ steps.build.outputs.digest }}" >> $GITHUB_OUTPUT | ||
| merge-images: | ||
| runs-on: ubuntu-latest | ||
| needs: | ||
| - vars | ||
| - build-images | ||
| steps: | ||
| - uses: docker/login-action@v3 | ||
| with: | ||
| username: ${{ secrets.DOCKERHUB_USERNAME }} | ||
| password: ${{ secrets.DOCKERHUB_TOKEN }} | ||
| - run: | | ||
| TAGS="${{ needs.vars.outputs.tags }}" | ||
| docker buildx imagetools create \ | ||
| $(printf -- '--tag %s ' ${TAGS//,/ }) \ | ||
| ${{ needs.vars.outputs.repo }}@${{ needs.build-images.outputs.digest-amd64 }} \ | ||
| ${{ needs.vars.outputs.repo }}@${{ needs.build-images.outputs.digest-arm64 }} | ||