Skip to content

Commit a39d498

Browse files
committed
Merge master
2 parents 0e870a5 + 856a56b commit a39d498

File tree

10 files changed

+992
-200
lines changed

10 files changed

+992
-200
lines changed

.github/workflows/docker.yaml

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,30 @@ env:
1616
ACTIONS_ALLOW_UNSECURE_COMMANDS: true
1717

1818
jobs:
19-
debian-ubuntu:
19+
test-go:
20+
name: Run go test on GitHub runner
21+
runs-on: ubuntu-latest
22+
23+
steps:
24+
- name: Checkout
25+
uses: actions/checkout@v4
26+
27+
- name: Set up Go 1.25
28+
uses: actions/setup-go@v5
29+
with:
30+
go-version: '1.25.x'
31+
cache: false
32+
33+
- name: Set up Docker
34+
uses: docker/setup-docker-action@v4
35+
36+
- name: Run tests
37+
run: make test
38+
39+
40+
debian_ubuntu:
2041
name: Build Debian and Ubuntu based OS images
42+
needs: test-go
2143
runs-on: self-hosted
2244

2345
strategy:
@@ -66,7 +88,9 @@ jobs:
6688
args: --build-tags integration --timeout=3m
6789

6890
- name: build install
69-
run: make
91+
run: |
92+
make clean
93+
make binary
7094
7195
- name: Prepare build environment
7296
shell: bash
@@ -216,7 +240,9 @@ jobs:
216240

217241
almalinux:
218242
name: Build Almalinux based OS image
243+
needs: test-go
219244
runs-on: self-hosted
245+
220246
steps:
221247
- name: Checkout
222248
uses: actions/checkout@v4
@@ -250,7 +276,9 @@ jobs:
250276
[ "${GITHUB_EVENT_NAME}" == 'push' ] && echo "SEMVER_PATCH=" >> $GITHUB_ENV || true
251277
252278
- name: build install
253-
run: make
279+
run: |
280+
make clean
281+
make binary
254282
255283
- name: Prepare build environment
256284
shell: bash

.github/workflows/release.yaml

Lines changed: 15 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -38,47 +38,21 @@ jobs:
3838
go-version: '1.25.x'
3939
cache: false
4040

