avoid pushing hashes #178
Workflow file for this run
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
| # Publishes the Docker image. | |
| name: docker | |
| on: | |
| workflow_dispatch: {} | |
| push: | |
| branches: | |
| - main | |
| tags: | |
| - v* | |
| pull_request: | |
| types: [opened, synchronize, reopened] | |
| env: | |
| REPO_NAME: ${{ github.repository_owner }}/ev-reth | |
| IMAGE_NAME: ${{ github.repository_owner }}/ev-reth | |
| CARGO_TERM_COLOR: always | |
| DOCKER_IMAGE_NAME: ghcr.io/${{ github.repository_owner }}/ev-reth | |
| DOCKER_USERNAME: ${{ github.actor }} | |
| jobs: | |
| build: | |
| name: build and push | |
| runs-on: ubuntu-24.04 | |
| permissions: | |
| packages: write | |
| contents: read | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Install build dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y \ | |
| build-essential \ | |
| pkg-config \ | |
| libssl-dev \ | |
| libclang-dev \ | |
| clang \ | |
| llvm-dev \ | |
| gcc-multilib \ | |
| g++-multilib | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| cache-on-failure: true | |
| - uses: taiki-e/install-action@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: Set Docker tag | |
| id: set-tag | |
| run: | | |
| if [ "${{ github.event_name }}" == "pull_request" ]; then | |
| echo "DOCKER_TAG=pr-${{ github.event.pull_request.number }}" >> $GITHUB_OUTPUT | |
| elif [[ "${{ github.ref }}" == refs/tags/* ]]; then | |
| echo "DOCKER_TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT | |
| else | |
| echo "DOCKER_TAG=latest" >> $GITHUB_OUTPUT | |
| fi | |
| - name: Build and push image | |
| run: | | |
| export LIBCLANG_PATH=/usr/lib/llvm-18/lib | |
| export BINDGEN_EXTRA_CLANG_ARGS="-I/usr/include" | |
| export CC_x86_64_unknown_linux_gnu=x86_64-linux-gnu-gcc | |
| export CXX_x86_64_unknown_linux_gnu=x86_64-linux-gnu-g++ | |
| export AR_x86_64_unknown_linux_gnu=x86_64-linux-gnu-ar | |
| export CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc | |
| export CXX_aarch64_unknown_linux_gnu=aarch64-linux-gnu-g++ | |
| export AR_aarch64_unknown_linux_gnu=aarch64-linux-gnu-ar | |
| export PKG_CONFIG_ALLOW_CROSS=1 | |
| export DOCKER_TAG=${{ steps.set-tag.outputs.DOCKER_TAG }} | |
| make docker-build-push |