diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 39b04034540a3..ab1b787c8d03a 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -29,10 +29,10 @@ jobs: - uses: Swatinem/rust-cache@v2 with: cache-on-failure: true - - name: Install cross - id: cross_main + - name: Install gcc aarch64 + id: aarch_64_setup run: | - cargo install cross --git https://github.com/cross-rs/cross --rev baf457e + sudo apt update && sudo apt install -y gcc-aarch64-linux-gnu # Login against a Docker registry except on PR # https://github.com/docker/login-action - name: Login into registry ${{ env.REGISTRY }} diff --git a/Makefile b/Makefile index 2f6ae865fd097..5127d9551c392 100644 --- a/Makefile +++ b/Makefile @@ -46,13 +46,16 @@ build-%: .PHONY: docker-build-push docker-build-push: docker-build-prepare ## Build and push a cross-arch Docker image tagged with DOCKER_IMAGE_NAME. - FEATURES="jemalloc aws-kms gcp-kms cli asm-keccak js-tracer" $(MAKE) build-x86_64-unknown-linux-gnu + # Build x86_64-unknown-linux-gnu. + cargo build --target x86_64-unknown-linux-gnu --features "jemalloc aws-kms gcp-kms cli asm-keccak js-tracer" --profile "$(PROFILE)" mkdir -p $(BIN_DIR)/amd64 for bin in anvil cast chisel forge; do \ cp $(CARGO_TARGET_DIR)/x86_64-unknown-linux-gnu/$(PROFILE)/$$bin $(BIN_DIR)/amd64/; \ done - FEATURES="aws-kms gcp-kms cli asm-keccak js-tracer" $(MAKE) build-aarch64-unknown-linux-gnu + # Build aarch64-unknown-linux-gnu. + rustup target add aarch64-unknown-linux-gnu + RUSTFLAGS="-C linker=aarch64-linux-gnu-gcc" cargo build --target aarch64-unknown-linux-gnu --features "aws-kms gcp-kms cli asm-keccak js-tracer" --profile "$(PROFILE)" mkdir -p $(BIN_DIR)/arm64 for bin in anvil cast chisel forge; do \ cp $(CARGO_TARGET_DIR)/aarch64-unknown-linux-gnu/$(PROFILE)/$$bin $(BIN_DIR)/arm64/; \ @@ -61,7 +64,7 @@ docker-build-push: docker-build-prepare ## Build and push a cross-arch Docker im docker buildx build --file ./Dockerfile.cross . \ --platform linux/amd64,linux/arm64 \ $(foreach tag,$(shell echo $(DOCKER_IMAGE_NAME) | tr ',' ' '),--tag $(tag)) \ - --provenance=false \ + --provenance=true \ --push .PHONY: docker-build-prepare