115 Commits

Author SHA1 Message Date
Brian Smith
ea4ac0bee8 Use Codecov action V3. 2022-10-19 23:49:17 -07:00
Brian Smith
6204702d0d Raise MSRV to 1.56.1.
once_cell, at least, requires 1.56 for Edition 2021.
2022-10-19 23:49:17 -07:00
Brian Smith
8820c150ea Use LLVM 14 in CI/CD for coverage. 2022-02-20 17:51:04 -08:00
Brian Smith
8d78cb2c01 wasm32: Add a wasm32_unknown_unknown_js feature to control use of web APIs.
Planning ahead for when WASI is to be supported, require the user to opt into
using web APIs for thw wasm32-unknown-unknown target with a new feature, since
wasm32-unknown-unknown could be used for either web or non-web environments.

Don't bother updating the tests to use this new flag, since the tests aren't
part of the "public API" of *ring*. When we add support for other WebAssembly
environments (e.g. WASI) we'll update the tests then.
2021-10-06 15:53:02 -07:00
Brian Smith
d97ae1fd08 wasm32: Make wasm32_c the default and only mode; remove the "wasm32_c" feature.
Always require a C compilare for wasm32, instead of trying to provide a subset
of the functionality.
2021-10-06 15:53:02 -07:00
Brian Smith
245a76a7b3 CI: Add various feature combinations to the test matrix. 2021-10-06 08:44:03 -07:00
Brian Smith
6510527bff signature: Fix doc test when --feature=std is used. 2021-10-04 15:05:58 -07:00
Brian Smith
3b8ae3ab12 CI: Stop excluding Rust 1.47.0 builds since they are never attempted.
This logic is a holdover from when Rust 1.47.0 was the MSRV.
2021-08-23 16:48:03 -07:00
Brian Smith
83c204342e CI: Use a slightly older Nightly Rust for coverage measurement. 2021-08-23 14:38:38 -07:00
Brian Smith
8e2b42d470 Revert "CI: Use nightly-2021-08-13 to work around regression in latest Rust nightly."
This reverts commit c8ca693ff7e6c619e1f2dd8ea915c335836af3a8 so we'll use the latest
nightly in CI. The rustc bug was fixed.
2021-08-17 15:27:11 -07:00
Alexander Ovchinnikov
ceb5b90f6e Enable building and running on Windows ARM64
I agree to license my contributions to each file under the terms given at the top of each file I changed.

Co-authored-by: Marc-André Moreau <marcandre.moreau@gmail.com>
2021-08-16 12:28:42 -07:00
Brian Smith
c8ca693ff7 CI: Use nightly-2021-08-13 to work around regression in latest Rust nightly. 2021-08-15 14:34:56 -07:00
Brian Smith
fe67830da1 Use cargo-audit 0.15.0.
Fix the build failure.
2021-08-02 21:55:40 -07:00
Brian Smith
1bf024dacf Run doctests in CI/CD. 2021-07-20 14:14:56 -07:00
Brian Smith
a7e73c3558 Test benchmarks in CI/CD. 2021-07-06 17:27:36 -07:00
Brian Smith
ec0d08d0ce Increase Codecov patch coverage threshhold to reduce false positive failures. 2021-06-26 15:29:31 -07:00
Brian Smith
8f759ab135 Update cargo audit to 0.14.1. 2021-05-12 18:16:48 -07:00
Brian Smith
50bdf32ba2 Update cargo deny to 0.9.1. 2021-05-12 18:16:48 -07:00
Brian Smith
e8edff5811 Remove polyfill::slice::fill; require Rust 1.52.1+. 2021-05-11 17:30:50 -07:00
Brian Smith
fed04d72db CI/CD: Add a check that verifies symbol renaming was done well enough. 2021-05-02 22:09:07 -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
0c69150e35 CI/CD: Use my own fork of (third-party) GitHub Actions.
This is a step towards implementing the GitHub security hardening advice.

