-
Notifications
You must be signed in to change notification settings - Fork 0
135 lines (130 loc) · 4.21 KB
/
ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# Metadata for the actions workflow
name: CI
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "*" ]
# Environment variables that will be set on all runners
env:
RUST_VERSION: 1.81.0 # Should agree with Cargo.toml
CARGO_TERM_COLOR: always # Always colour Cargo's output.
CARGO_INCREMENTAL: 0 # Always run without incremental builds on CI.
CARGO_PROFILE_DEV_DEBUG: 0 # Don't embed debug info even though the build is a dev build.
# Configuration for individual jobs
jobs:
# This job is responsible for running the unit and integration tests.
test:
name: "Test"
strategy:
fail-fast: false
matrix:
os: [ "ubuntu-latest", "macos-latest" ]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Install Lix
uses: cachix/install-nix-action@v27
with:
install_url: "https://install.lix.systems/lix"
install_options: "--no-confirm"
# - name: Install rust
# uses: actions-rs/toolchain@v1
# with:
# profile: minimal
# toolchain: ${{ env.RUST_VERSION }}
# override: true
# - name: Restore Cache
# uses: actions/cache@v3
# continue-on-error: true
# with:
# path: |
# ~/.cargo/registry/index/
# ~/.cargo/registry/cache/
# ~/.cargo/git/db/
# target/
# key: ${{ env.RUST_VERSION }}-cargo-test-${{ hashFiles('**/Cargo.lock') }}
# restore-keys: ${{ env.RUST_VERSION }}-cargo-test-
# - name: Build Tests
# uses: actions-rs/cargo@v1
# with:
# command: test
# args: --all-targets --no-run
# # Unfortunately `--all-targets` doesn't handle the doctests. See <https://github.com/rust-lang/cargo/issues/6669>.
# # To that end, we build them separately and just pass `--help` to prevent them running in this step.
# - name: Build Doctests
# uses: actions-rs/cargo@v1
# with:
# command: test
# args: --doc -- --help
# - name: Run Tests
# uses: actions-rs/cargo@v1
# with:
# command: test
# args: --all-targets -- --nocapture
# - name: Run Doctests
# uses: actions-rs/cargo@v1
# with:
# command: test
# args: --doc -- --nocapture
# This job runs the linter and puts any lint results inline in the PR for easy visibility.
# lint:
# name: "Lint"
# runs-on: "ubuntu-latest"
# steps:
# - name: Checkout Code
# uses: actions/checkout@v3
# - name: Install rust
# uses: actions-rs/toolchain@v1
# with:
# profile: minimal
# toolchain: ${{ env.RUST_VERSION }}
# override: true
# components: clippy
# - name: Restore Cache
# uses: actions/cache@v3
# continue-on-error: true
# with:
# path: |
# ~/.cargo/registry/index/
# ~/.cargo/registry/cache/
# ~/.cargo/git/db/
# target/
# key: ${{ env.RUST_VERSION }}-cargo-test-${{ hashFiles('**/Cargo.lock') }}
# restore-keys: ${{ env.RUST_VERSION }}-cargo-test-
# - name: Lint Code
# uses: actions-rs/clippy-check@v1
# with:
# token: ${{ secrets.GITHUB_TOKEN }}
# args: --all-targets
# This job checks the code formatting.
# formatting:
# name: "Check Formatting"
# runs-on: "ubuntu-latest"
# steps:
# - name: Checkout Code
# uses: actions/checkout@v3
# - name: Install rust
# uses: actions-rs/toolchain@v1
# with:
# toolchain: nightly
# profile: minimal
# override: true
# components: rustfmt
# - name: Restore Cache
# uses: actions/cache@v3
# continue-on-error: true
# with:
# path: |
# ~/.cargo/registry/index/
# ~/.cargo/registry/cache/
# ~/.cargo/git/db/
# target/
# key: ${{ env.RUST_VERSION }}-cargo-test-${{ hashFiles('**/Cargo.lock') }}
# restore-keys: ${{ env.RUST_VERSION }}-cargo-test-
# - name: Check Formatting
# uses: actions-rs/cargo@v1
# with:
# command: fmt
# args: --all -- --check