@@ -224,11 +224,56 @@ jobs:
224
224
name : fedora-41-latest
225
225
path : pkg/fedora/out/x86_64
226
226
227
+ build-f42 :
228
+ if : github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/')
229
+
230
+ name : Build Fedora 42 package
231
+ runs-on : ubuntu-latest
232
+ needs : [lint, test]
233
+ container :
234
+ image : registry.fedoraproject.org/fedora:42
235
+ options : --security-opt seccomp=unconfined
236
+
237
+ steps :
238
+ - name : Checkout code
239
+ uses : actions/checkout@v4
240
+
241
+ - name : Install build dependencies
242
+ run : |
243
+ dnf distro-sync -y
244
+ dnf install -y rpmdevtools rpm-sign 'dnf-command(builddep)'
245
+ dnf builddep -y pkg/fedora/surface-control.spec
246
+
247
+ - name : Build package
248
+ run : |
249
+ cd pkg/fedora
250
+ # Build the .rpm packages
251
+ ./makerpm
252
+
253
+ - name : Sign packages
254
+ env :
255
+ GPG_KEY_ID : 56C464BAAC421453
256
+ GPG_KEY : ${{ secrets.LINUX_SURFACE_GPG_KEY }}
257
+ run : |
258
+ cd pkg/fedora/out/x86_64
259
+
260
+ # import GPG key
261
+ echo "$GPG_KEY" | base64 -d | gpg --import --no-tty --batch --yes
262
+
263
+ # sign package
264
+ rpm --resign *.rpm --define "_gpg_name $GPG_KEY_ID"
265
+
266
+ - name : Upload artifacts
267
+ uses : actions/upload-artifact@v4
268
+ with :
269
+ name : fedora-42-latest
270
+ path : pkg/fedora/out/x86_64
271
+
227
272
release :
228
273
if : github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/')
229
274
230
275
name : Publish release
231
- needs : [build-bin, build-deb, build-f40, build-f41]
276
+ needs : [build-bin, build-deb, build-f40, build-f41, build-f42 ]
232
277
runs-on : ubuntu-latest
233
278
234
279
steps :
@@ -256,6 +301,12 @@ jobs:
256
301
name : fedora-41-latest
257
302
path : fedora-41-latest
258
303
304
+ - name : Download Fedora 42 artifacts
305
+ uses : actions/download-artifact@v4
306
+ with :
307
+ name : fedora-42-latest
308
+ path : fedora-42-latest
309
+
259
310
- name : Upload assets
260
311
uses : svenstaro/upload-release-action@v2
261
312
with :
@@ -422,3 +473,56 @@ jobs:
422
473
git add .
423
474
git commit -m "Update Fedora 41 surface-control"
424
475
git push --set-upstream origin "${update_branch}"
476
+
477
+ repo-f42 :
478
+ name : Update Fedora 42 package repository
479
+ needs : [release]
480
+ runs-on : ubuntu-latest
481
+ container :
482
+ image : registry.fedoraproject.org/fedora:42
483
+ options : --security-opt seccomp=unconfined
484
+ steps :
485
+ - name : Install dependencies
486
+ run : |
487
+ dnf install -y git findutils
488
+
489
+ - name : Download artifacts
490
+ uses : actions/download-artifact@v4
491
+ with :
492
+ name : fedora-42-latest
493
+ path : fedora-42-latest
494
+
495
+ - name : Update repository
496
+ env :
497
+ SURFACEBOT_TOKEN : ${{ secrets.LINUX_SURFACE_BOT_TOKEN }}
498
+ BRANCH_STAGING : u/staging
499
+ GIT_REF : ${{ github.ref }}
500
+ run : |
501
+ repo="https://surfacebot:${SURFACEBOT_TOKEN}@github.com/linux-surface/repo.git"
502
+
503
+ # clone package repository
504
+ git clone -b "${BRANCH_STAGING}" "${repo}" repo
505
+
506
+ # copy packages
507
+ cp fedora-42-latest/* repo/fedora/f42
508
+ cd repo/fedora/f42
509
+
510
+ # parse git tag from ref
511
+ GIT_TAG=$(echo $GIT_REF | sed 's|^refs/tags/||g')
512
+
513
+ # convert packages into references
514
+ for pkg in $(find . -name '*.rpm'); do
515
+ echo "surface-control:$GIT_TAG/$(basename $pkg)" > $pkg.blob
516
+ rm $pkg
517
+ done
518
+
519
+ # set git identity
520
+ git config --global user.email "[email protected] "
521
+ git config --global user.name "surfacebot"
522
+
523
+ # commit and push
524
+ update_branch="${BRANCH_STAGING}-$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)"
525
+ git checkout -b "${update_branch}"
526
+ git add .
527
+ git commit -m "Update Fedora 42 surface-control"
528
+ git push --set-upstream origin "${update_branch}"
0 commit comments