diff options
author | Andrew Gallant <jamslam@gmail.com> | 2019-04-25 10:49:59 -0400 |
---|---|---|
committer | Andrew Gallant <jamslam@gmail.com> | 2019-04-25 11:12:14 -0400 |
commit | 5ce2d7351dba9c113318f4e43c041be7c25eaee4 (patch) | |
tree | 4b519245d76ade4ed9c2b1e8c1be7d10623f6b94 /ci | |
parent | 9dcfd9a205914af1398d0c655956b2045f51b125 (diff) |
ci: use cross for musl x86_64 builds
This is necessary because jemalloc + musl + Ubuntu 16.04 is apparently
broken.
Moreover, jemalloc doesn't support i686, so we accept the performance
regression there.
See also: https://github.com/gnzlbg/jemallocator/issues/124
Diffstat (limited to 'ci')
-rwxr-xr-x | ci/before_deploy.sh | 5 | ||||
-rwxr-xr-x | ci/script.sh | 8 | ||||
-rw-r--r-- | ci/utils.sh | 23 |
3 files changed, 31 insertions, 5 deletions
diff --git a/ci/before_deploy.sh b/ci/before_deploy.sh index d352a88b..561cbb51 100755 --- a/ci/before_deploy.sh +++ b/ci/before_deploy.sh @@ -8,12 +8,13 @@ set -ex # Generate artifacts for release mk_artifacts() { + CARGO="$(builder)" if is_arm; then - cargo build --target "$TARGET" --release + "$CARGO" build --target "$TARGET" --release else # Technically, MUSL builds will force PCRE2 to get statically compiled, # but we also want PCRE2 statically build for macOS binaries. - PCRE2_SYS_STATIC=1 cargo build --target "$TARGET" --release --features 'pcre2' + PCRE2_SYS_STATIC=1 "$CARGO" build --target "$TARGET" --release --features 'pcre2' fi } diff --git a/ci/script.sh b/ci/script.sh index d1799e29..80bfabfc 100755 --- a/ci/script.sh +++ b/ci/script.sh @@ -7,11 +7,13 @@ set -ex . "$(dirname $0)/utils.sh" main() { + CARGO="$(builder)" + # Test a normal debug build. if is_arm; then - cargo build --target "$TARGET" --verbose + "$CARGO" build --target "$TARGET" --verbose else - cargo build --target "$TARGET" --verbose --all --features 'pcre2' + "$CARGO" build --target "$TARGET" --verbose --all --features 'pcre2' fi # Show the output of the most recent build.rs stderr. @@ -44,7 +46,7 @@ main() { "$(dirname "${0}")/test_complete.sh" # Run tests for ripgrep and all sub-crates. - cargo test --target "$TARGET" --verbose --all --features 'pcre2' + "$CARGO" test --target "$TARGET" --verbose --all --features 'pcre2' } main diff --git a/ci/utils.sh b/ci/utils.sh index 1cf2b6dc..f3dc96d2 100644 --- a/ci/utils.sh +++ b/ci/utils.sh @@ -55,6 +55,13 @@ gcc_prefix() { esac } +is_musl() { + case "$TARGET" in + *-musl) return 0 ;; + *) return 1 ;; + esac +} + is_x86() { case "$(architecture)" in amd64|i386) return 0 ;; @@ -62,6 +69,13 @@ is_x86() { esac } +is_x86_64() { + case "$(architecture)" in + amd64) return 0 ;; + *) return 1 ;; + esac +} + is_arm() { case "$(architecture)" in armhf) return 0 ;; @@ -82,3 +96,12 @@ is_osx() { *) return 1 ;; esac } + +builder() { + if is_musl && is_x86_64; then + cargo install cross + echo "cross" + else + echo "cargo" + fi +} |