-
Notifications
You must be signed in to change notification settings - Fork 2
130 lines (112 loc) · 4 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
name: Build and test flake outputs
on:
push:
workflow_dispatch:
workflow_call:
inputs:
branch:
description: Branch name to build on
default: ""
required: false
type: string
secrets:
CACHIX_ACTIVATE_TOKEN:
CACHIX_AUTH_TOKEN:
required: true
jobs:
nix:
runs-on: "${{ matrix.system == 'aarch64' && 'self-hosted' || 'ubuntu-latest' }}"
strategy:
fail-fast: false
matrix:
system:
- aarch64
- x86_64
nix-command:
- fmt -- --check
- eval .#apps.$_system.nixos-shell.program
- eval .#apps.$_system.setup.program
include:
- nix-command: develop .#jdk8 --profile result
system: x86_64
- nix-command: develop .#jdk11 --profile result
system: x86_64
- nix-command: develop .#jdk17 --profile result
system: x86_64
- nix-command: develop .#php74 --profile result
system: x86_64
- nix-command: develop .#php74-composer1 --profile result
system: x86_64
- nix-command: develop .#php80 --profile result
system: x86_64
- nix-command: develop .#php81 --profile result
system: x86_64
- nix-command: build .#homeConfigurations."tobias@gamer".activationPackage
system: x86_64
- nix-command: build .#nixOnDroidConfigurations.pixel7a.activationPackage --impure
system: aarch64
- nix-command: build .#nixosConfigurations.argon.config.system.build.toplevel
system: aarch64
deploy-agent: argon
- nix-command: build .#nixosConfigurations.krypton.config.system.build.toplevel
system: x86_64
deploy-agent: krypton
- nix-command: build .#nixosConfigurations.neon.config.system.build.toplevel
system: x86_64
deploy-agent: neon
deploy-args: --async
- nix-command: build .#nixosConfigurations.xenon.config.system.build.toplevel
system: aarch64
deploy-agent: xenon
- nix-command: build .#packages.$_system.rpi-firmware
system: aarch64
- nix-command: build .#packages.$_system.rpi-image
system: aarch64
- nix-command: build .#packages.$_system.installer-image
system: x86_64
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
ref: ${{ inputs.branch }}
- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@main
continue-on-error: true
if: matrix.system == 'x86_64'
with:
tool-cache: true
- name: Install nix
uses: cachix/install-nix-action@v27
if: matrix.system == 'x86_64'
with:
extra_nix_config: |
keep-going = true
- name: Setup cachix (gerschtli)
uses: cachix/cachix-action@v15
with:
name: gerschtli
authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
- name: Setup cachix (nix-on-droid)
uses: cachix/cachix-action@v15
with:
name: nix-on-droid
useDaemon: false
- name: Build command
env:
_system: ${{ matrix.system }}-linux
run: nix ${{ matrix.nix-command }}
- name: Remove result symlink
if: always()
run: rm --force result
- name: Deploy cachix-agent spec
if: github.ref == 'refs/heads/master' && inputs.branch == '' && matrix.deploy-agent
env:
CACHIX_ACTIVATE_TOKEN: ${{ secrets.CACHIX_ACTIVATE_TOKEN }}
run: |
echo "::group::Build spec"
spec="$(nix build --print-out-paths ".#cachix-deploy-spec-${{ matrix.deploy-agent }}")"
echo "::group::Upload spec"
cachix push gerschtli "$spec"
echo "::group::Activate deployment"
cachix deploy activate --agent "${{ matrix.deploy-agent }}" ${{ matrix.deploy-args }} "$spec"
# vim: set sw=2: