diff --git a/.github/workflows/release-docker-image.yml b/.github/workflows/release-docker-image.yml index 54e4cb465a3..425b8a5f449 100644 --- a/.github/workflows/release-docker-image.yml +++ b/.github/workflows/release-docker-image.yml @@ -33,13 +33,13 @@ jobs: build-image: name: Build ${{ matrix.platform }} image runs-on: ${{ matrix.runner }} - timeout-minutes: 25 + timeout-minutes: 180 strategy: matrix: include: - - runner: ["self-hosted", "linux", "x64", "ubuntu-platform"] + - runner: ubuntu-24.04 platform: linux/amd64 - - runner: ["self-hosted", "linux", "arm64", "ubuntu-platform"] + - runner: ubuntu-24.04 platform: linux/arm64 steps: - name: Check out repo @@ -54,6 +54,10 @@ jobs: aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} aws-region: ${{ secrets.AWS_REGION }} + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + if: ${{ matrix.platform == 'linux/arm64' }} + - name: Build and push by digest uses: ./.github/actions/docker id: docker_build @@ -134,6 +138,7 @@ jobs: with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Create manifest list and push working-directory: ${{ env.DIGEST_DIR_PATH }} run: | diff --git a/Dockerfile b/Dockerfile index cdd72119184..b10664e8cc9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -318,10 +318,7 @@ COPY --parents \ packages/check-features \ /platform/ -RUN if [[ "${CARGO_BUILD_PROFILE}" == "release" ]] ; then \ - export RELEASE="--release" ; \ - fi && \ - source $HOME/.cargo/env && \ +RUN source $HOME/.cargo/env && \ source /root/env && \ cargo chef prepare $RELEASE --recipe-path recipe.json @@ -335,7 +332,7 @@ SHELL ["/bin/bash", "-o", "pipefail","-e", "-x", "-c"] WORKDIR /platform -COPY --from=build-planner /platform/recipe.json /platform/.cargo /platform/ +COPY --from=build-planner --parents /platform/recipe.json /platform/.cargo / # Build dependencies - this is the caching Docker layer! RUN --mount=type=cache,sharing=shared,id=cargo_registry_index,target=${CARGO_HOME}/registry/index \