Skip to content

Commit f30d6a5

Browse files
authored
Merge pull request #1224 from vvoland/extract-distros
Extract distros
2 parents 42f1151 + 4348b58 commit f30d6a5

File tree

2 files changed

+158
-14
lines changed

2 files changed

+158
-14
lines changed

.github/workflows/ci.yml

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -24,24 +24,27 @@ on:
2424
pull_request:
2525

2626
jobs:
27-
build:
27+
generate-matrix:
2828
runs-on: ubuntu-24.04
29+
outputs:
30+
targets: ${{ steps.get-targets.outputs.targets }}
31+
steps:
32+
- name: Checkout
33+
uses: actions/checkout@v4
34+
- name: Get targets
35+
id: get-targets
36+
run: |
37+
echo "targets=$(jq -c '[to_entries[] | .key as $distro | .value.arches[] | {distro: $distro, arch: .}]' distros.json)" >> $GITHUB_OUTPUT
38+
39+
build:
40+
needs:
41+
- generate-matrix
42+
runs-on: ${{ matrix.target.arch != 'amd64' && 'ubuntu-24.04-arm' || 'ubuntu-24.04' }}
2943
timeout-minutes: 60 # guardrails timeout for the whole job
3044
strategy:
3145
fail-fast: false
3246
matrix:
33-
target:
34-
- debian-bullseye
35-
- debian-bookworm
36-
- debian-trixie
37-
- ubuntu-jammy
38-
- ubuntu-noble
39-
- ubuntu-oracular
40-
- ubuntu-plucky
41-
- fedora-41
42-
- fedora-42
43-
- centos-9
44-
- centos-10
47+
target: ${{ fromJson(needs.generate-matrix.outputs.targets) }}
4548
steps:
4649
-
4750
name: Checkout
@@ -52,4 +55,4 @@ jobs:
5255
-
5356
name: Build
5457
run: |
55-
make ${{ matrix.target }}
58+
make ARCH=${{ matrix.target.arch }} ${{ matrix.target.distro }}

distros.json

Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
{
2+
"centos-9": {
3+
"image": "quay.io/centos/centos:stream9",
4+
"arches": [
5+
"amd64",
6+
"aarch64"
7+
],
8+
"description": "CentOS Stream 9",
9+
"end_of_life": "2027"
10+
},
11+
"centos-10": {
12+
"image": "quay.io/centos/centos:stream10",
13+
"arches": [
14+
"amd64",
15+
"aarch64"
16+
],
17+
"description": "CentOS Stream 10",
18+
"end_of_life": "2030"
19+
},
20+
"debian-bullseye": {
21+
"image": "debian:bullseye",
22+
"arches": [
23+
"amd64",
24+
"aarch64",
25+
"armhf"
26+
],
27+
"description": "Debian 11 (oldstable)"
28+
},
29+
"debian-bookworm": {
30+
"image": "debian:bookworm",
31+
"arches": [
32+
"amd64",
33+
"aarch64",
34+
"armhf"
35+
],
36+
"description": "Debian 12 (stable)"
37+
},
38+
"debian-trixie": {
39+
"image": "debian:trixie",
40+
"arches": [
41+
"amd64",
42+
"aarch64",
43+
"armhf"
44+
],
45+
"description": "Debian 13 (Next stable)"
46+
},
47+
"fedora-41": {
48+
"image": "fedora:41",
49+
"arches": [
50+
"amd64",
51+
"aarch64"
52+
],
53+
"end_of_life": "November, 2025"
54+
},
55+
"fedora-42": {
56+
"image": "fedora:42",
57+
"arches": [
58+
"amd64",
59+
"aarch64"
60+
],
61+
"end_of_life": "November, 2025"
62+
},
63+
"raspbian-bullseye": {
64+
"image": "balenalib/rpi-raspbian:bullseye",
65+
"arches": [
66+
"armhf"
67+
],
68+
"description": "Debian/Raspbian 11 (stable)"
69+
},
70+
"raspbian-bookworm": {
71+
"image": "balenalib/rpi-raspbian:bookworm",
72+
"arches": [
73+
"armhf"
74+
],
75+
"description": "Debian/Raspbian 12 (next stable)"
76+
},
77+
"ubuntu-jammy": {
78+
"image": "ubuntu:jammy",
79+
"arches": [
80+
"amd64",
81+
"aarch64",
82+
"armhf"
83+
],
84+
"description": "Ubuntu 22.04 LTS",
85+
"end_of_life": "04-2032",
86+
"end_of_support": "04-2027"
87+
},
88+
"ubuntu-noble": {
89+
"image": "ubuntu:noble",
90+
"arches": [
91+
"amd64",
92+
"aarch64",
93+
"armhf"
94+
],
95+
"description": "Ubuntu 24.04 LTS",
96+
"end_of_life": "04-2034",
97+
"end_of_support": "06-2029"
98+
},
99+
"ubuntu-oracular": {
100+
"image": "ubuntu:oracular",
101+
"arches": [
102+
"amd64",
103+
"aarch64",
104+
"armhf"
105+
],
106+
"description": "Ubuntu 24.10",
107+
"end_of_life": "07-2025",
108+
"end_of_support": "07-2025"
109+
},
110+
"ubuntu-plucky": {
111+
"image": "ubuntu:plucky",
112+
"arches": [
113+
"amd64",
114+
"aarch64",
115+
"armhf"
116+
],
117+
"description": "Ubuntu 25.04",
118+
"end_of_life": "01-2026",
119+
"end_of_support": "01-2026"
120+
},
121+
"rhel-8": {
122+
"image": "registry.access.redhat.com/ubi8/ubi",
123+
"arches": [
124+
"amd64",
125+
"aarch64"
126+
],
127+
"description": "Red Hat Enterprise Linux 8",
128+
"end_of_life": "05-2029",
129+
"end_of_support": "05-2024"
130+
},
131+
"rhel-9": {
132+
"image": "registry.access.redhat.com/ubi9/ubi",
133+
"arches": [
134+
"amd64",
135+
"aarch64"
136+
],
137+
"description": "Red Hat Enterprise Linux 9",
138+
"end_of_life": "05-2032",
139+
"end_of_support": "05-2027"
140+
}
141+
}

0 commit comments

Comments
 (0)