Improves CI, fixes no_std
and other misc issues discovered
#5
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
# Run scheduled (rolling) jobs on a nightly basis, as your crate may break independently of any | |
# given PR. E.g., updates to rust nightly and updates to this crates dependencies. See check.yml for | |
# information about how the concurrency cancellation and workflow triggering works | |
permissions: | |
contents: read | |
on: | |
push: | |
branches: [main] | |
pull_request: | |
schedule: | |
- cron: '7 7 * * *' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
name: rolling | |
jobs: | |
# https://twitter.com/mycoliza/status/1571295690063753218 | |
nightly: | |
runs-on: ubuntu-latest | |
name: ubuntu / nightly | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install nightly | |
uses: dtolnay/rust-toolchain@nightly | |
- name: cargo generate-lockfile | |
if: hashFiles('Cargo.lock') == '' | |
run: cargo generate-lockfile | |
- name: cargo test --locked | |
run: cargo test --locked --all-features --all-targets | |
# https://twitter.com/alcuadrado/status/1571291687837732873 | |
update: | |
# This action checks that updating the dependencies of this crate to the latest available that | |
# satisfy the versions in Cargo.toml does not break this crate. This is important as consumers | |
# of this crate will generally use the latest available crates. This is subject to the standard | |
# Cargo semver rules (i.e cargo does not update to a new major version unless explicitly told | |
# to). | |
runs-on: ubuntu-latest | |
name: ubuntu / beta / updated | |
# There's no point running this if no Cargo.lock was checked in in the first place, since we'd | |
# just redo what happened in the regular test job. Unfortunately, hashFiles only works in if on | |
# steps, so we repeat it. | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install beta | |
if: hashFiles('Cargo.lock') != '' | |
uses: dtolnay/rust-toolchain@beta | |
- name: cargo update | |
if: hashFiles('Cargo.lock') != '' | |
run: cargo update | |
- name: cargo test | |
if: hashFiles('Cargo.lock') != '' | |
run: cargo test --locked --all-features --all-targets | |
env: | |
RUSTFLAGS: -D deprecated |