-
Notifications
You must be signed in to change notification settings - Fork 431
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Migrate to GitHub Actions #1073
Merged
Changes from 7 commits
Commits
Show all changes
8 commits
Select commit
Hold shift + click to select a range
4dec096
GitHub Actions: add GitHub pages deployment
dhardy 8caa86b
Cargo.toml: remove [badges] sections
dhardy 0f53b56
Update README files shields and doc
dhardy 9e7c010
Migrate tests to GH-Actions
dhardy 545f076
CI: add explicit target selections
dhardy 33a78de
Add cross test (inspired by ndarray CI)
dhardy 354468e
Use approximate assertions in value stability and increase some toler…
dhardy 33b8f37
Address review: use assert_almost_eq macro
dhardy File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
name: gh-pages | ||
|
||
on: | ||
push: | ||
branches: | ||
- master | ||
|
||
jobs: | ||
deploy: | ||
name: GH-pages documentation | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v2 | ||
- name: Install toolchain | ||
uses: actions-rs/toolchain@v1 | ||
with: | ||
profile: minimal | ||
toolchain: nightly | ||
override: true | ||
- name: doc (rand) | ||
env: | ||
RUSTDOCFLAGS: --cfg doc_cfg | ||
# --all builds all crates, but with default features for other crates (okay in this case) | ||
run: cargo doc --all --features nightly,serde1,getrandom,small_rng | ||
- name: Deploy | ||
uses: peaceiris/actions-gh-pages@v3 | ||
with: | ||
github_token: ${{ secrets.GITHUB_TOKEN }} | ||
publish_dir: ./target/doc |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,185 @@ | ||
name: Tests | ||
|
||
on: | ||
push: | ||
branches: [ master, '0.[0-9]+' ] | ||
pull_request: | ||
branches: [ master, '0.[0-9]+' ] | ||
|
||
jobs: | ||
check-doc: | ||
name: Check doc | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v2 | ||
- name: Install toolchain | ||
uses: actions-rs/toolchain@v1 | ||
with: | ||
profile: minimal | ||
toolchain: nightly | ||
override: true | ||
- run: cargo install cargo-deadlinks | ||
- name: doc (rand) | ||
env: | ||
RUSTDOCFLAGS: --cfg doc_cfg | ||
# --all builds all crates, but with default features for other crates (okay in this case) | ||
run: cargo deadlinks --ignore-fragments -- --all --features nightly,serde1,getrandom,small_rng | ||
|
||
test: | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
include: | ||
- os: ubuntu-latest | ||
target: x86_64-unknown-linux-gnu | ||
toolchain: stable | ||
- os: macos-latest | ||
target: x86_64-apple-darwin | ||
toolchain: stable | ||
# TODO: also aarch64 / M1 | ||
- os: windows-latest | ||
target: x86_64-pc-windows-gnu | ||
toolchain: stable | ||
- os: windows-latest | ||
target: x86_64-pc-windows-msvc | ||
toolchain: beta | ||
# Test both windows-gnu and windows-msvc; use beta rust on one | ||
- os: ubuntu-latest | ||
target: x86_64-unknown-linux-gnu | ||
toolchain: 1.36.0 # MSRV | ||
- os: ubuntu-latest | ||
deps: sudo apt install gcc-multilib | ||
target: i686-unknown-linux-gnu | ||
toolchain: nightly | ||
- os: ubuntu-latest | ||
target: x86_64-unknown-linux-gnu | ||
toolchain: nightly | ||
variant: minimal | ||
|
||
steps: | ||
- uses: actions/checkout@v2 | ||
- name: Install toolchain | ||
uses: actions-rs/toolchain@v1 | ||
with: | ||
profile: minimal | ||
target: ${{ matrix.target }} | ||
toolchain: ${{ matrix.toolchain }} | ||
override: true | ||
- run: ${{ matrix.deps }} | ||
- name: Maybe minimal | ||
if: ${{ matrix.variant == 'minimal' }} | ||
run: cargo generate-lockfile -Z minimal-versions | ||
- name: Maybe nightly | ||
if: ${{ matrix.toolchain == 'nightly' }} | ||
run: | | ||
cargo test --target ${{ matrix.target }} --tests --features=nightly | ||
cargo test --target ${{ matrix.target }} --all-features | ||
cargo test --target ${{ matrix.target }} --benches --features=nightly | ||
cargo test --target ${{ matrix.target }} --manifest-path rand_distr/Cargo.toml --benches | ||
- name: Test rand | ||
run: | | ||
cargo test --target ${{ matrix.target }} --tests --no-default-features | ||
cargo test --target ${{ matrix.target }} --tests --no-default-features --features=alloc,getrandom,small_rng | ||
# all stable features: | ||
cargo test --target ${{ matrix.target }} --features=serde1,log,small_rng | ||
cargo test --target ${{ matrix.target }} --examples | ||
- name: Test rand_core | ||
run: | | ||
cargo test --target ${{ matrix.target }} --manifest-path rand_core/Cargo.toml | ||
cargo test --target ${{ matrix.target }} --manifest-path rand_core/Cargo.toml --no-default-features | ||
cargo test --target ${{ matrix.target }} --manifest-path rand_core/Cargo.toml --no-default-features --features=alloc,getrandom | ||
- name: Test rand_distr | ||
run: cargo test --target ${{ matrix.target }} --manifest-path rand_distr/Cargo.toml | ||
- name: Test rand_pcg | ||
run: cargo test --target ${{ matrix.target }} --manifest-path rand_pcg/Cargo.toml --features=serde1 | ||
- name: Test rand_chacha | ||
run: cargo test --target ${{ matrix.target }} --manifest-path rand_chacha/Cargo.toml | ||
- name: Test rand_hc | ||
run: cargo test --target ${{ matrix.target }} --manifest-path rand_hc/Cargo.toml | ||
|
||
test-cross: | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
include: | ||
- os: ubuntu-latest | ||
target: mips-unknown-linux-gnu | ||
toolchain: stable | ||
|
||
steps: | ||
- uses: actions/checkout@v2 | ||
- name: Install toolchain | ||
uses: actions-rs/toolchain@v1 | ||
with: | ||
profile: minimal | ||
target: ${{ matrix.target }} | ||
toolchain: ${{ matrix.toolchain }} | ||
override: true | ||
- name: Cache cargo plugins | ||
uses: actions/cache@v1 | ||
with: | ||
path: ~/.cargo/bin/ | ||
key: ${{ runner.os }}-cargo-plugins | ||
- name: Install cross | ||
run: cargo install cross || true | ||
- name: Test | ||
run: | | ||
# all stable features: | ||
cross test --no-fail-fast --target ${{ matrix.target }} --features=serde1,log,small_rng | ||
cross test --no-fail-fast --target ${{ matrix.target }} --examples | ||
cross test --no-fail-fast --target ${{ matrix.target }} --manifest-path rand_core/Cargo.toml | ||
cross test --no-fail-fast --target ${{ matrix.target }} --manifest-path rand_distr/Cargo.toml | ||
cross test --no-fail-fast --target ${{ matrix.target }} --manifest-path rand_pcg/Cargo.toml --features=serde1 | ||
cross test --no-fail-fast --target ${{ matrix.target }} --manifest-path rand_chacha/Cargo.toml | ||
cross test --no-fail-fast --target ${{ matrix.target }} --manifest-path rand_hc/Cargo.toml | ||
|
||
test-miri: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v2 | ||
- name: Install toolchain | ||
run: | | ||
MIRI_NIGHTLY=nightly-$(curl -s https://rust-lang.github.io/rustup-components-history/x86_64-unknown-linux-gnu/miri) | ||
rustup default "$MIRI_NIGHTLY" | ||
rustup component add miri | ||
- name: Test rand | ||
run: | | ||
cargo miri test --no-default-features | ||
cargo miri test --features=log,small_rng | ||
cargo miri test --manifest-path rand_core/Cargo.toml | ||
cargo miri test --manifest-path rand_core/Cargo.toml --features=serde1 | ||
cargo miri test --manifest-path rand_core/Cargo.toml --no-default-features | ||
#cargo miri test --manifest-path rand_distr/Cargo.toml # no unsafe and lots of slow tests | ||
cargo miri test --manifest-path rand_pcg/Cargo.toml --features=serde1 | ||
cargo miri test --manifest-path rand_chacha/Cargo.toml --no-default-features | ||
cargo miri test --manifest-path rand_hc/Cargo.toml | ||
|
||
test-no-std: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v2 | ||
- name: Install toolchain | ||
uses: actions-rs/toolchain@v1 | ||
with: | ||
profile: minimal | ||
toolchain: nightly | ||
target: thumbv6m-none-eabi | ||
override: true | ||
- name: Build top-level only | ||
run: cargo build --target=thumbv6m-none-eabi --no-default-features | ||
|
||
test-ios: | ||
runs-on: macos-latest | ||
steps: | ||
- uses: actions/checkout@v2 | ||
- name: Install toolchain | ||
uses: actions-rs/toolchain@v1 | ||
with: | ||
profile: minimal | ||
toolchain: nightly | ||
target: aarch64-apple-ios | ||
override: true | ||
- name: Build top-level only | ||
run: cargo build --target=aarch64-apple-ios |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,6 @@ | ||
# Rand | ||
|
||
[![Build Status](https://travis-ci.org/rust-random/rand.svg?branch=master)](https://travis-ci.org/rust-random/rand) | ||
[![Build Status](https://ci.appveyor.com/api/projects/status/github/rust-random/rand?svg=true)](https://ci.appveyor.com/project/rust-random/rand) | ||
[![Test Status](https://github.com/rust-random/rand/workflows/Tests/badge.svg?event=push)](https://github.com/rust-random/rand/actions) | ||
[![Crate](https://img.shields.io/crates/v/rand.svg)](https://crates.io/crates/rand) | ||
[![Book](https://img.shields.io/badge/book-master-yellow.svg)](https://rust-random.github.io/book/) | ||
[![API](https://img.shields.io/badge/api-master-yellow.svg)](https://rust-random.github.io/rand) | ||
|
@@ -104,8 +103,8 @@ greater, and 0.4 and 0.3 (since approx. June 2017) require Rustc version 1.15 or | |
greater. Subsets of the Rand code may work with older Rust versions, but this is | ||
not supported. | ||
|
||
Travis CI always has a build with a pinned version of Rustc matching the oldest | ||
supported Rust release. The current policy is that this can be updated in any | ||
Continuous Integration (CI) will always test the oldest supported Rustc version | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Maybe replace "oldest" with "minimum" for clarity? |
||
(the MSRV). The current policy is that this can be updated in any | ||
Rand release if required, but the change must be noted in the changelog. | ||
|
||
## Crate Features | ||
|
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe "minimal_versions" is clearer?