| - |
name: ci
|
| - |
on: [push, pull_request]
|
| - |
jobs:
|
| - |
fmt:
|
| - |
runs-on: ubuntu-latest
|
| - |
steps:
|
| - |
- uses: actions/checkout@master
|
| - |
- uses: actions-rs/toolchain@v1
|
| - |
with:
|
| - |
profile: minimal
|
| - |
toolchain: nightly
|
| - |
components: rustfmt
|
| - |
- uses: Swatinem/rust-cache@v1
|
| - |
- run: ./scripts/ci/fmt
|
| - |
shell: bash
|
| - |
|
| - |
lint:
|
| - |
runs-on: ubuntu-latest
|
| - |
steps:
|
| - |
- uses: actions/checkout@master
|
| - |
- uses: actions-rs/toolchain@v1
|
| - |
with:
|
| - |
profile: minimal
|
| - |
toolchain: stable
|
| - |
components: clippy
|
| - |
- uses: Swatinem/rust-cache@v1
|
| - |
- run: ./scripts/ci/lint
|
| - |
shell: bash
|
| - |
|
| - |
docs:
|
| - |
runs-on: ubuntu-latest
|
| - |
steps:
|
| - |
- uses: actions/checkout@master
|
| - |
- uses: actions-rs/toolchain@v1
|
| - |
with:
|
| - |
profile: minimal
|
| - |
toolchain: stable
|
| - |
- uses: Swatinem/rust-cache@v1
|
| - |
- run: ./scripts/ci/docs
|
| - |
shell: bash
|
| - |
|
| - |
cargo-deny:
|
| - |
runs-on: ubuntu-latest
|
| - |
strategy:
|
| - |
matrix:
|
| - |
checks:
|
| - |
- advisories
|
| - |
- bans licenses sources
|
| - |
continue-on-error: ${{ matrix.checks == 'advisories' }}
|
| - |
steps:
|
| - |
- uses: actions/checkout@v2
|
| - |
- uses: EmbarkStudios/cargo-deny-action@v1
|
| - |
with:
|
| - |
command: check ${{ matrix.checks }}
|
| - |
|
| - |
build-linux:
|
| - |
runs-on: ubuntu-latest
|
| - |
strategy:
|
| - |
matrix:
|
| - |
toolchain:
|
| - |
- stable
|
| - |
- nightly
|
| - |
continue-on-error: ${{ matrix.toolchain == 'nightly' }}
|
| - |
steps:
|
| - |
- uses: actions/checkout@master
|
| - |
- uses: actions-rs/toolchain@v1
|
| - |
with:
|
| - |
profile: minimal
|
| - |
toolchain: ${{ matrix.toolchain }}
|
| - |
- uses: Swatinem/rust-cache@v1
|
| - |
- run: ./scripts/ci/build
|
| - |
shell: bash
|
| - |
|
| - |
test-linux:
|
| - |
runs-on: ubuntu-latest
|
| - |
needs: build-linux
|
| - |
strategy:
|
| - |
matrix:
|
| - |
toolchain:
|
| - |
- stable
|
| - |
- nightly
|
| - |
continue-on-error: ${{ matrix.toolchain == 'nightly' }}
|
| - |
steps:
|
| - |
- uses: actions/checkout@master
|
| - |
with:
|
| - |
fetch-depth: 0
|
| - |
# The 'main' branch is needed for radicle-surf vcs::git::tests::test_submodule_failure,
|
| - |
# however actions/checkout uses the init.defaultBranch 'master' at this moment, even if
|
| - |
# the repo does not use 'master' branch. We create 'main' branch as needed for the test.
|
| - |
#
|
| - |
# awk magic: create 'main' branch only if not exist yet.
|
| - |
# END: do things at the end of the input.
|
| - |
# NR: Number of Records in the input.
|
| - |
- run: git branch --list main | awk 'END { if (NR == 0) system("git branch main; git branch -u origin/main main"); }'
|
| - |
- uses: actions-rs/toolchain@v1
|
| - |
with:
|
| - |
profile: minimal
|
| - |
toolchain: ${{ matrix.toolchain }}
|
| - |
- uses: baptiste0928/cargo-install@v1
|
| - |
with:
|
| - |
crate: cargo-nextest
|
| - |
version: 0.9
|
| - |
- uses: Swatinem/rust-cache@v1
|
| - |
- run: ./scripts/ci/test
|
| - |
shell: bash
|
| - |
|
| - |
build-macos:
|
| - |
runs-on: macos-latest
|
| - |
steps:
|
| - |
- uses: actions/checkout@master
|
| - |
- uses: actions-rs/toolchain@v1
|
| - |
with:
|
| - |
profile: minimal
|
| - |
toolchain: stable
|
| - |
- uses: Swatinem/rust-cache@v1
|
| - |
- run: ./scripts/ci/build
|
| - |
shell: bash
|
| - |
|
| - |
test-macos:
|
| - |
runs-on: macos-latest
|
| - |
needs: build-macos
|
| - |
steps:
|
| - |
- uses: actions/checkout@master
|
| - |
with:
|
| - |
fetch-depth: 0
|
| - |
- run: git branch --list main | awk 'END { if (NR == 0) system("git branch main; git branch -u origin/main main"); }'
|
| - |
- uses: actions-rs/toolchain@v1
|
| - |
with:
|
| - |
profile: minimal
|
| - |
toolchain: stable
|
| - |
- uses: baptiste0928/cargo-install@v1
|
| - |
with:
|
| - |
crate: cargo-nextest
|
| - |
version: 0.9
|
| - |
- uses: Swatinem/rust-cache@v1
|
| - |
- run: ./scripts/ci/test
|
| - |
shell: bash
|
| - |
|
| - |
build-windows:
|
| - |
runs-on: windows-latest
|
| - |
continue-on-error: true
|
| - |
steps:
|
| - |
- uses: actions/checkout@master
|
| - |
- uses: actions-rs/toolchain@v1
|
| - |
with:
|
| - |
profile: minimal
|
| - |
toolchain: stable
|
| - |
- uses: Swatinem/rust-cache@v1
|
| - |
- run: ./scripts/ci/build
|
| - |
shell: bash
|