docs: document versioning scheme (#2050) #4214
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 | |
- release/* | |
pull_request: | |
env: | |
RUSTFLAGS: -Dwarnings | |
jobs: | |
rustfmt: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checking out fvm | |
uses: actions/checkout@v3 | |
- name: Check Format | |
run: cargo fmt -- --check | |
- name: Check license headers | |
run: make license | |
cargo: | |
needs: [rustfmt] | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, macos-latest] | |
name: [build, check-m2-native, check-clippy, check-clippy-verify-signature, test-fvm, test, integration, conformance, calibration] | |
include: | |
- name: build | |
key: v3 | |
push: true | |
# we disable default features because rust will otherwise unify them and turn on opencl in CI. | |
command: build | |
args: --no-default-features | |
- name: check-m2-native | |
key: v3 | |
push: true | |
command: check | |
# we disable default features because rust will otherwise unify them and turn on opencl in CI. | |
args: --features=m2-native --no-default-features | |
- name: check-clippy | |
key: v3 | |
command: clippy | |
# we disable default features because rust will otherwise unify them and turn on opencl in CI. | |
args: --all --all-targets --no-default-features | |
- name: check-clippy-verify-signature | |
key: v3 | |
command: clippy | |
# we disable default features because rust will otherwise unify them and turn on opencl in CI. | |
args: --all --all-targets --no-default-features --features verify-signature | |
- name: test-fvm | |
key: v3-cov | |
push: true | |
covname: fvm-lcov.info | |
command: llvm-cov | |
args: --package fvm --no-default-features --lcov --output-path fvm-lcov.info | |
- name: test | |
key: v3-cov | |
covname: lcov.info | |
command: llvm-cov | |
args: --all --exclude fvm --exclude fvm_conformance_tests --exclude fvm_integration_tests --exclude "*actor" --lcov --output-path lcov.info | |
- name: integration | |
key: v3-cov | |
covname: itest-lcov.info | |
command: llvm-cov | |
args: --package fvm_integration_tests --package "*actor" --lcov --output-path itest-lcov.info | |
- name: conformance | |
key: v3 | |
command: test | |
args: --package fvm_conformance_tests | |
submodules: true | |
- name: calibration | |
key: v3 | |
command: test | |
# we disable default features because rust will otherwise unify them and turn on opencl in CI. | |
args: --release --test gas_calibration_test --features calibration --no-default-features | |
exclude: | |
- os: macos-latest | |
name: check-m2-native | |
- os: macos-latest | |
name: check-clippy | |
- os: macos-latest | |
name: conformance | |
- os: macos-latest | |
name: test | |
- os: macos-latest | |
name: test-fvm | |
- os: macos-latest | |
name: calibration | |
env: | |
CARGO_INCREMENTAL: 0 | |
CARGO_TERM_COLOR: always | |
name: ${{matrix.os}} - ${{ matrix.name }} | |
steps: | |
- name: Checking out fvm | |
uses: actions/checkout@v3 | |
with: | |
submodules: ${{ matrix.submodules }} | |
# we don't check the lockfile in; this is needed for cache restoration/saving | |
- name: Installing Cargo llvm-cov | |
if: ${{ matrix.covname }} | |
uses: taiki-e/install-action@bc0a06a003a8225fe3e896c9ed3a4c3cc2e8416a | |
with: | |
tool: [email protected] | |
- name: Setting up cache | |
uses: Swatinem/rust-cache@6fd3edff6979b79f87531400ad694fb7f2c84b1f | |
with: | |
save-if: ${{ matrix.push == true }} | |
# change this to invalidate sccache for this job | |
prefix-key: ${{ matrix.key }} | |
- name: Running ${{ matrix.command }} | |
run: cargo ${{ matrix.command }} --locked ${{ matrix.args }} | |
- name: Upload coverage to Codecov | |
if: ${{ matrix.covname }} | |
uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 | |
with: | |
files: ${{ matrix.covname }} | |
token: ${{ secrets.CODECOV_TOKEN }} | |
# Codecov is flaky and will randomly fail. We'd rather not have random failures on master. | |
fail_ci_if_error: false | |
verbose: true |