forked from cargo2nix/cargo2nix
-
Notifications
You must be signed in to change notification settings - Fork 0
87 lines (78 loc) · 3.48 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
# This is a basic workflow to help you get started with Actions
name: CI
# Controls when the workflow will run
on:
# Triggers the workflow on push or pull request events but only for the master branch
push:
branches: [ 'release-*' ]
pull_request:
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
# The type of runner that the job will run on
runs-on: ${{ matrix.os }}
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/[email protected]
- uses: cachix/install-nix-action@v23
with:
extra_nix_config: |
log-lines = 200
- uses: cachix/cachix-action@v12
with:
name: cargo2nix-gh
authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
# Some paths may confuse cachix. Add them with a pipe to the pushFilter
# pushFilter: "(cargo-1.60.0-x86_64-unknown-linux-gnu$|.drv.chroot$)"
# Runs a single command using the runners shell
- name: build cargo2nix
run: |
if [[ $RUNNER_OS == Linux ]]; then
nix build
else
nix build \
--override-input nixpkgs github:nixos/nixpkgs/nixpkgs-23.05-darwin
fi
- name: build tests
run: |
if [[ $RUNNER_OS == Linux ]]; then
nix build .#ci
else
nix build .#ci \
--override-input nixpkgs github:nixos/nixpkgs/nixpkgs-23.05-darwin
fi
- name: build examples
run: |
if [[ $RUNNER_OS == Linux ]]; then
nix build ./examples/1-hello-world# \
--override-input cargo2nix github:cargo2nix/cargo2nix?rev=$GITHUB_SHA
nix build ./examples/2-bigger-project# \
--override-input cargo2nix github:cargo2nix/cargo2nix?rev=$GITHUB_SHA
nix build ./examples/3-cross-compiling# \
--override-input cargo2nix github:cargo2nix/cargo2nix?rev=$GITHUB_SHA
nix build ./examples/4-independent-packaging# \
--override-input cargo2nix github:cargo2nix/cargo2nix?rev=$GITHUB_SHA
else
nix build ./examples/1-hello-world# \
--override-input cargo2nix github:cargo2nix/cargo2nix?rev=$GITHUB_SHA \
--override-input nixpkgs github:nixos/nixpkgs/nixpkgs-23.05-darwin
nix build ./examples/2-bigger-project# \
--override-input cargo2nix github:cargo2nix/cargo2nix?rev=$GITHUB_SHA \
--override-input nixpkgs github:nixos/nixpkgs/nixpkgs-23.05-darwin
# nix build ./examples/3-cross-compiling#
# --override-input cargo2nix github:cargo2nix/cargo2nix?rev=$GITHUB_SHA \
# --override-input nixpkgs github:nixos/nixpkgs/nixpkgs-23.05-darwin
nix build ./examples/4-independent-packaging# \
--override-input cargo2nix github:cargo2nix/cargo2nix?rev=$GITHUB_SHA \
--override-input nixpkgs github:nixos/nixpkgs/nixpkgs-23.05-darwin
fi
- name: use dev shell
# enter the shell with no environment paths and verify that toolchain is available
run: nix develop --ignore-environment --command "rustc" "--version"