Add go-live workflow to publish docs to live branch#65
Conversation
Manual workflow_dispatch that creates a PR from main to live. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
PoliCheck Scan ReportThe following report lists PoliCheck issues in PR files. Before you merge the PR, you must fix all severity-1 and severity-2 issues. The AI Review Details column lists suggestions for either removing or replacing the terms. If you find a false positive result, mention it in a PR comment and include this text: #policheck-false-positive. This feedback helps reduce false positives in future scans. ✅ No issues foundMore information about PoliCheckInformation: PoliCheck | Severity Guidance | Term |
|
Learn Build status updates of commit 6d9b015: ✅ Validation status: passed
For more details, please refer to the build report. |
PoliCheck Scan ReportThe following report lists PoliCheck issues in PR files. Before you merge the PR, you must fix all severity-1 and severity-2 issues. The AI Review Details column lists suggestions for either removing or replacing the terms. If you find a false positive result, mention it in a PR comment and include this text: #policheck-false-positive. This feedback helps reduce false positives in future scans. ✅ No issues foundMore information about PoliCheckInformation: PoliCheck | Severity Guidance | Term |
|
Learn Build status updates of commit fb839b6: ✅ Validation status: passed
For more details, please refer to the build report. |
There was a problem hiding this comment.
Pull request overview
Adds a manually triggered GitHub Actions workflow to open a “main → live” pull request, intended to publish the latest API docs to the live branch.
Changes:
- Introduces a new
workflow_dispatchworkflow named “Go Live”. - Uses GitHub CLI (
gh) to detect an existing open PR and otherwise create a new PR frommainintolive.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| env: | ||
| GH_TOKEN: ${{ github.token }} | ||
| run: | | ||
| existing=$(gh pr list --base live --head main --state open --json number --jq '.[0].number') |
There was a problem hiding this comment.
gh pr list ... --jq '.[0].number' will print null when no PRs match, which makes existing non-empty and prevents PR creation (it will echo PR #null already exists). Use a jq fallback like .[0].number // empty (or explicitly check for null) so the PR is created when none exists.
| existing=$(gh pr list --base live --head main --state open --json number --jq '.[0].number') | |
| existing=$(gh pr list --base live --head main --state open --json number --jq '.[0].number // empty') |
| workflow_dispatch: | ||
|
|
||
| permissions: | ||
| contents: write |
There was a problem hiding this comment.
Workflow permissions grant contents: write, but this job only creates/list PRs via gh and doesn’t write repository contents. Consider reducing to contents: read to follow least-privilege (keep pull-requests: write).
| contents: write | |
| contents: read |
| - name: Checkout | ||
| uses: actions/checkout@v4 | ||
| with: | ||
| fetch-depth: 0 | ||
|
|
There was a problem hiding this comment.
The workflow checks out the repository with fetch-depth: 0, but the script only uses gh pr list/create against remote branches and doesn’t use the working tree. Dropping the checkout step (or at least avoiding full history) will reduce runtime and maintenance surface.
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 |
| permissions: | ||
| contents: write | ||
| pull-requests: write | ||
|
|
There was a problem hiding this comment.
Because this is workflow_dispatch, two runs triggered close together can both pass the "no existing PR" check and attempt to create duplicate PRs (one will fail, or you may get two PRs depending on timing). Add a concurrency group (e.g., concurrency: go-live) to ensure only one go-live run executes at a time.
| concurrency: | |
| group: go-live | |
| cancel-in-progress: false |
* Add daily API docs update workflow Full workflow that checks out mono/SkiaSharp at a configurable branch, installs GTK# 2 MSI, and runs Cake doc generation targets. Supports a skiasharp-branch parameter to generate docs from any SkiaSharp branch. Schedule: daily at 6 AM UTC, plus manual workflow_dispatch. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Update API docs from latest CI build (#64) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Add go-live workflow to publish docs to live branch (#65) Manual workflow_dispatch that creates a PR from main to live. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Matthew Leibowitz <mattleibow@live.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Go Live: publish latest API docs (#171) Publish the accumulated SkiaSharp / HarfBuzzSharp API documentation from main to the live (published) branch. This is the first Go Live since #66 and rolls up a large batch of docs automation, a full regeneration, and content/cross-reference cleanup. Highlights in this batch: - Docs automation: automated API docs writer (#92, hardened in #155), daily update workflow, go-live workflow (#65), and a Learn Build status-based auto-merge gate (#82, #83) backed by check-learn-build.py and a .github/known-warnings.csv baseline. - Regeneration: frameworks docs switched to latest-only monikers (#141), baseline reset to the Windows-generated output (#142), and stub regeneration moved to Linux via Mono (#147). This drops older, no-longer-shipping member/type pages (e.g. pre-v1.68 view APIs, the removed Android ISKRenderer interface, and the SKPaint text properties that moved to SKFont). - Content: filled API documentation placeholders (#150, #151, #172) and fixed broken cross-references (#152). - Cross-reference cleanup (#173): removed/repointed 36 obsolete xref-not-found references left behind by the latest-only-moniker regeneration — dangling links in 2019-era remarks to members that were since removed or relocated. Without this the Go Live build reported 160 warnings and the auto-merge gate (correctly) blocked the publish. Build health at publish: 0 errors, 124 warnings, 0 suggestions. All 124 remaining warnings are expected xref-not-found references to external framework types (OpenTK, Gdk/Cairo/Graphene, ElmSharp/Tizen.NUI, Windows.UI.Xaml, Microsoft.UI.Xaml, SharpVk, Vortice) that Learn cannot resolve and which are tracked in the known-warnings.csv baseline — 0 new warnings versus baseline, so the gate passes. Co-authored-by: Matthew Leibowitz <mattleibow@live.com> Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Manual workflow_dispatch that creates a PR from main to live.