```
$ sed -ri 's|(uses: +)([^/]+)/([^@])|\1briansmith/\2-\3|g' .github/workflows/ci.yml
$ grep "uses:" .github/workflows/ci.yml | sort | uniq
      - uses: briansmith/actions-cache@v2
      - uses: briansmith/actions-checkout@v2
      - uses: briansmith/actions-rs-toolchain@v1
      - uses: briansmith/codecov-codecov-action@v1
```
2021-04-26 17:52:53 -07:00
Brian Smith
f3d8b52f53 Minimize GITHUB_TOKEN permissions and avoid persisting it.
Follow the advice near the end of
https://github.blog/changelog/2021-04-20-github-actions-control-permissions-for-github_token/
2021-04-22 16:16:57 -07:00
Brian Smith
0141c08d96 CI/CD: Suppress new clippy lints. 2021-04-20 13:31:06 -07:00
Brian Smith
521081fd31 CI: Don't enable unuseful features during coverage measurement. 2021-03-22 23:45:44 -07:00
Brian Smith
209b866c75 CI: Always use macos-latest and Xcode 12.4.
macos-11.0 is pre-production. Use macos-latest instead, to (I hope)
make macOS jobs more likely to succeed. (Presently, they frequently
fail with no logs.)

Upgrade to Xcode 12.4 in hopes that this will make things work.
2021-02-26 11:25:50 -08:00
Brian Smith
bb6d3260ff Bump MSRV to 1.47.0.
This allows us to use more `const fn` goodness and no more
`array::LengthAtMost32` limitations.
2021-02-10 08:35:20 -08:00
Brian Smith
20c9479474 CI/CD: Run release-mode tests using MSRV.
Also reorder the channels according in some priority order.
2020-12-07 21:33:27 -08:00
Brian Smith
45a43db987 CI/CD: Only use the latest stable version of Clippy.
It's too tedious to keep the code compatible with older clippy and newer
clippy, especially if/when we enable pedantic lints.
2020-12-07 21:33:27 -08:00
Brian Smith
ad4f6c9153 CI/CD: Also lint with the stable channel's clippy. 2020-12-03 17:40:33 -08:00
Brian Smith
1725cc295e CI/CD: Run sudo apt-get update before using apt-get.
See https://github.com/actions/virtual-environments/issues/2155. This fixes
CI/CD jobs failing due to `apt-get` failing to download packages.
2020-12-01 15:26:07 -08:00
Brian Smith
64184d649f CI/CD: Add cargo audit. 2020-11-30 20:24:31 -08:00
Brian Smith
2114ed7f9d CI/CD: Try again to cache cargo-deny.
AFAICT, the previous attempt at caching didn't work because, AFAICT,
~/.cargo/{.crates.toml, .crates2.json} were not cached.
2020-11-30 19:28:28 -08:00
Brian Smith
df8fbf4145 CI/CD: Cache the cargo-deny binary to speed up the deny job.
`cargo install cargo-deny` takes 7 minutes, while running it takes 2 seconds.
2020-11-30 18:25:56 -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
23c99898cb CI/CD: Enable building of aarch64-apple-darwin targets on Rust Beta.
https://blog.rust-lang.org/2020/11/27/Rustup-1.23.0.html#support-for-apple-m1-devices
says that the beta channel supports M1 targets now.
2020-11-30 03:27:49 -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
c4c6899cc5 CI/CD: Use LLVM-11 for code coverage. 2020-11-30 00:26:42 -08:00
Brian Smith
7514f7a417 Remove the internal_benches feature.
The benchmarks need to be rewritten to use a new benchmark framework.
Remove them in the interim. This makes `internal_benches` a no-op.

This enables using `--all-features` on stable channels. Do so for some
non-test things in CI. `--all-features` isn't added for tests because of
the `slow_tests` feature.
2020-11-26 16:25:34 -08:00
Brian Smith
6b4df12c7f CI/CD: Verify that cargo doc works on all channels. 2020-11-26 00:05:22 -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
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
f26bae0a6a Add support for aarch64-apple-darwin.
Change the static CPU feature detection logic to assume all aarch64-apple-* targets
have the same capabilities as far as the features we use are concerned.

Use the "ios64" PerlAsm flavour for aarch64-apple-darwin, like OpenSSL upstream does.

Add (build-only) cross-compilation jobs to GitHub Actions.
2020-11-18 00:00:12 -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
4076ee04eb CI/CD: Add a package job to GitHub Actions. 2020-11-17 08:15:45 -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
72dab40d97 CI/CD: Add cargo deny job to GitHub Actions. 2020-11-11 17:49:40 -08:00