From 6d653f594292645e9bbada27fdd68f3685df14c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20M=C3=BCller?= <1005065+DeepDiver1975@users.noreply.github.com> Date: Tue, 28 Jul 2026 17:41:49 +0200 Subject: [PATCH] ci: add signed release workflow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Tagging the repository now builds and signs the app in CI via the shared release workflow, using the ownCloud G2 code-signing material held in the repository secrets. This removes the need to sign a release by hand with 'occ integrity:sign-app' on a machine that holds the private key. The workflow refuses to publish an unsigned artifact: it fails when the signing secrets are absent, and asserts that every tarball contains an appinfo/signature.json whose leaf certificate CN matches the app id. Signed-off-by: Thomas Müller <1005065+DeepDiver1975@users.noreply.github.com> --- .github/workflows/release.yml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 000000000..a08b670bd --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,21 @@ +name: Release + +on: + push: + tags: + - 'v*' + +permissions: + contents: read + +jobs: + release: + permissions: + contents: write + uses: owncloud/reusable-workflows/.github/workflows/release.yml@main + with: + app-name: external + secrets: + SIGNING_KEY: ${{ secrets.SIGNING_KEY }} + SIGNING_CERT: ${{ secrets.SIGNING_CERT }} + SIGNING_CHAIN: ${{ secrets.SIGNING_CHAIN }}