diff --git a/.github/workflows/build-push-rbuilder.yml b/.github/workflows/build-push-rbuilder.yml new file mode 100644 index 0000000..235a8ea --- /dev/null +++ b/.github/workflows/build-push-rbuilder.yml @@ -0,0 +1,100 @@ +name: Build rbuilder docker image + +on: + workflow_dispatch: + inputs: + repository: + description: The source rbuilder repository to build from + default: ethpandaops/rbuilder + type: string + required: true + ref: + description: The branch, tag or SHA to checkout and build from + default: develop + type: string + required: true + docker_tag: + description: Override target docker tag (defaults to the above source ref if left blank) + type: string + required: false + build_args: + description: Build arguments to pass to the Docker build + default: "" + type: string + required: false + +jobs: + prepare: + runs-on: ubuntu-latest + outputs: + platforms: ${{ steps.setup.outputs.platforms }} + target_tag: ${{ steps.tag.outputs.docker_tag }} + steps: + - uses: actions/checkout@v4 + - name: Prepare Matrix + id: setup + uses: ./.github/actions/prepare + with: + client: 'rbuilder' + - name: Generate target tag + id: tag + uses: ./.github/actions/docker-tag + with: + input: ${{ inputs.docker_tag || inputs.ref }} + deploy: + needs: + - prepare + runs-on: ${{ matrix.runner }} + continue-on-error: true + strategy: + matrix: + include: ${{fromJson(needs.prepare.outputs.platforms)}} + steps: + - uses: actions/checkout@v4 + - uses: ./.github/actions/install-deps + with: + repository: ${{ inputs.repository }} + - uses: ./.github/actions/deploy + with: + source_repository: ${{ inputs.repository }} + source_ref: ${{ inputs.ref }} + target_tag: ${{ needs.prepare.outputs.target_tag }}-${{ matrix.slug }} + target_repository: ethpandaops/rbuilder + platform: ${{ matrix.platform }} + build_args: ${{ inputs.build_args }} + + DOCKER_USERNAME: "${{ vars.DOCKER_USERNAME }}" + DOCKER_PASSWORD: "${{ secrets.DOCKER_PASSWORD }}" + MACOS_PASSWORD: "${{ secrets.MACOS_PASSWORD }}" + GOPROXY: "${{ vars.GOPROXY }}" + manifest: + needs: + - prepare + - deploy + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: ./.github/actions/manifest + with: + source_repository: ${{ inputs.repository }} + source_ref: ${{ inputs.ref }} + target_tag: ${{ needs.prepare.outputs.target_tag }} + target_repository: ethpandaops/rbuilder + platforms: ${{ needs.prepare.outputs.platforms }} + + DOCKER_USERNAME: "${{ vars.DOCKER_USERNAME }}" + DOCKER_PASSWORD: "${{ secrets.DOCKER_PASSWORD }}" + notify: + name: Discord Notification + runs-on: ubuntu-latest + needs: + - prepare + - deploy + - manifest + if: failure() + steps: + - name: Notify + uses: nobrayner/discord-webhook@v1 + with: + github-token: ${{ secrets.github_token }} + discord-webhook: ${{ secrets.DISCORD_WEBHOOK }} diff --git a/README.md b/README.md index f7dd131..fdf0d3c 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,7 @@ Run the *Build **tooling*** workflow; - [Build goomy-blob](https://github.com/ethpandaops/eth-client-docker-image-builder/actions/workflows/build-push-goomy-blob.yaml) [[source](https://github.com/ethpandaops/goomy-blob)] - [Build ethereum-genesis-generator](https://github.com/ethpandaops/eth-client-docker-image-builder/actions/workflows/build-push-genesis-generator.yml) [[source](https://github.com/ethpandaops/ethereum-genesis-generator)] - [Build mev-rs](https://github.com/ethpandaops/eth-client-docker-image-builder/actions/workflows/build-push-mev-rs.yml) [[source](https://github.com/ralexstokes/mev-rs)] +- [Build rbuilder](https://github.com/ethpandaops/eth-client-docker-image-builder/actions/workflows/build-push-rbuilder.yml) [[source](https://github.com/ethpandaops/rbuilder)] ## Adding a new image to build on schedule diff --git a/config.yaml b/config.yaml index 680552e..d22256e 100644 --- a/config.yaml +++ b/config.yaml @@ -622,3 +622,12 @@ target: tag: main-minimal repository: ethpandaops/mev-rs +############### +# rbuilder # +############### +- source: + repository: ethpandaops/rbuilder + ref: develop + target: + tag: develop + repository: ethpandaops/rbuilder \ No newline at end of file diff --git a/platforms.yaml b/platforms.yaml index 97b4ab0..1072bbd 100644 --- a/platforms.yaml +++ b/platforms.yaml @@ -73,5 +73,8 @@ grandine: - linux/amd64 - linux/arm64 mev-rs: + - linux/amd64 + - linux/arm64 +rbuilder: - linux/amd64 - linux/arm64 \ No newline at end of file