-
-
Notifications
You must be signed in to change notification settings - Fork 503
142 lines (142 loc) · 7.34 KB
/
dietpi-build.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
138
139
140
141
142
name: DietPi-Build
on:
workflow_dispatch:
inputs:
buildargs:
description: 'DietPi-Build arguments'
required: true
concurrency:
group: ${{ github.workflow }}-${{ github.event.inputs.buildargs }}
cancel-in-progress: true
permissions: {}
jobs:
prep:
outputs:
buildargs: ${{ steps.buildargs.outputs.buildargs }}
# https://github.com/actions/runner-images
runs-on: ubuntu-24.04
steps:
- id: buildargs
run: |
if [ "${{ github.event.inputs.buildargs }}" = 'all' ]
then
echo buildargs=[\
'"-m 0 -a 1 -d 6 -e all", "-m 0 -a 2 -d 6 -e all", "-m 0 -a 3 -d 6 -e all", '\
'"-m 0 -a 1 -d 7 -e all", "-m 0 -a 2 -d 7 -e all", "-m 0 -a 3 -d 7 -e all", '\
'"-m 0 -a 1 -d 8 -e all", "-m 0 -a 2 -d 8 -e all", "-m 0 -a 3 -d 8 -e all", '\
'"-m 1 -d 7 -e all", "-m 1 -d 8 -e all", '\
'"-m 2 -d 7 -e all", "-m 2 -d 8 -e all", '\
'"-m 4 -d 7 -e all", "-m 4 -d 8 -e all", '\
'"-m 5 -d 7 -e all", "-m 5 -d 8 -e all", '\
'"-m 10 -d 6", "-m 10 -d 7", "-m 10 -d 8", '\
'"-m 11 -d 6", "-m 11 -d 7", "-m 11 -d 8", '\
'"-m 12 -d 6", "-m 12 -d 7", "-m 12 -d 8", '\
'"-m 15 -d 6", "-m 15 -d 7", "-m 15 -d 8", '\
'"-m 16 -d 6", "-m 16 -d 7", "-m 16 -d 8", '\
'"-m 20 -d 6 -v all", "-m 20 -d 7 -v all", "-m 20 -d 8 -v all", '\
'"-m 21 -d 6", "-m 21 -d 7", "-m 21 -d 8", '\
'"-m 21 -d 6 -i", "-m 21 -d 7 -i", "-m 21 -d 8 -i", '\
'"-m 21 -d 6 -p gpt", "-m 21 -d 7 -p gpt", "-m 21 -d 8 -p gpt", '\
'"-m 40 -d 6", "-m 40 -d 7", "-m 40 -d 8", '\
'"-m 42 -d 6", "-m 42 -d 7", "-m 42 -d 8", '\
'"-m 43 -d 6", "-m 43 -d 7", "-m 43 -d 8", '\
'"-m 44 -d 6", "-m 44 -d 7", "-m 44 -d 8", '\
'"-m 45 -d 6", "-m 45 -d 7", "-m 45 -d 8", '\
'"-m 46 -d 6", "-m 46 -d 7", "-m 46 -d 8", '\
'"-m 47 -d 6", "-m 47 -d 7", "-m 47 -d 8", '\
'"-m 48 -d 6", "-m 48 -d 7", "-m 48 -d 8", '\
'"-m 49.1 -d 6", "-m 49.1 -d 7", "-m 49.1 -d 8", '\
'"-m 49.2 -d 6", "-m 49.2 -d 7", "-m 49.2 -d 8", '\
'"-m 49.3 -d 6", "-m 49.3 -d 7", "-m 49.3 -d 8", '\
'"-m 52 -d 6", "-m 52 -d 7", "-m 52 -d 8", '\
'"-m 54 -d 6", "-m 54 -d 7", "-m 54 -d 8", '\
'"-m 55 -d 6", "-m 55 -d 7", "-m 55 -d 8", '\
'"-m 56 -d 6", "-m 56 -d 7", "-m 56 -d 8", '\
'"-m 57 -d 6", "-m 57 -d 7", "-m 57 -d 8", '\
'"-m 58 -d 6", "-m 58 -d 7", "-m 58 -d 8", '\
'"-m 59 -d 6", "-m 59 -d 7", "-m 59 -d 8", '\
'"-m 60 -d 6", "-m 60 -d 7", "-m 60 -d 8", '\
'"-m 61 -d 6", '\
'"-m 62.1 -d 6", "-m 62.2 -d 6", '\
'"-m 63 -d 6", "-m 63 -d 7", "-m 63 -d 8", '\
'"-m 64 -d 6", "-m 64 -d 7", "-m 64 -d 8", '\
'"-m 65.1 -d 6", "-m 65.1 -d 7", "-m 65.1 -d 8", '\
'"-m 65.2 -d 6", "-m 65.2 -d 7", "-m 65.2 -d 8", '\
'"-m 66 -d 6", "-m 66 -d 7", "-m 66 -d 8", '\
'"-m 67 -d 6", "-m 67 -d 7", "-m 67 -d 8", '\
'"-m 68.1 -d 6", "-m 68.1 -d 7", "-m 68.1 -d 8", '\
'"-m 68.2 -d 6", "-m 68.2 -d 7", "-m 68.2 -d 8", '\
'"-m 68.3 -d 6", "-m 68.3 -d 7", "-m 68.3 -d 8", '\
'"-m 70 -d 6 -e all", '\
'"-m 72.1 -d 6", "-m 72.1 -d 7", "-m 72.1 -d 8", '\
'"-m 72.2 -d 6", "-m 72.2 -d 7", "-m 72.2 -d 8", '\
'"-m 72.3 -d 6", "-m 72.3 -d 7", "-m 72.3 -d 8", '\
'"-m 73 -d 6", "-m 73 -d 7", "-m 73 -d 8", '\
'"-m 74 -d 6", "-m 74 -d 7", "-m 74 -d 8", '\
'"-m 75 -a 1 -d 6", "-m 75 -a 2 -d 6", "-m 75 -a 3 -d 6", "-m 75 -a 10 -d 6", '\
'"-m 75 -a 1 -d 7", "-m 75 -a 2 -d 7", "-m 75 -a 3 -d 7", "-m 75 -a 10 -d 7", '\
'"-m 75 -a 1 -d 8", "-m 75 -a 2 -d 8", "-m 75 -a 3 -d 8", "-m 75 -a 10 -d 8", "-m 75 -a 11 -d 8", '\
'"-m 76.1 -d 6", "-m 76.1 -d 7", "-m 76.1 -d 8", '\
'"-m 76.2 -d 6", "-m 76.2 -d 7", "-m 76.2 -d 8", '\
'"-m 77 -d 6", "-m 77 -d 7", "-m 77 -d 8", '\
'"-m 78 -d 6", "-m 78 -d 7", "-m 78 -d 8", '\
'"-m 79.1 -d 6", "-m 79.1 -d 7", "-m 79.1 -d 8", '\
'"-m 79.2 -d 6", "-m 79.2 -d 7", "-m 79.2 -d 8", '\
'"-m 79.3 -d 6", "-m 79.3 -d 7", "-m 79.3 -d 8", '\
'"-m 80 -d 6", "-m 80 -d 7", "-m 80 -d 8", '\
'"-m 81 -d 8", '\
'"-m 82 -d 6", "-m 82 -d 7", "-m 82 -d 8", '\
'"-m 83 -d 6", "-m 83 -d 7", "-m 83 -d 8", '\
'"-m 84 -d 8", '\
'"-m 85 -d 6", "-m 85 -d 7", "-m 85 -d 8", '\
'"-m 86 -d 6", "-m 86 -d 7", "-m 86 -d 8", '\
'"-m 87 -d 6", "-m 87 -d 7", "-m 87 -d 8", '\
'"-m 88 -d 6", "-m 88 -d 7", "-m 88 -d 8", '\
'"-m 89 -d 6", "-m 89 -d 7", "-m 89 -d 8", '\
'"-m 90 -d 6", "-m 90 -d 7", "-m 90 -d 8", '\
'"-m 91 -d 6", "-m 91 -d 7", "-m 91 -d 8", '\
'"-m 92 -d 6", "-m 92 -d 7", "-m 92 -d 8", '\
'"-m 93 -d 6", "-m 93 -d 7", "-m 93 -d 8"]' >> "$GITHUB_OUTPUT"
elif [ "${{ github.event.inputs.buildargs }}" = 'quartz64' ]
then
echo buildargs=[\
'"-m 49.1 -d 6", "-m 49.1 -d 7", "-m 49.1 -d 8", '\
'"-m 49.2 -d 6", "-m 49.2 -d 7", "-m 49.2 -d 8", '\
'"-m 49.3 -d 6", "-m 49.3 -d 7", "-m 49.3 -d 8"]' >> "$GITHUB_OUTPUT"
elif [ "${{ github.event.inputs.buildargs }}" = 'rpi' ]
then
echo buildargs=[\
'"-m 0 -a 1 -d 6 -e all", "-m 0 -a 2 -d 6 -e all", "-m 0 -a 3 -d 6 -e all", '\
'"-m 0 -a 1 -d 7 -e all", "-m 0 -a 2 -d 7 -e all", "-m 0 -a 3 -d 7 -e all", '\
'"-m 0 -a 1 -d 8 -e all", "-m 0 -a 2 -d 8 -e all", "-m 0 -a 3 -d 8 -e all"]' >> "$GITHUB_OUTPUT"
else
echo buildargs='["${{ github.event.inputs.buildargs }}"]' >> "$GITHUB_OUTPUT"
fi
build:
needs: prep
strategy:
matrix:
buildargs: ${{ fromJson(needs.prep.outputs.buildargs) }}
fail-fast: false
name: "Build: ${{ matrix.buildargs }}"
# aarch64 build in QEMU-emulated Bullseye containers on Ubuntu Noble hosts fail:
# Processing triggers for libc-bin (2.31-13+deb11u10) ...
# qemu: uncaught target signal 11 (Segmentation fault) - core dumped
runs-on: ${{ contains(matrix.buildargs, '-d 6') && 'ubuntu-22.04' || 'ubuntu-24.04' }}
steps:
- name: Generate upload script
run: |
sudo dash -c 'umask 377; echo '\''${{ secrets.KNOWN_HOSTS }}'\'' > /root/.ssh/known_hosts; echo '\''${{ secrets.SSH_KEY }}'\'' > /root/.ssh/id_ed25519; > upload.sh; chmod 0711 upload.sh'
echo '#!/bin/dash
set -e
urls="\"https://dietpi.com/downloads/images/testing/\""
for i in "$@"; do urls="$urls,\"https://dietpi.com/downloads/images/testing/${i##*/}\""; done
IFS=,
curl -T "{$*}" --key /root/.ssh/id_ed25519 '\''${{ secrets.UPLOAD_URL }}testing/'\''
curl -H '\''Authorization: Bearer ${{ secrets.CF_TOKEN }}'\'' -H '\''Content-Type: application/json'\'' -d "{\"files\":[$urls]}" '\''https://api.cloudflare.com/client/v4/zones/${{ secrets.CF_ZONE }}/purge_cache'\''
echo' | sudo tee upload.sh > /dev/null
sudo gpg --batch --import << _EOF_
${{ secrets.GPG_KEY }}
_EOF_
- name: Run DietPi-Build
run: sudo bash -c "G_GITOWNER=$GITHUB_REPOSITORY_OWNER G_GITBRANCH=$GITHUB_REF_NAME; $(curl -sSf "https://raw.githubusercontent.com/$GITHUB_REPOSITORY_OWNER/DietPi/$GITHUB_REF_NAME/.build/images/dietpi-build")" 'DietPi-Build' ${{ matrix.buildargs }} --sign '${{ secrets.GPG_PASS }}' --upload-script 'upload.sh'