-
Notifications
You must be signed in to change notification settings - Fork 0
133 lines (128 loc) · 3.99 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
# Metadata for the actions workflow
name: CI
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "*" ]
# Environment variables that will be set on all runners
env:
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" ]
os: [ "ubuntu-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: Cache Nix Packages
uses: rikhuijzer/cache-install@v1
with:
key: nix-${{ hashFiles('flake.lock') }}
nix_file: 'flake.nix'
- name: Build Lix Dependencies
shell: "bash"
run: |
${{ env.CI_DEV_SHELL }}
# - 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
# - 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: |
# ${{ env.CI_DEV_SHELL }}
# - 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: |
# ${{ env.CI_DEV_SHELL }}
# - name: Check Formatting
# shell: "bash"
# run: |
# ${{ env.CI_DEV_SHELL }} --command cargo fmt --all -- --check