Skip to content

Commit 51e2114

Browse files
authored
Merge pull request #21 from amoyrtil/fix/ci-review-findings
fix(ci): address CI review findings (#1#6)
2 parents 2b59ac3 + 8c178c4 commit 51e2114

2 files changed

Lines changed: 33 additions & 35 deletions

File tree

.github/workflows/build.yml

Lines changed: 27 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ on:
99
type: string
1010

1111
concurrency:
12-
group: build-${{ github.workflow }}
13-
cancel-in-progress: true
12+
group: build-${{ github.workflow }}-${{ inputs.talos_version }}
13+
cancel-in-progress: false
1414

1515
env:
1616
KERNEL_IMAGE: ghcr.io/${{ github.repository_owner }}/talos-ufs-kernel
@@ -29,7 +29,7 @@ jobs:
2929
kernel_image: ${{ steps.meta.outputs.kernel_image }}
3030
steps:
3131
- name: Checkout
32-
uses: actions/checkout@v7
32+
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
3333

3434
- name: Clone siderolabs/talos
3535
run: |
@@ -63,10 +63,10 @@ jobs:
6363
git -C /tmp/pkgs apply --3way "${{ github.workspace }}/patches/kernel-config.patch"
6464
6565
- name: Set up Docker Buildx
66-
uses: docker/setup-buildx-action@v4
66+
uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4
6767

6868
- name: Log in to GHCR
69-
uses: docker/login-action@v4
69+
uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4
7070
with:
7171
registry: ghcr.io
7272
username: ${{ github.actor }}
@@ -114,7 +114,7 @@ jobs:
114114
installer_image: ${{ steps.meta.outputs.installer_image }}
115115
steps:
116116
- name: Checkout
117-
uses: actions/checkout@v7
117+
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
118118

119119
- name: Set image tags
120120
id: meta
@@ -123,9 +123,18 @@ jobs:
123123
echo "imager_image=${IMAGER_IMAGE}:${TAG}" >> "$GITHUB_OUTPUT"
124124
echo "installer_image=${INSTALLER_IMAGE}:${TAG}" >> "$GITHUB_OUTPUT"
125125
126+
- name: Log in to GHCR
127+
uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4
128+
with:
129+
registry: ghcr.io
130+
username: ${{ github.actor }}
131+
password: ${{ secrets.GITHUB_TOKEN }}
132+
126133
- name: Check if talos images already exist
127134
id: check-talos
128135
run: |
136+
# skopeo reads ~/.docker/config.json, so the GHCR login above lets it
137+
# inspect the project's private packages instead of always missing.
129138
if skopeo inspect "docker://${IMAGER_IMAGE}:${{ inputs.talos_version }}" &>/dev/null && \
130139
skopeo inspect "docker://${INSTALLER_IMAGE}:${{ inputs.talos_version }}" &>/dev/null; then
131140
echo "exists=true" >> "$GITHUB_OUTPUT"
@@ -170,21 +179,14 @@ jobs:
170179
171180
- name: Set up Docker Buildx (with insecure local registry)
172181
if: steps.check-talos.outputs.exists == 'false'
173-
uses: docker/setup-buildx-action@v4
182+
uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4
174183
with:
175184
buildkitd-config-inline: |
176185
[registry."localhost:5000"]
177186
http = true
178187
insecure = true
179188
driver-opts: network=host
180189

181-
- name: Log in to GHCR
182-
uses: docker/login-action@v4
183-
with:
184-
registry: ghcr.io
185-
username: ${{ github.actor }}
186-
password: ${{ secrets.GITHUB_TOKEN }}
187-
188190
- name: Build imager to local registry
189191
if: steps.check-talos.outputs.exists == 'false'
190192
working-directory: /tmp/talos
@@ -267,10 +269,10 @@ jobs:
267269
issues: write
268270
steps:
269271
- name: Checkout
270-
uses: actions/checkout@v7
272+
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
271273

272274
- name: Log in to GHCR
273-
uses: docker/login-action@v4
275+
uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4
274276
with:
275277
registry: ghcr.io
276278
username: ${{ github.actor }}
@@ -290,12 +292,15 @@ jobs:
290292
cd output
291293
sha256sum metal-amd64.iso > metal-amd64.iso.sha256
292294
295+
- name: Verify UFS drivers in ISO
296+
run: |
297+
./scripts/verify-build.sh output/metal-amd64.iso
298+
293299
- name: Create GitHub Release
294300
env:
295301
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
296302
run: |
297303
TAG="${{ inputs.talos_version }}-ufs"
298-
OWNER="${{ github.repository_owner }}"
299304
300305
gh release create "${TAG}" \
301306
--repo "${GITHUB_REPOSITORY}" \
@@ -316,9 +321,9 @@ jobs:
316321
## Container Images
317322
318323
```
319-
ghcr.io/OWNER_PLACEHOLDER/talos-ufs-installer:VERSION_PLACEHOLDER
320-
ghcr.io/OWNER_PLACEHOLDER/talos-ufs-imager:VERSION_PLACEHOLDER
321-
ghcr.io/OWNER_PLACEHOLDER/talos-ufs-kernel:VERSION_PLACEHOLDER
324+
ghcr.io/${{ github.repository_owner }}/talos-ufs-installer:${{ inputs.talos_version }}
325+
ghcr.io/${{ github.repository_owner }}/talos-ufs-imager:${{ inputs.talos_version }}
326+
ghcr.io/${{ github.repository_owner }}/talos-ufs-kernel:${{ inputs.talos_version }}
322327
```
323328
324329
## Installation
@@ -330,14 +335,14 @@ jobs:
330335
```yaml
331336
machine:
332337
install:
333-
image: ghcr.io/OWNER_PLACEHOLDER/talos-ufs-installer:VERSION_PLACEHOLDER
338+
image: ghcr.io/${{ github.repository_owner }}/talos-ufs-installer:${{ inputs.talos_version }}
334339
```
335340
336341
## Custom ISO Generation
337342
338343
```bash
339344
docker run --rm -t -v /dev:/dev --privileged \
340-
ghcr.io/OWNER_PLACEHOLDER/talos-ufs-imager:VERSION_PLACEHOLDER \
345+
ghcr.io/${{ github.repository_owner }}/talos-ufs-imager:${{ inputs.talos_version }} \
341346
metal --system-extension-image <extension-image>
342347
```
343348
@@ -352,12 +357,6 @@ jobs:
352357
output/metal-amd64.iso \
353358
output/metal-amd64.iso.sha256
354359
355-
# Replace placeholders in release notes
356-
gh release edit "${TAG}" \
357-
--repo "${GITHUB_REPOSITORY}" \
358-
--notes "$(gh release view "${TAG}" --repo "${GITHUB_REPOSITORY}" --json body --jq .body | \
359-
sed "s/OWNER_PLACEHOLDER/${OWNER}/g; s/VERSION_PLACEHOLDER/${{ inputs.talos_version }}/g")"
360-
361360
- name: Auto-close patch failure issues
362361
if: success()
363362
env:

