CI #94
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: CI | |
on: | |
push: | |
branches: ['main'] | |
pull_request: | |
schedule: | |
- cron: "21 3 * * 5" | |
jobs: | |
# TODO(nmittler): Investigate why tests get "unknown CA" on windows. | |
# test-windows: | |
# name: test (windows-latest, stable) | |
# runs-on: windows-latest | |
# | |
# steps: | |
# - name: Checkout source | |
# uses: actions/checkout@v2 | |
# with: | |
# submodules: 'recursive' | |
# - name: Install nasm | |
# uses: crazy-max/ghaction-chocolatey@v1 | |
# with: | |
# args: install nasm | |
# - name: Install rust toolchain | |
# uses: actions-rs/toolchain@v1 | |
# with: | |
# profile: minimal | |
# toolchain: stable | |
# override: true | |
# - name: Cargo Build | |
# uses: actions-rs/cargo@v1 | |
# with: | |
# command: build | |
# args: --all-targets | |
# - name: Cargo Test | |
# uses: actions-rs/cargo@v1 | |
# with: | |
# command: test | |
# args: --verbose --all-targets | |
test: | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest] | |
rust: [stable, beta] | |
exclude: | |
- os: macos-latest | |
rust: beta | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout source | |
uses: actions/checkout@v2 | |
with: | |
submodules: 'recursive' | |
- name: Install rust toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: ${{ matrix.rust }} | |
override: true | |
- name: Cargo Build | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: --all-targets | |
- name: Cargo Test | |
uses: actions-rs/cargo@v1 | |
with: | |
command: test | |
# TODO(nmittler): Investigate build issues. | |
# test-fips: | |
# name: test fips | |
# runs-on: ubuntu-20.04 | |
# steps: | |
# - name: Checkout source | |
# uses: actions/checkout@v2 | |
# with: | |
# submodules: 'recursive' | |
# - name: Install Clang 7 | |
# uses: egor-tensin/setup-clang@v1 | |
# with: | |
# version: "7" | |
# - name: Install rust toolchain | |
# uses: actions-rs/toolchain@v1 | |
# with: | |
# profile: minimal | |
# toolchain: stable | |
# override: true | |
# - name: Cargo Build | |
# uses: actions-rs/cargo@v1 | |
# with: | |
# command: build | |
# args: --all-targets --features fips | |
# - name: Cargo Test | |
# uses: actions-rs/cargo@v1 | |
# with: | |
# command: test | |
# args: --features fips | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout source | |
uses: actions/checkout@v2 | |
with: | |
submodules: 'recursive' | |
- name: Install rust toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
components: rustfmt, clippy | |
- name: Cargo fmt | |
uses: actions-rs/cargo@v1 | |
with: | |
command: fmt | |
args: --all -- --check | |
- name: Cargo clippy | |
uses: actions-rs/cargo@v1 | |
with: | |
command: clippy | |
args: --all-targets -- -D warnings | |
- name: Cargo doc | |
run: cargo doc --no-deps --document-private-items | |
env: | |
RUSTDOCFLAGS: -Dwarnings | |
audit: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: EmbarkStudios/cargo-deny-action@v1 |