Merge c21f3747191fb82ce46db58f4dd7b43a4971eaec into 0f3d297c446c7a512aff202d733b7df846d1cee3
4 files · +22 -20
M .github/workflows/release.yml +3 -7
| @@ -8,7 +8,10 @@ concurrency: | |||
| 8 | 8 | group: release-${{ github.ref }} | |
| 9 | 9 | cancel-in-progress: false | |
| 10 | 10 | jobs: | |
| 11 | + | # Releases are published by ermite (git.bnema.dev); the GitHub mirror | |
| 12 | + | # receives the tags but must not publish a second release or AUR push. | |
| 11 | 13 | check: | |
| 14 | + | if: github.server_url != 'https://github.com' | |
| 12 | 15 | uses: ./.github/workflows/ci.yml | |
| 13 | 16 | ||
| 14 | 17 | release: | |
| @@ -16,8 +19,6 @@ jobs: | |||
| 16 | 19 | runs-on: ubuntu-latest | |
| 17 | 20 | permissions: | |
| 18 | 21 | contents: write # create the release | |
| 19 | - | id-token: write # sign the provenance attestation | |
| 20 | - | attestations: write | |
| 21 | 22 | steps: | |
| 22 | 23 | - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| 23 | 24 | with: | |
| @@ -33,11 +34,6 @@ jobs: | |||
| 33 | 34 | args: release --clean | |
| 34 | 35 | env: | |
| 35 | 36 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| 36 | - | - uses: actions/attest-build-provenance@4d101475d8b20a2381f78447822ac1eab6504dd8 # v4.2.2 | |
| 37 | - | with: | |
| 38 | - | subject-path: | | |
| 39 | - | dist/*.tar.gz | |
| 40 | - | dist/checksums.txt | |
| 41 | 37 | - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| 42 | 38 | with: | |
| 43 | 39 | name: aur-bin | |
| @@ -8,7 +8,10 @@ concurrency: | |||||
| 8 | group: release-${{ github.ref }} | 8 | group: release-${{ github.ref }} | ||
| 9 | cancel-in-progress: false | 9 | cancel-in-progress: false | ||
| 10 | jobs: | 10 | jobs: | ||
| 11 | + | # Releases are published by ermite (git.bnema.dev); the GitHub mirror | |||
| 12 | + | # receives the tags but must not publish a second release or AUR push. | |||
| 11 | check: | 13 | check: | ||
| 14 | + | if: github.server_url != 'https://github.com' | |||
| 12 | uses: ./.github/workflows/ci.yml | 15 | uses: ./.github/workflows/ci.yml | ||
| 13 | 16 | ||||
| 14 | release: | 17 | release: | ||
| @@ -16,8 +19,6 @@ jobs: | |||||
| 16 | runs-on: ubuntu-latest | 19 | runs-on: ubuntu-latest | ||
| 17 | permissions: | 20 | permissions: | ||
| 18 | contents: write # create the release | 21 | contents: write # create the release | ||
| 19 | - | id-token: write # sign the provenance attestation | |||
| 20 | - | attestations: write | |||
| 21 | steps: | 22 | steps: | ||
| 22 | - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | 23 | - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | ||
| 23 | with: | 24 | with: | ||
| @@ -33,11 +34,6 @@ jobs: | |||||
| 33 | args: release --clean | 34 | args: release --clean | ||
| 34 | env: | 35 | env: | ||
| 35 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | 36 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
| 36 | - | - uses: actions/attest-build-provenance@4d101475d8b20a2381f78447822ac1eab6504dd8 # v4.2.2 | |||
| 37 | - | with: | |||
| 38 | - | subject-path: | | |||
| 39 | - | dist/*.tar.gz | |||
| 40 | - | dist/checksums.txt | |||
| 41 | - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | 37 | - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | ||
| 42 | with: | 38 | with: | ||
| 43 | name: aur-bin | 39 | name: aur-bin | ||
M .goreleaser.yaml +16 -10
| @@ -1,10 +1,18 @@ | |||
| 1 | - | # Builds the GitHub release for a pushed v* tag (.github/workflows/release.yml) | |
| 1 | + | # Builds the ermite release for a pushed v* tag (.github/workflows/release.yml) | |
| 2 | 2 | # and generates the neferafk-bin PKGBUILD. The workflow verifies that PKGBUILD | |
| 3 | 3 | # with makepkg before it pushes it to the AUR, so GoReleaser never uploads it. | |
| 4 | 4 | version: 2 | |
| 5 | 5 | ||
| 6 | 6 | project_name: neferafk | |
| 7 | 7 | ||
| 8 | + | # Releases are published on ermite. In CI the runner sets GITHUB_API_URL and | |
| 9 | + | # GITHUB_SERVER_URL to an address the job can reach; the public URLs are the | |
| 10 | + | # fallback for a local run. | |
| 11 | + | github_urls: | |
| 12 | + | api: '{{ or (index .Env "GITHUB_API_URL") "https://git.bnema.dev/-/github/api" }}/' | |
| 13 | + | upload: '{{ or (index .Env "GITHUB_API_URL") "https://git.bnema.dev/-/github/api" }}/uploads/' | |
| 14 | + | download: '{{ or (index .Env "GITHUB_SERVER_URL") "https://git.bnema.dev" }}/' | |
| 15 | + | ||
| 8 | 16 | before: | |
| 9 | 17 | hooks: | |
| 10 | 18 | - go mod verify | |
| @@ -49,7 +57,7 @@ git: | |||
| 49 | 57 | ||
| 50 | 58 | changelog: | |
| 51 | 59 | sort: asc | |
| 52 | - | use: github | |
| 60 | + | use: git | |
| 53 | 61 | filters: | |
| 54 | 62 | exclude: | |
| 55 | 63 | - "^style(\\([^)]+\\))?:" | |
| @@ -98,21 +106,19 @@ release: | |||
| 98 | 106 | Linux amd64 and arm64. Replace `amd64` with `arm64` on ARM. | |
| 99 | 107 | ||
| 100 | 108 | ```sh | |
| 101 | - | gh release download {{ .Tag }} -R bnema/neferafk -p 'neferafk_{{ .Version }}_linux_amd64.tar.gz' -p checksums.txt | |
| 109 | + | curl -fLO https://git.bnema.dev/neferafk/releases/download/{{ .Tag }}/neferafk_{{ .Version }}_linux_amd64.tar.gz | |
| 110 | + | curl -fLO https://git.bnema.dev/neferafk/releases/download/{{ .Tag }}/checksums.txt | |
| 102 | 111 | sha256sum -c --ignore-missing checksums.txt | |
| 103 | - | gh attestation verify neferafk_{{ .Version }}_linux_amd64.tar.gz -R bnema/neferafk | |
| 104 | 112 | ``` | |
| 105 | 113 | ||
| 106 | - | The archive holds the `neferafk` binary, the PAM service file `neferafk.pam` (install it as `/etc/pam.d/neferafk` for password mode), an example config, the README and the license. See the [README](https://github.com/bnema/neferafk#readme) for runtime dependencies. | |
| 107 | - | footer: | | |
| 108 | - | --- | |
| 109 | - | ||
| 110 | - | **Full changelog**: https://github.com/bnema/neferafk/compare/{{ .PreviousTag }}...{{ .Tag }} | |
| 114 | + | The archive holds the `neferafk` binary, the PAM service file `neferafk.pam` (install it as `/etc/pam.d/neferafk` for password mode), an example config, the README and the license. See the [README](https://git.bnema.dev/neferafk) for runtime dependencies. | |
| 111 | 115 | ||
| 112 | 116 | aurs: | |
| 113 | 117 | - name: neferafk-bin | |
| 114 | 118 | ids: [neferafk] | |
| 115 | - | homepage: https://github.com/bnema/neferafk | |
| 119 | + | homepage: https://git.bnema.dev/neferafk | |
| 120 | + | # Public URL: github_urls.download is the CI-only relay address. | |
| 121 | + | url_template: 'https://git.bnema.dev/neferafk/releases/download/{{ .Tag }}/{{ .ArtifactName }}' | |
| 116 | 122 | description: "Idle daemon for Wayland: fade, session lock, screens off and suspend" | |
| 117 | 123 | maintainers: | |
| 118 | 124 | - "bnema <b at bnema dot dev>" | |
| @@ -1,10 +1,18 @@ | |||||
| 1 | - | # Builds the GitHub release for a pushed v* tag (.github/workflows/release.yml) | 1 | + | # Builds the ermite release for a pushed v* tag (.github/workflows/release.yml) |
| 2 | # and generates the neferafk-bin PKGBUILD. The workflow verifies that PKGBUILD | 2 | # and generates the neferafk-bin PKGBUILD. The workflow verifies that PKGBUILD | ||
| 3 | # with makepkg before it pushes it to the AUR, so GoReleaser never uploads it. | 3 | # with makepkg before it pushes it to the AUR, so GoReleaser never uploads it. | ||
| 4 | version: 2 | 4 | version: 2 | ||
| 5 | 5 | ||||
| 6 | project_name: neferafk | 6 | project_name: neferafk | ||
| 7 | 7 | ||||
| 8 | + | # Releases are published on ermite. In CI the runner sets GITHUB_API_URL and | |||
| 9 | + | # GITHUB_SERVER_URL to an address the job can reach; the public URLs are the | |||
| 10 | + | # fallback for a local run. | |||
| 11 | + | github_urls: | |||
| 12 | + | api: '{{ or (index .Env "GITHUB_API_URL") "https://git.bnema.dev/-/github/api" }}/' | |||
| 13 | + | upload: '{{ or (index .Env "GITHUB_API_URL") "https://git.bnema.dev/-/github/api" }}/uploads/' | |||
| 14 | + | download: '{{ or (index .Env "GITHUB_SERVER_URL") "https://git.bnema.dev" }}/' | |||
| 15 | + | ||||
| 8 | before: | 16 | before: | ||
| 9 | hooks: | 17 | hooks: | ||
| 10 | - go mod verify | 18 | - go mod verify | ||
| @@ -49,7 +57,7 @@ git: | |||||
| 49 | 57 | ||||
| 50 | changelog: | 58 | changelog: | ||
| 51 | sort: asc | 59 | sort: asc | ||
| 52 | - | use: github | 60 | + | use: git |
| 53 | filters: | 61 | filters: | ||
| 54 | exclude: | 62 | exclude: | ||
| 55 | - "^style(\\([^)]+\\))?:" | 63 | - "^style(\\([^)]+\\))?:" | ||
| @@ -98,21 +106,19 @@ release: | |||||
| 98 | Linux amd64 and arm64. Replace `amd64` with `arm64` on ARM. | 106 | Linux amd64 and arm64. Replace `amd64` with `arm64` on ARM. | ||
| 99 | 107 | ||||
| 100 | ```sh | 108 | ```sh | ||
| 101 | - | gh release download {{ .Tag }} -R bnema/neferafk -p 'neferafk_{{ .Version }}_linux_amd64.tar.gz' -p checksums.txt | 109 | + | curl -fLO https://git.bnema.dev/neferafk/releases/download/{{ .Tag }}/neferafk_{{ .Version }}_linux_amd64.tar.gz |
| 110 | + | curl -fLO https://git.bnema.dev/neferafk/releases/download/{{ .Tag }}/checksums.txt | |||
| 102 | sha256sum -c --ignore-missing checksums.txt | 111 | sha256sum -c --ignore-missing checksums.txt | ||
| 103 | - | gh attestation verify neferafk_{{ .Version }}_linux_amd64.tar.gz -R bnema/neferafk | |||
| 104 | ``` | 112 | ``` | ||
| 105 | 113 | ||||
| 106 | - | The archive holds the `neferafk` binary, the PAM service file `neferafk.pam` (install it as `/etc/pam.d/neferafk` for password mode), an example config, the README and the license. See the [README](https://github.com/bnema/neferafk#readme) for runtime dependencies. | 114 | + | The archive holds the `neferafk` binary, the PAM service file `neferafk.pam` (install it as `/etc/pam.d/neferafk` for password mode), an example config, the README and the license. See the [README](https://git.bnema.dev/neferafk) for runtime dependencies. |
| 107 | - | footer: | | |||
| 108 | - | --- | |||
| 109 | - | ||||
| 110 | - | **Full changelog**: https://github.com/bnema/neferafk/compare/{{ .PreviousTag }}...{{ .Tag }} | |||
| 111 | 115 | ||||
| 112 | aurs: | 116 | aurs: | ||
| 113 | - name: neferafk-bin | 117 | - name: neferafk-bin | ||
| 114 | ids: [neferafk] | 118 | ids: [neferafk] | ||
| 115 | - | homepage: https://github.com/bnema/neferafk | 119 | + | homepage: https://git.bnema.dev/neferafk |
| 120 | + | # Public URL: github_urls.download is the CI-only relay address. | |||
| 121 | + | url_template: 'https://git.bnema.dev/neferafk/releases/download/{{ .Tag }}/{{ .ArtifactName }}' | |||
| 116 | description: "Idle daemon for Wayland: fade, session lock, screens off and suspend" | 122 | description: "Idle daemon for Wayland: fade, session lock, screens off and suspend" | ||
| 117 | maintainers: | 123 | maintainers: | ||
| 118 | - "bnema <b at bnema dot dev>" | 124 | - "bnema <b at bnema dot dev>" | ||
M README.md +1 -1
| @@ -31,7 +31,7 @@ paru -S neferafk-bin # latest release, pre-built | |||
| 31 | 31 | paru -S neferafk-git # latest main, built from source | |
| 32 | 32 | ``` | |
| 33 | 33 | ||
| 34 | - | Pre-built archives are on the [releases page](https://github.com/bnema/neferafk/releases). To build from a checkout: | |
| 34 | + | Pre-built archives are on the [releases page](https://git.bnema.dev/neferafk/releases). To build from a checkout: | |
| 35 | 35 | ||
| 36 | 36 | ```sh | |
| 37 | 37 | CGO_ENABLED=0 go build -o bin/neferafk ./cmd/neferafk # builds bin/neferafk | |
| @@ -31,7 +31,7 @@ paru -S neferafk-bin # latest release, pre-built | |||||
| 31 | paru -S neferafk-git # latest main, built from source | 31 | paru -S neferafk-git # latest main, built from source | ||
| 32 | ``` | 32 | ``` | ||
| 33 | 33 | ||||
| 34 | - | Pre-built archives are on the [releases page](https://github.com/bnema/neferafk/releases). To build from a checkout: | 34 | + | Pre-built archives are on the [releases page](https://git.bnema.dev/neferafk/releases). To build from a checkout: |
| 35 | 35 | ||||
| 36 | ```sh | 36 | ```sh | ||
| 37 | CGO_ENABLED=0 go build -o bin/neferafk ./cmd/neferafk # builds bin/neferafk | 37 | CGO_ENABLED=0 go build -o bin/neferafk ./cmd/neferafk # builds bin/neferafk | ||
M packaging/aur/neferafk-git/PKGBUILD +2 -2
| @@ -6,7 +6,7 @@ pkgver=0.0.0.r0.g0000000 | |||
| 6 | 6 | pkgrel=1 | |
| 7 | 7 | pkgdesc='Idle daemon for Wayland: fade, session lock, screens off and suspend (git version)' | |
| 8 | 8 | arch=('x86_64' 'aarch64') | |
| 9 | - | url='https://github.com/bnema/neferafk' | |
| 9 | + | url='https://git.bnema.dev/neferafk' | |
| 10 | 10 | license=('GPL-3.0-only') | |
| 11 | 11 | # Loaded at runtime (purego, no cgo): not seen by makepkg's library scan. | |
| 12 | 12 | depends=('glibc' 'pam' 'libxkbcommon' 'vulkan-icd-loader' 'vulkan-driver' 'systemd' | |
| @@ -16,7 +16,7 @@ optdepends=('pass: PIN source for auth.mode = pin') | |||
| 16 | 16 | provides=('neferafk') | |
| 17 | 17 | conflicts=('neferafk' 'neferafk-bin') | |
| 18 | 18 | backup=('etc/pam.d/neferafk') | |
| 19 | - | source=('git+https://github.com/bnema/neferafk.git') | |
| 19 | + | source=('git+https://git.bnema.dev/neferafk.git') | |
| 20 | 20 | sha256sums=('SKIP') | |
| 21 | 21 | ||
| 22 | 22 | pkgver() { | |
| @@ -6,7 +6,7 @@ pkgver=0.0.0.r0.g0000000 | |||||
| 6 | pkgrel=1 | 6 | pkgrel=1 | ||
| 7 | pkgdesc='Idle daemon for Wayland: fade, session lock, screens off and suspend (git version)' | 7 | pkgdesc='Idle daemon for Wayland: fade, session lock, screens off and suspend (git version)' | ||
| 8 | arch=('x86_64' 'aarch64') | 8 | arch=('x86_64' 'aarch64') | ||
| 9 | - | url='https://github.com/bnema/neferafk' | 9 | + | url='https://git.bnema.dev/neferafk' |
| 10 | license=('GPL-3.0-only') | 10 | license=('GPL-3.0-only') | ||
| 11 | # Loaded at runtime (purego, no cgo): not seen by makepkg's library scan. | 11 | # Loaded at runtime (purego, no cgo): not seen by makepkg's library scan. | ||
| 12 | depends=('glibc' 'pam' 'libxkbcommon' 'vulkan-icd-loader' 'vulkan-driver' 'systemd' | 12 | depends=('glibc' 'pam' 'libxkbcommon' 'vulkan-icd-loader' 'vulkan-driver' 'systemd' | ||
| @@ -16,7 +16,7 @@ optdepends=('pass: PIN source for auth.mode = pin') | |||||
| 16 | provides=('neferafk') | 16 | provides=('neferafk') | ||
| 17 | conflicts=('neferafk' 'neferafk-bin') | 17 | conflicts=('neferafk' 'neferafk-bin') | ||
| 18 | backup=('etc/pam.d/neferafk') | 18 | backup=('etc/pam.d/neferafk') | ||
| 19 | - | source=('git+https://github.com/bnema/neferafk.git') | 19 | + | source=('git+https://git.bnema.dev/neferafk.git') |
| 20 | sha256sums=('SKIP') | 20 | sha256sums=('SKIP') | ||
| 21 | 21 | ||||
| 22 | pkgver() { | 22 | pkgver() { | ||