mirror of
https://github.com/unpoller/unpoller.git
synced 2026-10-18 13:18:09 +02:00
ci: Authenticode-sign Windows and notarize the macOS universal binary.
Release tags now fail closed without signing secrets, ship a signed Windows PE via house signerd, and replace per-arch Darwin tarballs with one stapled universal archive. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
co-authored by
Cursor
parent
3a595a6896
commit
eeda665b7e
@@ -15,6 +15,10 @@ permissions:
|
||||
jobs:
|
||||
release:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: write
|
||||
packages: write
|
||||
id-token: write
|
||||
env:
|
||||
DOCKER_CLI_EXPERIMENTAL: "enabled"
|
||||
DOCKER_REGISTRY: "ghcr.io"
|
||||
@@ -24,6 +28,23 @@ jobs:
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- run: git fetch --force --tags
|
||||
- name: Fail if publishing secrets are missing
|
||||
env:
|
||||
GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }}
|
||||
GPG_SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }}
|
||||
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
|
||||
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
|
||||
CODESIGN_URL: ${{ secrets.CODESIGN_URL }}
|
||||
CODESIGN_CLIENT_CERT: ${{ secrets.CODESIGN_CLIENT_CERT }}
|
||||
CODESIGN_CLIENT_KEY: ${{ secrets.CODESIGN_CLIENT_KEY }}
|
||||
MACOS_SIGN_P12: ${{ secrets.MACOS_SIGN_P12 }}
|
||||
MACOS_SIGN_PASSWORD: ${{ secrets.MACOS_SIGN_PASSWORD }}
|
||||
MACOS_NOTARY_KEY: ${{ secrets.MACOS_NOTARY_KEY }}
|
||||
MACOS_NOTARY_KEY_ID: ${{ secrets.MACOS_NOTARY_KEY_ID }}
|
||||
MACOS_NOTARY_ISSUER_ID: ${{ secrets.MACOS_NOTARY_ISSUER_ID }}
|
||||
PACKAGECLOUD_TOKEN: ${{ secrets.PACKAGECLOUD_TOKEN }}
|
||||
HOMEBREW_TAP_GITHUB_TOKEN: ${{ secrets.HOMEBREW_TAP_GITHUB_TOKEN }}
|
||||
run: bash .github/scripts/require_secrets.sh
|
||||
- name: Install RPM tooling
|
||||
run: sudo apt-get install -y rpm
|
||||
- name: Set up QEMU
|
||||
@@ -62,12 +83,21 @@ jobs:
|
||||
# on your needs.
|
||||
- name: "make key file"
|
||||
run: "echo '${{ secrets.GPG_SIGNING_KEY }}' > /tmp/key.gpg"
|
||||
- name: Install golift codesign
|
||||
env:
|
||||
GOBIN: ${{ runner.temp }}/codesign-bin
|
||||
run: |
|
||||
set -euo pipefail
|
||||
mkdir -p "${GOBIN}"
|
||||
go install golift.io/codesign/cmd/codesign@v1.0.3
|
||||
echo "${GOBIN}" >> "${GITHUB_PATH}"
|
||||
echo "CODESIGN_BIN=${GOBIN}/codesign" >> "${GITHUB_ENV}"
|
||||
- uses: goreleaser/goreleaser-action@v7
|
||||
with:
|
||||
# either 'goreleaser' (default) or 'goreleaser-pro':
|
||||
distribution: goreleaser-pro
|
||||
version: latest
|
||||
args: release --clean
|
||||
args: release --clean --timeout 60m
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
# Your GoReleaser Pro key, if you are using the 'goreleaser-pro'
|
||||
@@ -78,6 +108,16 @@ jobs:
|
||||
PACKAGECLOUD_TOKEN: ${{ secrets.PACKAGECLOUD_TOKEN }}
|
||||
GPG_SIGNING_KEY: /tmp/key.gpg
|
||||
GPG_SIGNING_KEY_ID: ${{ steps.import_gpg.outputs.keyid }}
|
||||
CODESIGN_URL: ${{ secrets.CODESIGN_URL }}
|
||||
CODESIGN_CLIENT_CERT: ${{ secrets.CODESIGN_CLIENT_CERT }}
|
||||
CODESIGN_CLIENT_KEY: ${{ secrets.CODESIGN_CLIENT_KEY }}
|
||||
CODESIGN_NAME: unpoller
|
||||
CODESIGN_WEBSITE: https://unpoller.com
|
||||
MACOS_SIGN_P12: ${{ secrets.MACOS_SIGN_P12 }}
|
||||
MACOS_SIGN_PASSWORD: ${{ secrets.MACOS_SIGN_PASSWORD }}
|
||||
MACOS_NOTARY_KEY: ${{ secrets.MACOS_NOTARY_KEY }}
|
||||
MACOS_NOTARY_KEY_ID: ${{ secrets.MACOS_NOTARY_KEY_ID }}
|
||||
MACOS_NOTARY_ISSUER_ID: ${{ secrets.MACOS_NOTARY_ISSUER_ID }}
|
||||
- name: Update Docker Hub Description
|
||||
uses: peter-evans/dockerhub-description@v5
|
||||
with:
|
||||
|
||||
Reference in New Issue
Block a user