.github/workflows/test.yml

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
timeout-minutes: 15
1313
steps:
1414
- name: Checkout
15-
uses: actions/checkout@v7
15+
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
1616

1717
- name: Get latest Talos release tag
1818
id: talos-version
@@ -73,13 +73,12 @@ jobs:
7373
runs-on: ubuntu-latest
7474
timeout-minutes: 360
7575
needs: validate-patches
76-
# Only run kernel build when patch files actually changed
77-
if: |
78-
contains(github.event.pull_request.title, '[full-test]') ||
79-
github.event.pull_request.changed_files > 0
76+
# Full 6h kernel build is opt-in: requires '[full-test]' in the PR title.
77+
# The inner "Check if patches changed" step further skips it unless patches/ changed.
78+
if: contains(github.event.pull_request.title, '[full-test]')
8079
steps:
8180
- name: Checkout
82-
uses: actions/checkout@v7
81+
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
8382
with:
8483
fetch-depth: 0
8584

@@ -129,7 +128,7 @@ jobs:
129128
130129
- name: Set up Docker Buildx
131130
if: steps.changes.outputs.patches_changed == 'true'
132-
uses: docker/setup-buildx-action@v4
131+
uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4
133132

134133
- name: Build kernel (compilation test)
135134
if: steps.changes.outputs.patches_changed == 'true'

0 commit comments

Comments
 (0)