fix: xvfb for headless CI, curl -f + set -euo pipefail in release, fix PAM paths in README

This commit is contained in:
Asger Geel Weirsøe
2026-05-06 12:13:47 +02:00
parent 2ddef2ac81
commit c3bdb09bd3
3 changed files with 15 additions and 9 deletions

View File

@@ -42,20 +42,25 @@ jobs:
tar czf ahfail-linux-x86_64.tar.gz -C dist . tar czf ahfail-linux-x86_64.tar.gz -C dist .
- name: Create Gitea release and upload asset - name: Create Gitea release and upload asset
# Requires a GITEA_TOKEN secret with write:repository scope.
# Create it in repo Settings → Secrets.
env: env:
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
GITEA_URL: https://gitea.weircon.dk GITEA_URL: https://gitea.weircon.dk
REPO: agw/gtk-ahfail REPO: agw/gtk-ahfail
TAG: ${{ github.ref_name }} TAG: ${{ github.ref_name }}
run: | run: |
RELEASE_ID=$(curl -s -X POST \ set -euo pipefail
RELEASE_ID=$(curl -f -X POST \
"${GITEA_URL}/api/v1/repos/${REPO}/releases" \ "${GITEA_URL}/api/v1/repos/${REPO}/releases" \
-H "Authorization: token ${GITEA_TOKEN}" \ -H "Authorization: token ${GITEA_TOKEN}" \
-H "Content-Type: application/json" \ -H "Content-Type: application/json" \
-d "{\"tag_name\":\"${TAG}\",\"name\":\"${TAG}\",\"draft\":false}" \ -d "{\"tag_name\":\"${TAG}\",\"name\":\"${TAG}\",\"draft\":false}" \
| python3 -c "import sys,json; print(json.load(sys.stdin)['id'])") | python3 -c "import sys,json; print(json.load(sys.stdin)['id'])")
curl -s -X POST \ [ -n "${RELEASE_ID}" ] || { echo "ERROR: empty RELEASE_ID from API"; exit 1; }
curl -f -X POST \
"${GITEA_URL}/api/v1/repos/${REPO}/releases/${RELEASE_ID}/assets" \ "${GITEA_URL}/api/v1/repos/${REPO}/releases/${RELEASE_ID}/assets" \
-H "Authorization: token ${GITEA_TOKEN}" \ -H "Authorization: token ${GITEA_TOKEN}" \
-F "attachment=@ahfail-linux-x86_64.tar.gz" -F "attachment=@ahfail-linux-x86_64.tar.gz"

View File

@@ -21,7 +21,8 @@ jobs:
libpam0g-dev \ libpam0g-dev \
ninja-build \ ninja-build \
python3-pip \ python3-pip \
libglib2.0-dev libglib2.0-dev \
xvfb
pip3 install meson pip3 install meson
- name: Install Rust stable - name: Install Rust stable
@@ -36,4 +37,4 @@ jobs:
meson compile -C builddir meson compile -C builddir
- name: Meson tests - name: Meson tests
run: meson test -C builddir --verbose run: xvfb-run meson test -C builddir --verbose

View File

@@ -81,22 +81,22 @@ sudo cp builddir/ahfail-display /usr/local/lib/ahfail/
### Configure PAM (macOS) ### Configure PAM (macOS)
Add to `/etc/pam.d/screensaver` (requires `sudo`): Find your screen locker's PAM service file. On macOS 13+ the screensaver uses `/etc/pam.d/screensaverui`; on older versions it may be `/etc/pam.d/screensaver`. Add the following line after the existing `auth` entries (requires `sudo`):
``` ```
auth optional /usr/local/lib/ahfail/libahfail_pam.so auth optional /usr/local/lib/ahfail/libahfail_pam.so
``` ```
Place it after the existing `auth` line(s) so it observes the real auth result.
### Configure PAM (Linux/X11) ### Configure PAM (Linux/X11)
Add to `/etc/pam.d/gtklock` (or `i3lock`, `xscreensaver`, etc.): Add to `/etc/pam.d/gtklock` (or `i3lock`, `xscreensaver`, etc.). Use the full path because `$(libdir)/ahfail` is not in PAM's default search path:
``` ```
auth optional ahfail-pam.so auth optional /usr/lib/ahfail/libahfail_pam.so
``` ```
On Fedora/RHEL replace `/usr/lib` with `/usr/lib64`.
## Development ## Development
* **Run Tests:** `cargo test` * **Run Tests:** `cargo test`