Repository navigation
Release workflow on CI (draft pre-release, provenance attestation) and SmartScreen notice - #4
Merged
Merged
Conversation
Owner
Author
Test run result and local verification of the CI assetsWorkflow test run (push of the test tag
Resulting draft pre-release Local verification of the assets downloaded from the draft (this machine, Windows 11, PowerShell 7):
Differences from the handoff specification and why:
No merge was performed. |
…martScreen release.yml: validação tag/versão/marco, publish self-contained, verificação de pacote, Inno Setup 7.1.1 fixado por hash, ZIP e instalador, jobs de assinatura SignPath reservados, attestation de proveniência e pré-release somente em rascunho. Build-GraphicalInstaller.ps1 ganha -SkipFrozenManifest para o payload gerado no próprio run. Seção SmartScreen nos READMEs e em getting-started; processo de release em development. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…nho pelo workflow de release Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
leoars
force-pushed
the
release-ci-smartscreen
branch
from
November 1, 2026 04:39
a8a72e9 to
d85d775
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed / O que mudou
Part A, release workflow. New
.github/workflows/release.yml, triggered only by tagsv*orworkflow_dispatch, never by pushes tomain. Jobs:validate(tag must equalv+installer/release.jsonVersion;Directory.Build.propsVersion andBuildInfo.csmilestone must matchrelease.json; otherwise the run fails),build(Publish.ps1 -SelfContainedwithContinuousIntegrationBuild/Deterministic, thenVerify-Package.ps1,Test-Package.ps1,Test-PackageGuides.ps1, unsigned payload uploaded as artifact),sign-binaries(SignPath, skipped unless repository variableSIGNPATH_ENABLED == 'true'),package(New-PackageArchive.ps1, Inno Setup 7.1.1 x64 downloaded from the official jrsoftware release, SHA256 pinned and verified, installed in portable mode,Build-GraphicalInstaller.ps1 -SkipFrozenManifest, informationalTest-PackageLaunch.ps1),sign-installer(SignPath, same gate),attest(actions/attest-build-provenanceon the final ZIP and installer, only job withid-token/attestations: write),release(SHA256SUMS.txt, EN/pt-BR notes attached, draft + prerelease viagh release create, fails if a release for the tag already exists; only job withcontents: write). Every action is pinned by commit SHA with a version comment, as inbuild.yml.scripts/Build-GraphicalInstaller.ps1gains-SkipFrozenManifest: CI builds the payload in the same run, so its manifest hash cannot be the frozen one inrelease.json; milestone and product version checks are kept and local builds still enforce the frozen hash. Process documented indocs/en|pt-BR/development.md(new "Release" section,gh attestation verify, SignPath variables/secret) and noted ingraphical-installer.md.Part B, SmartScreen. "Windows SmartScreen warning / Aviso do SmartScreen do Windows" added under Install/Instalar in both READMEs and in both
getting-startedguides, withGet-FileHashonly; it states that v0.1.0-alpha.1 was built locally and has checksums but no attestation, and that CI-built releases can additionally be verified withgh attestation verify.Why / Por quê
Prerequisite for the SignPath Foundation program (automated CI build with origin verification) and for verifiable downloads; the SmartScreen text explains the unsigned alpha honestly in the meantime.
Validation actually run / Validação realmente executada
v0.1.0-alpha.1+ci.1(not a version tag): https://github.com/leoars/PostgresManagementStudio/actions/runs/41271198752. Outcome, localVerify-Package.ps1/Test-PackageArchive.ps1of the CI ZIP andTest-GraphicalInstaller.ps1of the CI installer are reported in the PR comments. The resulting draft and the test tag must be deleted after review (maintainer's authorization).scripts/Test-PublicDocumentation.ps1: Valid = True, 15 language pairs, 32 public documents, 190 local links, CommandsMatch = True.git diff --check: clean. PowerShell parser on the modified script: 0 errors.Differences from the specification / Diferenças em relação à especificação
workflow_dispatchcannot be used until the workflow exists onmain(GitHub returns 404 for workflows that only exist on a branch), so the test run used a pushed tag with semver build metadata; the validator accepts metadata on either trigger and marks such runs as test drafts.ghCLI withGITHUB_TOKENinstead of a third-party release action (one less dependency to pin).attestis a separate job fromreleaseso thatid-token/attestations: writeandcontents: writenever share a job.Test-PackageLaunch.ps1runs on the hosted runner as informational (continue-on-error), because the runner session is not a certified desktop; the release does not depend on it.Get-FileHash .\PGMS-*in both languages so that the documentation check (identical PowerShell blocks across languages) passes; thegh attestation verifyline is indevelopment.mdinstead of the README, as the alpha.1 assets have no attestation.Checklist
docs/enanddocs/pt-BR(and both READMEs) when relevant. / Documentação pública atualizada emdocs/enedocs/pt-BR(e nos dois READMEs) quando pertinente.🤖 Generated with Claude Code