8080 name : debian-latest
8181 path : release
8282
83+ build-f39 :
84+ name : Build Fedora 39 package
85+ runs-on : ubuntu-latest
86+ container :
87+ image : registry.fedoraproject.org/fedora:39
88+ options : --security-opt seccomp=unconfined
89+ steps :
90+ - name : Checkout code
91+ uses : actions/checkout@v3
92+
93+ - name : Install build dependencies
94+ run : |
95+ dnf distro-sync -y
96+ dnf install -y make rpmdevtools rpm-sign 'dnf-command(builddep)'
97+ dnf builddep -y pkg/fedora/libwacom-surface.spec
98+
99+ - name : Build package
100+ run : |
101+ cd pkg/fedora
102+
103+ # Build the .rpm packages
104+ ./makerpm
105+
106+ - name : Sign packages
107+ env :
108+ GPG_KEY_ID : 56C464BAAC421453
109+ GPG_KEY : ${{ secrets.LINUX_SURFACE_GPG_KEY }}
110+ run : |
111+ cd pkg/fedora/out
112+
113+ # import GPG key
114+ echo "$GPG_KEY" | base64 -d | gpg --import --no-tty --batch --yes
115+
116+ # sign package
117+ cd noarch
118+ rpm --resign *.rpm --define "_gpg_name $GPG_KEY_ID"
119+
120+ cd ..
121+
122+ cd x86_64
123+ rpm --resign *.rpm --define "_gpg_name $GPG_KEY_ID"
124+
125+ - name : Prepare artifacts
126+ run : |
127+ cd pkg/fedora
128+ mkdir release
129+
130+ cp out/noarch/* release/
131+ cp out/x86_64/* release/
132+
133+ rm release/libwacom-surface-devel-*
134+
135+ - name : Upload artifacts
136+ uses : actions/upload-artifact@v3
137+ with :
138+ name : fedora-39-latest
139+ path : pkg/fedora/release
140+
141+
83142 build-f38 :
84143 name : Build Fedora 38 package
85144 runs-on : ubuntu-latest
@@ -198,7 +257,7 @@ jobs:
198257
199258 release :
200259 name : Publish release
201- needs : [build-deb, build-f38, build-f37]
260+ needs : [build-deb, build-f39, build- f38, build-f37]
202261 runs-on : ubuntu-latest
203262 steps :
204263 - name : Download Debian artifacts
@@ -207,6 +266,12 @@ jobs:
207266 name : debian-latest
208267 path : debian-latest
209268
269+ - name : Download Fedora 39 artifacts
270+ uses : actions/download-artifact@v3
271+ with :
272+ name : fedora-39-latest
273+ path : fedora-39-latest
274+
210275 - name : Download Fedora 38 artifacts
211276 uses : actions/download-artifact@v3
212277 with :
@@ -280,6 +345,59 @@ jobs:
280345 git commit -m "Update Debian libwacom"
281346 git push --set-upstream origin "${update_branch}"
282347
348+ repo-f39 :
349+ name : Update Fedora 39 package repository
350+ needs : [release]
351+ runs-on : ubuntu-latest
352+ container :
353+ image : registry.fedoraproject.org/fedora:39
354+ options : --security-opt seccomp=unconfined
355+ steps :
356+ - name : Install dependencies
357+ run : |
358+ dnf install -y git findutils
359+
360+ - name : Download artifacts
361+ uses : actions/download-artifact@v3
362+ with :
363+ name : fedora-39-latest
364+ path : fedora-39-latest
365+
366+ - name : Update repository
367+ env :
368+ SURFACEBOT_TOKEN : ${{ secrets.LINUX_SURFACE_BOT_TOKEN }}
369+ BRANCH_STAGING : u/staging
370+ GIT_REF : ${{ github.ref }}
371+ run : |
372+ repo="https://surfacebot:${SURFACEBOT_TOKEN}@github.com/linux-surface/repo.git"
373+
374+ # clone package repository
375+ git clone -b "${BRANCH_STAGING}" "${repo}" repo
376+
377+ # copy packages
378+ cp fedora-39-latest/* repo/fedora/f39
379+ cd repo/fedora/f39
380+
381+ # parse git tag from ref
382+ GIT_TAG=$(echo $GIT_REF | sed 's|^refs/tags/||g')
383+
384+ # convert packages into references
385+ for pkg in $(find . -name '*.rpm'); do
386+ echo "libwacom-surface:$GIT_TAG/$(basename $pkg)" > $pkg.blob
387+ rm $pkg
388+ done
389+
390+ # set git identity
391+ git config --global user.email "[email protected] " 392+ git config --global user.name "surfacebot"
393+
394+ # commit and push
395+ update_branch="${BRANCH_STAGING}-$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)"
396+ git checkout -b "${update_branch}"
397+ git add .
398+ git commit -m "Update Fedora 39 libwacom"
399+ git push --set-upstream origin "${update_branch}"
400+
283401 repo-f38 :
284402 name : Update Fedora 38 package repository
285403 needs : [release]
0 commit comments