41-
- run: |
42-
# copy supported images (entire stable folder cannot be copied as a whole because it contains obsolete images as well)
43-
gsutil -m cp -r gs://$GCS_BUCKET/metal-os/stable/almalinux/9 gs://$GCS_BUCKET/metal-os/${GITHUB_REF##*/}/almalinux/9
44-
gsutil -m cp -r gs://$GCS_BUCKET/metal-os/stable/debian/13 gs://$GCS_BUCKET/metal-os/${GITHUB_REF##*/}/debian/13
45-
gsutil -m cp -r gs://$GCS_BUCKET/metal-os/stable/debian-nvidia/13 gs://$GCS_BUCKET/metal-os/${GITHUB_REF##*/}/debian-nvidia/13
46-
gsutil -m cp -r gs://$GCS_BUCKET/metal-os/stable/firewall/3.0-ubuntu gs://$GCS_BUCKET/metal-os/${GITHUB_REF##*/}/firewall/3.0-ubuntu
47-
gsutil -m cp -r gs://$GCS_BUCKET/metal-os/stable/ubuntu/24.04 gs://$GCS_BUCKET/metal-os/${GITHUB_REF##*/}/ubuntu/24.04
48-
gsutil -m cp -r gs://$GCS_BUCKET/metal-os/stable/capms-ubuntu/ gs://$GCS_BUCKET/metal-os/${GITHUB_REF##*/}/capms-ubuntu
49-
50-
docker pull ghcr.io/metal-stack/debian:13-stable
51-
docker tag ghcr.io/metal-stack/debian:13-stable ghcr.io/metal-stack/debian:13
52-
docker tag ghcr.io/metal-stack/debian:13-stable ghcr.io/metal-stack/debian:latest
53-
docker push ghcr.io/metal-stack/debian:13
54-
55-
docker pull ghcr.io/metal-stack/debian-nvidia:13-stable
56-
docker tag ghcr.io/metal-stack/debian-nvidia:13-stable ghcr.io/metal-stack/debian-nvidia:13
57-
docker tag ghcr.io/metal-stack/debian-nvidia:13-stable ghcr.io/metal-stack/debian-nvidia:latest
58-
docker push ghcr.io/metal-stack/debian-nvidia:13
59-
60-
docker pull ghcr.io/metal-stack/ubuntu:24.04-stable
61-
docker tag ghcr.io/metal-stack/ubuntu:24.04-stable ghcr.io/metal-stack/ubuntu:24.04
62-
docker tag ghcr.io/metal-stack/ubuntu:24.04-stable ghcr.io/metal-stack/ubuntu:latest
63-
docker push ghcr.io/metal-stack/ubuntu:24.04
64-
65-
# TODO: needs to be solved for capi images in order not to have to enter every release here
66-
# docker pull ghcr.io/metal-stack/capms-ubuntu:1.32.9-stable
67-
# docker tag ghcr.io/metal-stack/capms-ubuntu:1.32.9-stable ghcr.io/metal-stack/capms-ubuntu:1.32.9
68-
# docker tag ghcr.io/metal-stack/capms-ubuntu:1.32.9-stable ghcr.io/metal-stack/capms-ubuntu:latest
69-
# docker push ghcr.io/metal-stack/capms-ubuntu:1.32.9
70-
71-
docker pull ghcr.io/metal-stack/almalinux:9-stable
72-
docker tag ghcr.io/metal-stack/almalinux:9-stable ghcr.io/metal-stack/almalinux:9
73-
docker tag ghcr.io/metal-stack/almalinux:9-stable ghcr.io/metal-stack/almalinux:latest
74-
docker push ghcr.io/metal-stack/almalinux:9
75-
76-
docker pull ghcr.io/metal-stack/firewall:3.0-ubuntu-stable
77-
docker tag ghcr.io/metal-stack/firewall:3.0-ubuntu-stable ghcr.io/metal-stack/firewall:3.0-ubuntu
78-
docker tag ghcr.io/metal-stack/firewall:3.0-ubuntu-stable ghcr.io/metal-stack/firewall:latest
79-
docker push ghcr.io/metal-stack/firewall:3.0-ubuntu
80-
81-
PREFIX=metal-os/${GITHUB_REF##*/} go run ./cmd/tools/generate-table > downloads.md
41+
- run: go run ./cmd/tools/handle-release
42+
env:
43+
FILENAME: downloads.md
44+
GCS_BUCKET: ${{ secrets.GCS_BUCKET }}
45+
TOKEN: ${{ secrets.GITHUB_TOKEN }}
46+
REF_NAME: ${{ github.ref_name }}
47+
DISTRO_VERSIONS: |
48+
[
49+
"ubuntu/24.04",
50+
"capms-ubuntu/1.32.9",
51+
"firewall/3.0-ubuntu",
52+
"debian/13",
53+
"debian-nvidia/13",
54+
"almalinux/9",
55+
]
8256
8357
- name: Update release body
8458
id: update_release

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,6 @@ os-kernel
1111
disk.raw
1212
rootfs
1313
initramfs
14+
downloads.md
1415

1516
!capms/**/bin

Makefile

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ LINKMODE := -extldflags=-static \
1212
-X 'github.com/metal-stack/v.BuildDate=$(BUILDDATE)'
1313

1414

15-
all: clean binary
15+
all: clean test binary
1616

1717
.PHONY: clean
1818
clean:
@@ -32,7 +32,7 @@ clean:
3232
rm -rf bin
3333

3434
.PHONY: binary
35-
binary: test
35+
binary:
3636
GGO_ENABLED=0 \
3737
go build \
3838
-trimpath \
@@ -49,7 +49,7 @@ test:
4949
GO_ENV=testing go test -race -cover ./...
5050

5151
.PHONY: debian
52-
debian: binary
52+
debian: test binary
5353
mkdir -p "images/debian/13"
5454
OS_NAME=debian OUTPUT_FOLDER="" SEMVER_MAJOR_MINOR=13 docker buildx bake --no-cache debian
5555
OS_NAME=debian OUTPUT_FOLDER="" CIS_VERSION=v4.1-4 SEMVER_MAJOR_MINOR=13 ./test.sh
@@ -60,27 +60,27 @@ nvidia:
6060
OS_NAME=nvidia OUTPUT_FOLDER="" SEMVER_MAJOR_MINOR=13 docker buildx bake --no-cache debian-nvidia
6161

6262
.PHONY: ubuntu
63-
ubuntu: binary
63+
ubuntu: test binary
6464
mkdir -p "images/ubuntu/24.04"
6565
OS_NAME=ubuntu OUTPUT_FOLDER="" SEMVER_MAJOR_MINOR=24.04 docker buildx bake --no-cache ubuntu
6666
OS_NAME=ubuntu OUTPUT_FOLDER="" SEMVER_MAJOR_MINOR=24.04 ./test.sh
6767

6868
.PHONY: capms
69-
capms: ubuntu
69+
capms: test ubuntu
7070
KUBE_VERSION=1.32.9 \
7171
KUBE_APT_BRANCH=v1.32 \
7272
SEMVER_MAJOR_MINOR=1.32.9 \
7373
docker buildx bake --no-cache ubuntu-capms
7474
OS_NAME=capms-ubuntu OUTPUT_FOLDER="" SEMVER_MAJOR_MINOR=1.32.9 ./test.sh
7575

7676
.PHONY: firewall
77-
firewall: binary
77+
firewall: test binary
7878
mkdir -p "images/firewall/3.0-ubuntu"
7979
OS_NAME=firewall OUTPUT_FOLDER="" SEMVER_MAJOR_MINOR=3.0-ubuntu docker buildx bake --no-cache ubuntu-firewall
8080
OS_NAME=firewall OUTPUT_FOLDER="" SEMVER_MAJOR_MINOR=3.0-ubuntu ./test.sh
8181

8282
.PHONY: almalinux
83-
almalinux: binary
83+
almalinux: test binary
8484
mkdir -p "images/almalinux/9"
8585
OS_NAME=almalinux OUTPUT_FOLDER="" SEMVER_MAJOR_MINOR=9 docker buildx bake --no-cache almalinux
8686
OS_NAME=almalinux OUTPUT_FOLDER="" SEMVER_MAJOR_MINOR=9 ./test.sh

cmd/tools/generate-table/main.go

Lines changed: 0 additions & 140 deletions
This file was deleted.

cmd/tools/handle-release/README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# handle-release
2+
3+
## Run locally
4+
5+
```bash
6+
FILENAME=downloads.md \
7+
REF_NAME=$(git rev-parse --abbrev-ref HEAD) \
8+
DISTRO_VERSIONS=$'["capms-ubuntu/1.32.9", "ubuntu/24.04"]' \
9+
go run ./cmd/tools/handle-release --dry-run
10+
```

0 commit comments

Comments
 (0)