Files
radicle-git/.github/workflows/ci.yaml
T
Han Xu 4f2962a7e8 fix CI errors on main branch
When CI runs on main branch, the workflow fails to create the "main"
branch as it exists already.

Fix: uses "-f" to force creating "main" branch.
2022-09-21 17:47:11 -07:00

149 lines
3.8 KiB
YAML

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.
# We will improve the test soon to remove this need.
- run: git branch -f main # -f in case of running against 'main' branch.
- run: 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 -f main
- run: 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