From e962a5c6646271de165cbe9043515689cb8662d9 Mon Sep 17 00:00:00 2001 From: Tom Parker-Shemilt Date: Sat, 29 Oct 2022 20:26:20 +0100 Subject: [PATCH 1/7] Refactor out the common run-in-docker step --- .github/workflows/linux-builds-on-master.yaml | 22 +-------------- .github/workflows/linux-builds-on-pr.yaml | 22 +-------------- ci/run-in-docker.sh | 28 +++++++++++++++++++ 3 files changed, 30 insertions(+), 42 deletions(-) create mode 100755 ci/run-in-docker.sh diff --git a/.github/workflows/linux-builds-on-master.yaml b/.github/workflows/linux-builds-on-master.yaml index 40bcc9c12e..e6abc77cb6 100644 --- a/.github/workflows/linux-builds-on-master.yaml +++ b/.github/workflows/linux-builds-on-master.yaml @@ -101,27 +101,7 @@ jobs: docker build -t "$DOCKER" -f "ci/docker/${DOCKER}/Dockerfile" . fi - name: Run the build within the docker image - run: | - mkdir -p "${PWD}/target" - chown -R "$(id -u)":"$(id -g)" "${PWD}/target" - docker run \ - --entrypoint sh \ - --user "$(id -u)":"$(id -g)" \ - --volume "$(rustc --print sysroot)":/rustc-sysroot:ro \ - --volume "${PWD}":/checkout:ro \ - --volume "${PWD}"/target:/checkout/target \ - --workdir /checkout \ - --env TARGET="${TARGET}" \ - --env SKIP_TESTS="${SKIP_TESTS}" \ - --volume "${HOME}/.cargo:/cargo" \ - --env CARGO_HOME=/cargo \ - --env CARGO_TARGET_DIR=/checkout/target \ - --env LIBZ_SYS_STATIC=1 \ - --tty \ - --init \ - --rm \ - "${DOCKER}" \ - -c 'PATH="${PATH}":/rustc-sysroot/bin bash ci/run.bash' + run: ./ci/run-in-docker.sh $TARGET $SKIP_TESTS $DOCKER - name: Upload the built artifact uses: actions/upload-artifact@v2 with: diff --git a/.github/workflows/linux-builds-on-pr.yaml b/.github/workflows/linux-builds-on-pr.yaml index df70bfb5c4..fbddfb7eec 100644 --- a/.github/workflows/linux-builds-on-pr.yaml +++ b/.github/workflows/linux-builds-on-pr.yaml @@ -94,27 +94,7 @@ jobs: docker build -t "$DOCKER" -f "ci/docker/${DOCKER}/Dockerfile" . fi - name: Run the build within the docker image - run: | - mkdir -p "${PWD}/target" - chown -R "$(id -u)":"$(id -g)" "${PWD}/target" - docker run \ - --entrypoint sh \ - --user "$(id -u)":"$(id -g)" \ - --volume "$(rustc --print sysroot)":/rustc-sysroot:ro \ - --volume "${PWD}":/checkout:ro \ - --volume "${PWD}"/target:/checkout/target \ - --workdir /checkout \ - --env TARGET="${TARGET}" \ - --env SKIP_TESTS="${SKIP_TESTS}" \ - --volume "${HOME}/.cargo:/cargo" \ - --env CARGO_HOME=/cargo \ - --env CARGO_TARGET_DIR=/checkout/target \ - --env LIBZ_SYS_STATIC=1 \ - --tty \ - --init \ - --rm \ - "${DOCKER}" \ - -c 'PATH="${PATH}":/rustc-sysroot/bin bash ci/run.bash' + run: ./ci/run-in-docker.sh $TARGET $SKIP_TESTS $DOCKER - name: Upload the built artifact uses: actions/upload-artifact@v2 with: diff --git a/ci/run-in-docker.sh b/ci/run-in-docker.sh new file mode 100755 index 0000000000..590a3b01aa --- /dev/null +++ b/ci/run-in-docker.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +set -eux -o pipefail + +TARGET=$1 +SKIP_TESTS=$2 +DOCKER=$3 + +mkdir -p "${PWD}/target" +chown -R "$(id -u)":"$(id -g)" "${PWD}/target" +docker run \ + --entrypoint sh \ + --user "$(id -u)":"$(id -g)" \ + --volume "$(rustc --print sysroot)":/rustc-sysroot:ro \ + --volume "${PWD}":/checkout:ro \ + --volume "${PWD}"/target:/checkout/target \ + --workdir /checkout \ + --env TARGET="${TARGET}" \ + --env SKIP_TESTS="${SKIP_TESTS}" \ + --volume "${HOME}/.cargo:/cargo" \ + --env CARGO_HOME=/cargo \ + --env CARGO_TARGET_DIR=/checkout/target \ + --env LIBZ_SYS_STATIC=1 \ + --tty \ + --init \ + --rm \ + "${DOCKER}" \ + -c 'PATH="${PATH}":/rustc-sysroot/bin bash ci/run.bash' \ No newline at end of file From b28cb86c82d810f5d37901052c9d4b5dcf4fd2a1 Mon Sep 17 00:00:00 2001 From: Tom Parker-Shemilt Date: Sat, 29 Oct 2022 20:55:06 +0100 Subject: [PATCH 2/7] Fix compiler names --- ci/docker/android/Dockerfile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/ci/docker/android/Dockerfile b/ci/docker/android/Dockerfile index 29d0abc7da..8593877107 100644 --- a/ci/docker/android/Dockerfile +++ b/ci/docker/android/Dockerfile @@ -3,16 +3,16 @@ FROM rust-android ENV PATH=$PATH:/android/ndk/arm-21/bin:/android/ndk/arm64-21/bin:/android/ndk/x86-21/bin:/android/ndk/x86_64-21/bin \ CC_arm_linux_androideabi=arm-linux-androideabi-clang \ CC_armv7_linux_androideabi=arm-linux-androideabi-clang \ - CC_aarch64_linux_android=aarch64-linux-android-clang \ - CC_i686_linux_android=i686-linux-android-clang \ - CC_x86_64_linux_android=x86_64-linux-android-clang \ + CC_aarch64_linux_android=aarch64-linux-android21-clang \ + CC_i686_linux_android=i686-linux-android21-clang \ + CC_x86_64_linux_android=x86_64-linux-android21-clang \ CXX_arm_linux_androideabi=arm-linux-androideabi-clang++ \ CXX_armv7_linux_androideabi=arm-linux-androideabi-clang++ \ - CXX_aarch64_linux_android=aarch64-linux-android-clang++ \ - CXX_i686_linux_android=i686-linux-android-clang++ \ - CXX_x86_64_linux_android=x86_64-linux-android-clang++ \ + CXX_aarch64_linux_android=aarch64-linux-android21-clang++ \ + CXX_i686_linux_android=i686-linux-android21-clang++ \ + CXX_x86_64_linux_android=x86_64-linux-android21-clang++ \ CARGO_TARGET_ARM_LINUX_ANDROIDEABI_LINKER=arm-linux-androideabi-clang \ CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER=arm-linux-androideabi-clang \ - CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER=aarch64-linux-android-clang \ - CARGO_TARGET_I686_LINUX_ANDROID_LINKER=i686-linux-android-clang \ + CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER=aarch64-linux-android21-clang \ + CARGO_TARGET_I686_LINUX_ANDROID_LINKER=i686-linux-android21-clang \ CARGO_TARGET_X86_64_LINUX_ANDROID_LINKER=x86_64-linux-android-clang From 4472eee7b65fd2e85367c1d195f60dcb35559886 Mon Sep 17 00:00:00 2001 From: Tom Parker-Shemilt Date: Sat, 29 Oct 2022 20:55:30 +0100 Subject: [PATCH 3/7] Quote DOCKER in build invoke --- .github/workflows/linux-builds-on-pr.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/linux-builds-on-pr.yaml b/.github/workflows/linux-builds-on-pr.yaml index fbddfb7eec..cfe6f9f9ec 100644 --- a/.github/workflows/linux-builds-on-pr.yaml +++ b/.github/workflows/linux-builds-on-pr.yaml @@ -94,7 +94,7 @@ jobs: docker build -t "$DOCKER" -f "ci/docker/${DOCKER}/Dockerfile" . fi - name: Run the build within the docker image - run: ./ci/run-in-docker.sh $TARGET $SKIP_TESTS $DOCKER + run: ./ci/run-in-docker.sh $TARGET $SKIP_TESTS "$DOCKER" - name: Upload the built artifact uses: actions/upload-artifact@v2 with: From 3ca2e4b13118badcfab1c38821acad5f49857407 Mon Sep 17 00:00:00 2001 From: Tom Parker-Shemilt Date: Sat, 29 Oct 2022 21:00:37 +0100 Subject: [PATCH 4/7] Fix Dockerfile path --- ci/docker/android/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/docker/android/Dockerfile b/ci/docker/android/Dockerfile index 8593877107..2f238c7038 100644 --- a/ci/docker/android/Dockerfile +++ b/ci/docker/android/Dockerfile @@ -1,6 +1,6 @@ FROM rust-android -ENV PATH=$PATH:/android/ndk/arm-21/bin:/android/ndk/arm64-21/bin:/android/ndk/x86-21/bin:/android/ndk/x86_64-21/bin \ +ENV PATH=$PATH:/android/ndk/toolchains/llvm/prebuilt/linux-x86_64/bin \ CC_arm_linux_androideabi=arm-linux-androideabi-clang \ CC_armv7_linux_androideabi=arm-linux-androideabi-clang \ CC_aarch64_linux_android=aarch64-linux-android21-clang \ From 5bde089219f279e6e4f579c6b98f63bfb7564470 Mon Sep 17 00:00:00 2001 From: Tom Parker-Shemilt Date: Sat, 29 Oct 2022 21:01:12 +0100 Subject: [PATCH 5/7] SKIP_TESTS can be empty --- .github/workflows/linux-builds-on-pr.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/linux-builds-on-pr.yaml b/.github/workflows/linux-builds-on-pr.yaml index cfe6f9f9ec..52ad3cf4f7 100644 --- a/.github/workflows/linux-builds-on-pr.yaml +++ b/.github/workflows/linux-builds-on-pr.yaml @@ -94,7 +94,7 @@ jobs: docker build -t "$DOCKER" -f "ci/docker/${DOCKER}/Dockerfile" . fi - name: Run the build within the docker image - run: ./ci/run-in-docker.sh $TARGET $SKIP_TESTS "$DOCKER" + run: ./ci/run-in-docker.sh $TARGET "${SKIP_TESTS}" $DOCKER - name: Upload the built artifact uses: actions/upload-artifact@v2 with: From 7cb92d01f7b56fe4ed3cc8fa8f9e4f5c22949263 Mon Sep 17 00:00:00 2001 From: Tom Parker-Shemilt Date: Sat, 29 Oct 2022 22:30:10 +0100 Subject: [PATCH 6/7] FIx ar path --- ci/docker/android/Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ci/docker/android/Dockerfile b/ci/docker/android/Dockerfile index 2f238c7038..326142fd98 100644 --- a/ci/docker/android/Dockerfile +++ b/ci/docker/android/Dockerfile @@ -1,9 +1,11 @@ FROM rust-android +# See https://github.com/rust-lang/cc-rs#external-configuration-via-environment-variables ENV PATH=$PATH:/android/ndk/toolchains/llvm/prebuilt/linux-x86_64/bin \ CC_arm_linux_androideabi=arm-linux-androideabi-clang \ CC_armv7_linux_androideabi=arm-linux-androideabi-clang \ CC_aarch64_linux_android=aarch64-linux-android21-clang \ + AR_aarch64_linux_android=llvm-ar \ CC_i686_linux_android=i686-linux-android21-clang \ CC_x86_64_linux_android=x86_64-linux-android21-clang \ CXX_arm_linux_androideabi=arm-linux-androideabi-clang++ \ From bca694ee64beeb9176c399273c3ba35097016c80 Mon Sep 17 00:00:00 2001 From: Tom Parker-Shemilt Date: Thu, 15 Dec 2022 23:36:42 +0000 Subject: [PATCH 7/7] Fix NDK paths --- ci/docker/android/Dockerfile | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/ci/docker/android/Dockerfile b/ci/docker/android/Dockerfile index 326142fd98..0f663f22a2 100644 --- a/ci/docker/android/Dockerfile +++ b/ci/docker/android/Dockerfile @@ -1,20 +1,20 @@ FROM rust-android # See https://github.com/rust-lang/cc-rs#external-configuration-via-environment-variables -ENV PATH=$PATH:/android/ndk/toolchains/llvm/prebuilt/linux-x86_64/bin \ +ENV PATH=$PATH:/android/ndk/arm64-21/bin:/android/ndk/x86_64-21/bin:/android/ndk/x86-21/bin \ CC_arm_linux_androideabi=arm-linux-androideabi-clang \ CC_armv7_linux_androideabi=arm-linux-androideabi-clang \ - CC_aarch64_linux_android=aarch64-linux-android21-clang \ + CC_aarch64_linux_android=aarch64-linux-android-clang \ AR_aarch64_linux_android=llvm-ar \ - CC_i686_linux_android=i686-linux-android21-clang \ - CC_x86_64_linux_android=x86_64-linux-android21-clang \ + CC_i686_linux_android=i686-linux-android-clang \ + CC_x86_64_linux_android=x86_64-linux-android-clang \ CXX_arm_linux_androideabi=arm-linux-androideabi-clang++ \ CXX_armv7_linux_androideabi=arm-linux-androideabi-clang++ \ - CXX_aarch64_linux_android=aarch64-linux-android21-clang++ \ - CXX_i686_linux_android=i686-linux-android21-clang++ \ - CXX_x86_64_linux_android=x86_64-linux-android21-clang++ \ + CXX_aarch64_linux_android=aarch64-linux-android-clang++ \ + CXX_i686_linux_android=i686-linux-android-clang++ \ + CXX_x86_64_linux_android=x86_64-linux-android-clang++ \ CARGO_TARGET_ARM_LINUX_ANDROIDEABI_LINKER=arm-linux-androideabi-clang \ CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER=arm-linux-androideabi-clang \ - CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER=aarch64-linux-android21-clang \ - CARGO_TARGET_I686_LINUX_ANDROID_LINKER=i686-linux-android21-clang \ + CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER=aarch64-linux-android-clang \ + CARGO_TARGET_I686_LINUX_ANDROID_LINKER=i686-linux-android-clang \ CARGO_TARGET_X86_64_LINUX_ANDROID_LINKER=x86_64-linux-android-clang