361 Commits

Author SHA1 Message Date
Brian Smith
e03cb68e53 CI/CD: Always use LLVM 12. 2021-04-29 16:37:41 -07:00
Brian Smith
4f30438640 CI/CD: Fix error handling in mk/clippy.sh.
`cargo clippy` failed with an error but this didn't cause mk/cargo.sh
to fail because it didn't contain `set -e`. Thus the `clippy` job has
been passing when it shouldn't.

Add the "bash strict mode" to the script.

I verified the other shell scripts use the "bash strict mode" already.
2021-04-29 16:07:38 -07:00
Brian Smith
508f5a3293 CI/CD: Use a GitHub-hosted copy of nasm instead of downloading it from nasm.us.
Downloading from nasm.us frequently fails. Avoid depending on it.

Change the expected location of nasm in build.rs.
2021-04-29 15:10:32 -07:00
Brian Smith
d62da4ecbe Move disabling of clippy lints to mk/clippy.sh. 2021-04-20 13:31:22 -07:00
Brian Smith
0141c08d96 CI/CD: Suppress new clippy lints. 2021-04-20 13:31:06 -07:00
Brian Smith
05f0c91db5 CI: Increase wasm-bindgen-test timeout to 60s.
See if this prevents some of the wasm32 failures.
2021-02-26 16:27:01 -08:00
Brian Smith
0a40cd431b CI: Use Android "cmdline-tools" instead of SDK tools.
https://github.com/actions/virtual-environments/issues/2252 is the best
description of the difference I have found.

Also stop using `sudo`; maybe this was a holdover from Travis CI days?
2021-02-26 13:22:54 -08:00
Brian Smith
019a8747dd CI/CD: Use the same version of wasm-bindgen-cli as wasm-bindgen. 2020-11-30 17:40:12 -08:00
Brian Smith
ad612543ad CI/CD: Don't use self-contained linking during code coverage.
Work around a bug in the Rust toolchain.
2020-11-30 02:29:54 -08:00
Brian Smith
e775fedb53 CI/CD: Use self-contained linking for all -musl targets. 2020-11-30 02:29:54 -08:00
Brian Smith
c4c6899cc5 CI/CD: Use LLVM-11 for code coverage. 2020-11-30 00:26:42 -08:00
Brian Smith
15c823a571 Build: Replace use of Yasm with use of Nasm for Windows assembly.
Match BoringSSL. According to the Chromium discussion about nasm, it
is also substantially faster.
2020-11-25 16:32:53 -08:00
Brian Smith
08c5854363 CI/CD: Separate coverage reports per test executable. 2020-11-25 16:29:43 -08:00
Brian Smith
af08a2fff9 CI/CD: Add aarch64-unknown-linux-gnu test code coverage.
aarch64-unknown-linux-musl doesn't have profiler_builtins enabled so
use aarch64-unknown-linux-gnu instead.

Work around an issue where the "%m" feature of the LLVM source-based code
coverage doesn't work within QEMU.
2020-11-25 16:29:43 -08:00
Brian Smith
6314cc7fff CI/CD: Gather code coverage.
Gather code review data to help guide the code review process. This is currently limited
to i686 and x86_64 Linux because these are the targets I could get working. More
investigation is needed to figure out how to collect coverage data for ARM targets.
2020-11-25 16:29:43 -08:00
Linus Unnebäck
db664fad58 CI/CD: Use qemu_* variables consistently in mk/cargo.sh. 2020-11-24 14:55:06 -08:00
Brian Smith
7bac725679 Allow cross-compiling to *-linux-musl (except x86_64) w/o a sysroot.
Avoid requiring a sysroot for *-linux-musl targets when using Clang.

Add one AAarch64 and one 32-bit ARM MUSL target to GitHub Actions.

Use Rust 1.48's `-Clink-self-contained=yes` in CI for musl targets.

Support the non-default variants of the *-musl targets.
2020-11-24 09:22:50 -08:00
Brian Smith
0b3cf2df06 CI/CD: When using Clang for non-Android targets, always use Clang 10.
It seems that on GitHub Actions Clang 6.0 is the default.
2020-11-23 23:05:51 -08:00
Brian Smith
09b6052a1c CI/CD: Don't put Android's tools in $PATH for non-Android targets.
Android has its own `clang`, `llvm-ar`, etc., and if they are in `$PATH` then
they might accidentally get used when it isn't intended for them to be used.

