Skip to content

Add go-live workflow to publish docs to live branch#65

Merged
mattleibow merged 2 commits into
mainfrom
automation/add-update-workflow
Feb 27, 2026
Merged

Add go-live workflow to publish docs to live branch#65
mattleibow merged 2 commits into
mainfrom
automation/add-update-workflow

Conversation

@mattleibow

Copy link
Copy Markdown
Collaborator

Manual workflow_dispatch that creates a PR from main to live.

Manual workflow_dispatch that creates a PR from main to live.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@learn-build-service-prod

Copy link
Copy Markdown
Contributor

PoliCheck Scan Report

The 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 found

More information about PoliCheck

Information: PoliCheck | Severity Guidance | Term
For any questions: Try searching the learn.microsoft.com contributor guides or post your question in the Learn support channel.

@learn-build-service-prod

Copy link
Copy Markdown
Contributor

Learn Build status updates of commit 6d9b015:

✅ Validation status: passed

File Status Preview URL Details
.github/workflows/go-live.yml ✅Succeeded

For more details, please refer to the build report.

@mattleibow mattleibow requested a review from Copilot February 27, 2026 11:31
@mattleibow mattleibow merged commit 44e137e into main Feb 27, 2026
1 of 3 checks passed
@mattleibow mattleibow deleted the automation/add-update-workflow branch February 27, 2026 11:32
@learn-build-service-prod

Copy link
Copy Markdown
Contributor

PoliCheck Scan Report

The 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 found

More information about PoliCheck

Information: PoliCheck | Severity Guidance | Term
For any questions: Try searching the learn.microsoft.com contributor guides or post your question in the Learn support channel.

@learn-build-service-prod

Copy link
Copy Markdown
Contributor

Learn Build status updates of commit fb839b6:

✅ Validation status: passed

File Status Preview URL Details
.github/workflows/go-live.yml ✅Succeeded

For more details, please refer to the build report.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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_dispatch workflow named “Go Live”.
  • Uses GitHub CLI (gh) to detect an existing open PR and otherwise create a new PR from main into live.

💡 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')

Copilot AI Feb 27, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
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')

Copilot uses AI. Check for mistakes.
workflow_dispatch:

permissions:
contents: write

Copilot AI Feb 27, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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).

Suggested change
contents: write
contents: read

Copilot uses AI. Check for mistakes.
Comment on lines +15 to +19
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

Copilot AI Feb 27, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

Copilot uses AI. Check for mistakes.
permissions:
contents: write
pull-requests: write

Copilot AI Feb 27, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
concurrency:
group: go-live
cancel-in-progress: false

Copilot uses AI. Check for mistakes.
mattleibow added a commit that referenced this pull request Feb 27, 2026
* 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>
mattleibow added a commit that referenced this pull request Jun 30, 2026
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>
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.

2 participants