mirror of
https://seed.radicle.dev/rad:z6cFWeWpnZNHh9rUW8phgA3b5yGt.git
synced 2026-10-27 23:30:34 +08:00
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.
149 lines
3.8 KiB
YAML
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
|