WIP: refactor: migrate to native async trait #3641
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
name: Continuous integration | |
on: | |
push: | |
branches: | |
- master | |
tags: | |
- v* | |
paths-ignore: | |
- 'README.md' | |
pull_request: | |
branches: | |
- master | |
env: | |
CARGO_TERM_COLOR: always | |
# Download a RPC server to run wasm tests against. | |
SUBSTRATE_URL: https://releases.parity.io/substrate/x86_64-debian:stretch/latest/substrate/substrate | |
jobs: | |
check-style: | |
name: Check style | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4.1.1 | |
- name: Install Rust stable toolchain | |
uses: actions-rs/toolchain@v1.0.7 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
components: clippy, rustfmt | |
- name: Rust Cache | |
uses: Swatinem/rust-cache@v2.7.1 | |
- name: Cargo fmt | |
uses: actions-rs/cargo@v1.0.3 | |
with: | |
command: fmt | |
args: --all -- --check | |
- name: Check clippy | |
uses: actions-rs/clippy-check@v1 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
args: --all-features | |
check-docs: | |
name: Check rustdoc | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4.1.1 | |
- name: Install Rust nightly toolchain | |
uses: actions-rs/toolchain@v1.0.7 | |
with: | |
profile: minimal | |
toolchain: nightly | |
override: true | |
- name: Check rustdoc | |
run: RUSTDOCFLAGS="--cfg docsrs --deny rustdoc::broken_intra_doc_links" cargo doc --verbose --workspace --no-deps --document-private-items --all-features | |
check-code: | |
name: Check | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4.1.1 | |
- name: Install Rust stable toolchain | |
uses: actions-rs/toolchain@v1.0.7 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
- name: Install cargo-hack | |
uses: baptiste0928/cargo-install@v2 | |
with: | |
crate: cargo-hack | |
version: 0.5 | |
- name: Install cargo-machete | |
uses: baptiste0928/cargo-install@v2 | |
with: | |
crate: cargo-machete | |
version: 0.5 | |
- name: Rust Cache | |
uses: Swatinem/rust-cache@v2.7.1 | |
- name: Cargo check all targets and features | |
run: cargo hack check --workspace --each-feature --all-targets | |
- name: Check unused dependencies | |
run: cargo machete | |
tests_ubuntu: | |
name: Run tests Ubuntu | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4.1.1 | |
- name: Install Rust stable toolchain | |
uses: actions-rs/toolchain@v1.0.7 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
- name: Rust Cache | |
uses: Swatinem/rust-cache@v2.7.1 | |
- name: Cargo test | |
uses: actions-rs/cargo@v1.0.3 | |
with: | |
command: test | |
args: --workspace | |
tests_macos: | |
name: Run tests macos | |
runs-on: macos-latest | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4.1.1 | |
- name: Install Rust stable toolchain | |
uses: actions-rs/toolchain@v1.0.7 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
- name: Rust Cache | |
uses: Swatinem/rust-cache@v2.7.1 | |
- name: Cargo test | |
uses: actions-rs/cargo@v1.0.3 | |
with: | |
command: test | |
args: --workspace | |
tests_windows: | |
name: Run tests Windows | |
runs-on: windows-latest | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4.1.1 | |
- name: Install Rust stable toolchain | |
uses: actions-rs/toolchain@v1.0.7 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
- name: Rust Cache | |
uses: Swatinem/rust-cache@v2.7.1 | |
- name: Cargo test | |
uses: actions-rs/cargo@v1.0.3 | |
with: | |
command: test | |
args: --workspace | |
wasm_tests: | |
name: Test wasm | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4.1.1 | |
- name: Install wasm-pack | |
run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh | |
- name: Install firefox | |
uses: browser-actions/setup-firefox@latest | |
- name: Install chrome | |
uses: browser-actions/setup-chrome@latest | |
- name: Download Substrate | |
run: | | |
curl $SUBSTRATE_URL --output substrate --location | |
chmod +x substrate | |
mkdir -p ~/.local/bin | |
mv substrate ~/.local/bin | |
- name: Run WASM tests | |
run: | | |
substrate --dev --tmp > /dev/null 2>&1 & | |
wasm-pack test --headless --firefox | |
wasm-pack test --headless --chrome | |
pkill substrate | |
working-directory: tests/wasm-tests |