-
Notifications
You must be signed in to change notification settings - Fork 0
137 lines (132 loc) · 4.11 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
136
137
# Metadata for the actions workflow
name: CI
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "*" ]
# Environment variables that will be set on all runners
env:
NIX_STORE_PATH: "~/nix_store"
CI_DEV_SHELL: "nix --store ~/nix_store develop '.#ci'"
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
# shell: "bash"
# run: |
# curl -sSf -L https://install.lix.systems/lix | sh -s -- install --no-confirm
# - name: Restore Nix Cache
# uses: actions/cache@v3
# continue-on-error: true
# with:
# path: |
# /nix/store
# key: nix-${{ hashFiles('**/flake.lock') }}-${{ matrix.os }}
# - name: Restore Rust Cache
# uses: actions/cache@v3
# continue-on-error: true
# with:
# path: |
# target/
# key: rust-${{ hashFiles('**/Cargo.lock') }}-${{ matrix.os }}
# - name: Build Lix Dependencies
# shell: "bash"
# run: |
# nix build
# - name: Build Tests
# shell: "bash"
# run: |
# ${{ env.CI_DEV_SHELL }} --command cargo test --all-targets --no-run
# - name: Run Tests
# shell: "bash"
# run: |
# ${{ env.CI_DEV_SHELL }} --command cargo test --all-targets -- --nocapture
# This job runs the linter.
lint:
name: "Lint"
runs-on: "ubuntu-latest"
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Install Lix
shell: "bash"
run: |
curl -sSf -L https://install.lix.systems/lix | sh -s -- install --no-confirm
sudo chown -R $USER: /nix
- name: Restore Nix Cache
uses: actions/cache@v3
continue-on-error: true
with:
path: |
${{ NIX_STORE_PATH }}
key: nix-${{ hashFiles('**/flake.lock') }}-ubuntu-latest
- name: Restore Rust Cache
uses: actions/cache@v3
continue-on-error: true
with:
path: |
target/
key: rust-${{ hashFiles('**/Cargo.lock') }}-ubuntu-latest
- name: Build Lix Dependencies
shell: "bash"
run: |
nix build
- name: Install Lix
shell: "bash"
run: |
curl -sSf -L https://install.lix.systems/lix | sh -s -- install --no-confirm
- name: Lint Code
shell: "bash"
run: |
${{ env.CI_DEV_SHELL }} --command cargo clippy --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 Lix
# shell: "bash"
# run: |
# curl -sSf -L https://install.lix.systems/lix | sh -s -- install --no-confirm
# - name: Restore Nix Cache
# uses: actions/cache@v3
# continue-on-error: true
# with:
# path: |
# /nix/store
# key: nix-${{ hashFiles('**/flake.lock') }}-ubuntu-latest
# - name: Restore Rust Cache
# uses: actions/cache@v3
# continue-on-error: true
# with:
# path: |
# target/
# key: rust-${{ hashFiles('**/Cargo.lock') }}-ubuntu-latest
# - name: Build Lix Dependencies
# shell: "bash"
# run: |
# nix build
# - name: Install Lix
# shell: "bash"
# run: |
# curl -sSf -L https://install.lix.systems/lix | sh -s -- install --no-confirm
# - name: Check Formatting
# shell: "bash"
# run: |
# ${{ env.CI_DEV_SHELL }} --command cargo fmt --all -- --check