Skip to content

feat(ci): add reusable workflow for Azure Trusted Signing - #7

Draft
p0wline wants to merge 2 commits into
mainfrom
feat/azure-code-signing
Draft

feat(ci): add reusable workflow for Azure Trusted Signing#7
p0wline wants to merge 2 commits into
mainfrom
feat/azure-code-signing

Conversation

@p0wline

@p0wline p0wline commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Summary

Reusable workflow for signing Windows artifacts (.exe, .dll, etc.) via Azure Trusted Signing (azure/artifact-signing-action@v2).

Based on the signing POC: https://github.com/p0wline/cosmian-signing-poc

Usage

jobs:
  sign:
    uses: Cosmian/reusable_scripts/.github/workflows/sign-windows-artifacts.yml@main
    with:
      files-folder: target/release
      files-folder-filter: exe
      artifact-name: signed-installers          # optional — omit to skip upload
      signing-account-name: cosmian-codesigning-test
      certificate-profile-name: cosmian-test-profile
    secrets:
      AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID_POC }}
      AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID_POC }}
      AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET_POC }}

Inputs

Input Required Default Description
files-folder yes Path to folder containing files to sign
files-folder-filter no exe Comma-separated extension filter
artifact-name no "" Upload signed files as artifact (empty = skip)
endpoint no https://weu.codesigning.azure.net/ Azure Trusted Signing endpoint
signing-account-name yes Azure account name
certificate-profile-name yes Certificate profile

Secrets

AZURE_TENANT_ID, AZURE_CLIENT_ID, AZURE_CLIENT_SECRET — all required.

Note

Azure Trusted Signing uses OV cert. SmartScreen will warn on first download until certificate builds reputation. EV cert needed for immediate bypass.

p0wline added 2 commits August 6, 2026 10:43
Signs Windows artifacts (exe/dll) via azure/artifact-signing-action@v2.

Inputs:
  - files-folder (required): path to files to sign
  - files-folder-filter: extension filter, default 'exe'
  - artifact-name: upload signed files as artifact if set
  - endpoint: Azure Trusted Signing endpoint
  - signing-account-name (required): Azure account name
  - certificate-profile-name (required): certificate profile

Secrets (required): AZURE_TENANT_ID, AZURE_CLIENT_ID, AZURE_CLIENT_SECRET
sign-windows-artifacts.yml: add artifact-to-download input — downloads
a GHA artifact into files-folder before signing (optional, default empty).

test-sign.yml: workflow_dispatch test — copies cmd.exe as dummy binary,
uploads as artifact, then calls the reusable signing workflow.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant