More CI (#570) #67
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: Diplomat CI | |
on: | |
push: | |
branches: [ main ] | |
pull_request: | |
branches: [ main ] | |
env: | |
CARGO_TERM_COLOR: always | |
jobs: | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Check rustfmt | |
run: cargo fmt --all -- --check | |
- name: Check clippy | |
run: cargo clippy --all-targets --all-features -- -D warnings | |
build-test: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Build | |
run: cargo build --verbose | |
- name: Run tests | |
run: cargo test --verbose | |
gen: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install cargo-make | |
uses: taiki-e/install-action@v2 | |
with: | |
tool: [email protected] # https://github.com/rust-diplomat/diplomat/issues/440 | |
- name: Run regeneration | |
run: cargo make gen | |
- name: Test code is fresh | |
run: git add . && git diff --cached --exit-code | |
test-c: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install cargo-make | |
uses: taiki-e/install-action@cargo-make | |
- name: Test C | |
run: cargo make test-c | |
check-c: | |
strategy: | |
matrix: | |
os: [ ubuntu-latest, macos-latest, windows-latest ] | |
fail-fast: false | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install cargo-make | |
uses: taiki-e/install-action@cargo-make | |
- name: clang, c11 | |
run: cargo make check-c | |
env: | |
CC: clang | |
C_STD: c11 | |
- name: gcc, c11 | |
run: cargo make check-c | |
env: | |
CC: gcc | |
C_STD: c11 | |
- name: gcc, c2x | |
run: cargo make check-c | |
env: | |
CC: gcc | |
C_STD: c2x | |
test-cpp: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install cargo-make | |
uses: taiki-e/install-action@cargo-make | |
- name: clang | |
run: CXX=clang++-14 cargo make test-cpp | |
- name: gcc | |
run: CXX=g++ cargo make test-cpp | |
check-cpp: | |
strategy: | |
matrix: | |
os: [ ubuntu-latest, macos-latest, windows-latest ] | |
fail-fast: false | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install cargo-make | |
uses: taiki-e/install-action@cargo-make | |
- name: clang++, c++17 | |
run: cargo make check-cpp | |
env: | |
CC: clang++-14 | |
C_STD: c++17 | |
- name: clang++, c++20 | |
run: cargo make check-cpp | |
env: | |
CC: clang++-14 | |
C_STD: c++20 | |
- name: g++, c++23 | |
run: cargo make check-cpp | |
env: | |
CC: g++ | |
C_STD: c++23 | |
test-js: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
node-version: [ | |
18.20.3, # supported until 2025-04-30 | |
20.14.0, # supported until 2026-04-30 | |
22.3.0, # current, supported until 2027-04-30 | |
] | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install cargo-make | |
uses: taiki-e/install-action@cargo-make | |
- name: Load Rust toolchain for WASM. | |
run: rustup target add wasm32-unknown-unknown | |
- name: Install Node.js | |
uses: actions/setup-node@v1 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- name: Test JS | |
run: cargo make test-js | |
test-dart: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install cargo-make | |
uses: taiki-e/install-action@cargo-make | |
- name: Install Dart | |
uses: dart-lang/setup-dart@v1 | |
with: | |
sdk: 3.4.0-204.0.dev | |
- name: Test Dart | |
run: cargo make test-dart |