# Publishes the nightly Docker image. name: docker-nightly on: workflow_dispatch: schedule: - cron: "0 1 * * *" env: REPO_NAME: ${{ github.repository_owner }}/reth IMAGE_NAME: ${{ github.repository_owner }}/reth OP_IMAGE_NAME: ${{ github.repository_owner }}/op-reth CARGO_TERM_COLOR: always DOCKER_IMAGE_NAME: ghcr.io/${{ github.repository_owner }}/reth OP_DOCKER_IMAGE_NAME: ghcr.io/${{ github.repository_owner }}/op-reth DOCKER_USERNAME: ${{ github.actor }} jobs: build: name: build and push runs-on: ubuntu-24.04 permissions: packages: write contents: read strategy: fail-fast: false matrix: build: - name: 'Build and push the nightly reth image' command: 'make PROFILE=maxperf docker-build-push-nightly' - name: 'Build and push the nightly profiling reth image' command: 'make PROFILE=profiling docker-build-push-nightly-profiling' - name: 'Build and push the nightly op-reth image' command: 'make IMAGE_NAME=$OP_IMAGE_NAME DOCKER_IMAGE_NAME=$OP_DOCKER_IMAGE_NAME PROFILE=maxperf op-docker-build-push-nightly' - name: 'Build and push the nightly profiling op-reth image' command: 'make IMAGE_NAME=$OP_IMAGE_NAME DOCKER_IMAGE_NAME=$OP_DOCKER_IMAGE_NAME PROFILE=profiling op-docker-build-push-nightly-profiling' steps: - uses: actions/checkout@v6 - name: Remove bloatware uses: laverdet/remove-bloatware@v1.0.0 with: docker: true lang: rust - uses: rui314/setup-mold@v1 - uses: dtolnay/rust-toolchain@stable - uses: Swatinem/rust-cache@v2 with: cache-on-failure: true - name: Install cross main id: cross_main run: | cargo install cross --git https://github.com/cross-rs/cross - name: Log in to Docker run: | echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io --username ${DOCKER_USERNAME} --password-stdin - name: Set up Docker builder run: | docker run --privileged --rm tonistiigi/binfmt --install arm64,amd64 docker buildx create --use --name cross-builder - name: Build and push ${{ matrix.build.name }} run: ${{ matrix.build.command }}