As part of this, reduce the environment variables that are set to (almost) only
the ones needed for the given target. An exception is wasm32-unknown-unknown,
which has its variables set even regardless of whether "wasm32_c" is used.
2020-11-23 23:05:51 -08:00
Brian Smith
ab27f3fe1c CI/CD: use the correct ar for each target. 2020-11-23 19:42:06 -08:00
Brian Smith
617cb54caa CI/CD: Fix typo in i686-unknown-linux-musl linker setting.
The linker wasn't getting overridden but things still worked because the system
linker works fine in this case.
2020-11-23 19:42:06 -08:00
Brian Smith
9ddb7667b3 CI/CD: Group entries in mk/cargo.sh correctly.
The blank lines were not in the right place to group the related
variables sensibly. Fix that.
2020-11-23 19:42:06 -08:00
Brian Smith
d12e36fec5 Move wasm32-unknown-unknown support to cargo.sh.
Make it easier to build and test the wasm32-unknown-unknown target locally.
2020-11-17 08:17:16 -08:00
Brian Smith
fb00ee314e Build: Remove leftover Travis CI scripts. 2020-11-13 12:46:38 -08:00
Brian Smith
fbe6562c22 Build: Make it easier to run the same configuration locally that is used in CI. 2020-11-13 12:46:38 -08:00
Brian Smith
5f3eaff3c5 CI/CD: Move Windows testing to GitHub Actions. 2020-11-10 18:41:39 -08:00
Brian Smith
3ac3e8b020 CI/CD: Test wasm32-unknown-unknown in GitHub Actions.
Bump the wasm-bindgen-test dependency version to be compatible with
the latest wasm-bindgen-cli version.
2020-11-10 17:12:46 -08:00
Brian Smith
9e0df33dea CI/CD: Restore mk/install-build-tools.sh. 2020-11-10 11:58:01 -08:00
Brian Smith
9ab293a61c CI/CD: Move arm-unknown-linux-gnueabihf to GitHub actions. 2020-11-10 11:58:01 -08:00
Brian Smith
09488e45c6 CI/CD: Move aarch64-unknown-linux-gnu to GitHub Actions. 2020-11-10 11:58:01 -08:00
Brian Smith
68db0d317d CI/CD: Move remaining {i686,x86_64}-unknown-linux-{gnu,musl} targets to GitHub Actions. 2020-11-10 11:58:01 -08:00
Brian Smith
fe4aeee8ba CI/CD: Move Android target build to GitHub Actions. 2020-11-10 11:58:01 -08:00
Brian Smith
95307afefa CI/CD: Move building of aarch64-apple-ios to GitHub Actions. 2020-11-10 11:58:01 -08:00
Brian Smith
18ced9d490 CI/CD: Move some jobs from Travis CI to Github Actions. 2020-11-10 11:58:01 -08:00
Brian Smith
a1837f8419 CI/CD: Use Cargo's "runner" feature for kcov. 2020-11-06 09:08:51 -08:00
Brian Smith
ecba7405bc CI/CD: Use $CC_<target> and $CARGO_TARGET_<target>_LINKER.
Currently a .cargo/config file is written during the build when the linker
needs to be overridden. Instead, override the linker using the relatively
new environment variable. For symmetry, replace the use of `$TARGET_CC`
with `$CC_<target>` to demonstrate an easier-to-maintain way of setting
the compiler.
2020-11-06 09:08:51 -08:00
Brian Smith
e37b37519d CI/CD: Don't print out tool versions in mk/travis.sh.
The build system is moving to a point where we know exactly what versions
of each thing are installed already, so they don't need to be logged in
travis.sh. Further, the logging would make future refactorings difficult.
2020-11-06 09:08:51 -08:00
Brian Smith
279fb7ce12 CI/CD: Fix typo in comment in mk/update-travis-yml.py. 2020-11-06 09:08:51 -08:00
Brian Smith
2bf38f36e0 CI/CD: Only set $FEATURES_X when it isn't empty (currently never). 2020-11-06 09:08:51 -08:00
Brian Smith
ca41dae591 CI/CD: Only set KCOV for KCOV builds. 2020-11-06 09:08:51 -08:00
Brian Smith
084f257fe8 CI/CD: Prepare for making Travis CI environment variable setting more flexibile.
The use of string interopolation makes it difficult to support optional environment variables.
Use a more flexible approach to make future changes easier.
2020-11-06 09:08:51 -08:00
Brian Smith
a5dab4a970 CI/CD: Reorder environment variables in .travis.yml.
Reorder the environment variables in .travis.yml in preparation for refactoring how they are
produced.
2020-11-06 09:08:51 -08:00
Brian Smith
67a1c39c9d CI/CD: Automate the production of special-case build configurations too. 2020-11-06 09:08:51 -08:00
Brian Smith
81ea97743c CI/CD: Split code coverage measurement into separate jobs. 2020-11-06 09:08:51 -08:00
Brian Smith
781f2f34ca CI/CD: Avoid duplicating the OS and compiler lists.
`oss` is equivalent to `target.keys()` so eliminate `oss` in favor
of using `target.keys()`.

Similarly, `compilers` duplicates the list of targets. Fold it into
`targets` to eliminate the duplication.

This is a no-op change; `python mk/update-travis-yml.py` generates
the same `.travis.yml` as it did before.
2020-10-29 23:25:31 -07:00
Brian Smith
1352951ba4 CI/CD: Further reduce number of GCC-based configurations.
Travis CI is taking too long so we need to cut more.
2020-10-29 23:22:32 -07:00
Brian Smith
60ab8df4b6 CI/CD: Change how GCC compatibility is tested.
Speed up the build by having fewer GCC-based configurations.

By default, test with GCC 9 (the default in Ubuntu Focal) when
configured to use GCC. This improves our coverage of GCC by
testing a newer version of GCC than we were ever testing before.

Add a couple of configurations for minimal GCC 4.8 compatibility
testing. This restores GCC 4.8 compatibility testing we had lost
earlier.
2020-10-29 23:22:32 -07:00
Brian Smith
8677f26f14 CI/CD: Upgrade Clang to Clang 9. 2020-10-29 12:05:42 -07:00
Brian Smith
b04c610f9e Fix aarch64-apple-ios build; add build-only/no-test jobs to CI/CD. 2020-10-29 09:50:57 -07:00
Brian Smith
91bc27386b Use Xcode 12 in Travis CI. 2020-10-29 09:50:57 -07:00