Merge pull request #756 from schungx/master #717
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: Build | |
on: | |
push: | |
branches: | |
- main | |
- master | |
pull_request: {} | |
env: | |
RUST_MSRV: 1.61.0 | |
jobs: | |
msrv: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/cache@v1 | |
with: | |
path: | | |
~/.cargo/bin | |
~/.cargo/registry/index | |
~/.cargo/registry/cache | |
~/.cargo/git/db/ | |
target | |
key: "${{ runner.os }}-cargo-build-msrv-${{ hashFiles('**/Cargo.lock') }}" | |
- uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: ${{ env.RUST_MSRV }} | |
override: true | |
- uses: actions-rs/cargo@v1 | |
with: | |
command: check | |
args: "--features decimal,metadata,serde,debugging" | |
# typical build with various feature combinations | |
build: | |
name: Build | |
runs-on: ${{ matrix.os }} | |
continue-on-error: ${{ matrix.experimental }} | |
strategy: | |
matrix: | |
os: [ubuntu-latest] | |
flags: | |
- "" | |
- "--features testing-environ,debugging" | |
- "--features testing-environ,metadata,serde,internals" | |
- "--features testing-environ,unchecked,serde,metadata,internals,debugging" | |
- "--features testing-environ,sync,serde,metadata,internals,debugging" | |
- "--features testing-environ,no_position,serde,metadata,internals,debugging" | |
- "--features testing-environ,no_optimize,serde,metadata,internals,debugging" | |
- "--features testing-environ,no_float,serde,metadata,internals,debugging" | |
- "--features testing-environ,f32_float,serde,metadata,internals,debugging" | |
- "--features testing-environ,decimal,serde,metadata,internals,debugging" | |
- "--features testing-environ,no_custom_syntax,serde,metadata,internals,debugging" | |
- "--features testing-environ,no_float,decimal" | |
- "--tests --features testing-environ,only_i32,serde,metadata,internals,debugging" | |
- "--features testing-environ,only_i64,serde,metadata,internals,debugging" | |
- "--features testing-environ,no_index,serde,metadata,internals,debugging" | |
- "--features testing-environ,no_object,serde,metadata,internals,debugging" | |
- "--features testing-environ,no_function,serde,metadata,internals,debugging" | |
- "--features testing-environ,no_module,serde,metadata,internals,debugging" | |
- "--features testing-environ,no_time,serde,metadata,internals,debugging" | |
- "--features testing-environ,no_closure,serde,metadata,internals,debugging" | |
- "--features testing-environ,unicode-xid-ident,serde,metadata,internals,debugging" | |
- "--features testing-environ,sync,no_time,no_function,no_float,no_position,no_optimize,no_module,no_closure,no_custom_syntax,metadata,serde,unchecked,debugging" | |
- "--features testing-environ,no_time,no_function,no_float,no_position,no_index,no_object,no_optimize,no_module,no_closure,no_custom_syntax,unchecked" | |
toolchain: [stable] | |
experimental: [false] | |
include: | |
# smoketests for different toolchains | |
- {toolchain: stable, os: windows-latest, experimental: false, flags: ""} | |
- {toolchain: stable, os: macos-latest, experimental: false, flags: ""} | |
- {toolchain: beta, os: ubuntu-latest, experimental: false, flags: ""} | |
- {toolchain: nightly, os: ubuntu-latest, experimental: true, flags: ""} | |
fail-fast: false | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Setup Toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{matrix.toolchain}} | |
override: true | |
- name: Test | |
uses: actions-rs/cargo@v1 | |
with: | |
command: test | |
args: ${{matrix.flags}} | |
# no-std builds are a bit more extensive to test | |
no_std_build: | |
name: NoStdBuild | |
runs-on: ${{matrix.os}} | |
continue-on-error: ${{matrix.experimental}} | |
strategy: | |
matrix: | |
include: | |
- {os: ubuntu-latest, flags: "--profile unix", experimental: false} | |
- {os: windows-latest, flags: "--profile windows", experimental: true} | |
#- {os: macos-latest, flags: "--profile macos", experimental: false} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Setup Toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: nightly | |
override: true | |
- name: Build Project | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: --manifest-path=no_std/no_std_test/Cargo.toml ${{matrix.flags}} | |
wasm: | |
name: Check Wasm build | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
flags: | |
- "--target wasm32-wasi" | |
# These fail currently, future PR should fix them | |
# - "--target wasm32-unknown-unknown" | |
# - "--target wasm32-unknown-unknown --features wasm-bindgen" | |
- "--target wasm32-unknown-unknown --no-default-features" | |
- "--target wasm32-unknown-unknown --no-default-features --features wasm-bindgen" | |
fail-fast: false | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Setup Generic Wasm Toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
override: true | |
target: wasm32-unknown-unknown | |
- name: Setup Wasi Toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
override: true | |
target: wasm32-wasi | |
- name: Build | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: ${{matrix.flags}} | |
rustfmt: | |
name: Check Formatting | |
runs-on: windows-latest | |
continue-on-error: true | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Setup Toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: nightly | |
override: true | |
components: rustfmt, clippy | |
- name: Run Rustfmt | |
uses: actions-rs/cargo@v1 | |
with: | |
command: fmt | |
args: --all -- --check | |
- name: Run Clippy | |
uses: actions-rs/cargo@v1 | |
with: | |
command: clippy | |
args: --all -- -Aclippy::all -Dclippy::perf | |
codegen_build: | |
name: Codegen Build | |
runs-on: ${{matrix.os}} | |
continue-on-error: ${{matrix.experimental}} | |
strategy: | |
matrix: | |
include: | |
- {toolchain: stable, os: ubuntu-latest, experimental: false, flags: "--features metadata"} | |
- {toolchain: stable, os: windows-latest, experimental: false, flags: "--features metadata"} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Setup Toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{matrix.toolchain}} | |
override: true | |
- name: Build Project | |
uses: actions-rs/cargo@v1 | |
with: | |
command: test | |
args: --manifest-path=codegen/Cargo.toml ${{matrix.flags}} |