Skip to content

Commit 772cc77

Browse files
committed
ci: Auto-push high-resolution slide renders.
1 parent 2ab2df9 commit 772cc77

2 files changed

Lines changed: 23 additions & 5 deletions

File tree

.github/workflows/render-slides.yml

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,12 @@ on:
2020
- "package-lock.json"
2121
- ".github/workflows/render-slides.yml"
2222

23+
concurrency:
24+
group: render-release-note-slides
25+
cancel-in-progress: true
26+
2327
permissions:
24-
contents: read
28+
contents: write
2529

2630
jobs:
2731
render:
@@ -46,8 +50,18 @@ jobs:
4650
- name: Render and validate slides
4751
run: npm run render
4852

49-
- name: Verify committed PNG files
50-
run: git diff --exit-code -- go1.27/overview.png go1.27/overview-ko.png
53+
- name: Commit rendered PNG files
54+
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
55+
run: |
56+
git add go1.27/overview.png go1.27/overview-ko.png
57+
if git diff --cached --quiet; then
58+
echo "Rendered PNG files are already current."
59+
exit 0
60+
fi
61+
git config user.name "github-actions[bot]"
62+
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
63+
git commit -m "chore: Render Go 1.27 slides [skip ci]"
64+
git push
5165
5266
- name: Upload rendered slides
5367
uses: actions/upload-artifact@v4

scripts/render-slides.mjs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ import { chromium } from "playwright";
66

77
const projectRoot = resolve(dirname(fileURLToPath(import.meta.url)), "..");
88
const requestedTargets = process.argv.slice(2);
9+
const renderScale = Number(process.env.PNG_SCALE ?? 3);
10+
if (!Number.isInteger(renderScale) || renderScale < 1 || renderScale > 4) {
11+
throw new Error("PNG_SCALE must be an integer from 1 to 4");
12+
}
913

1014
const mimeTypes = new Map([
1115
[".css", "text/css; charset=utf-8"],
@@ -126,7 +130,7 @@ try {
126130
for (const file of slideFiles) {
127131
const page = await browser.newPage({
128132
viewport: { width: 1200, height: 900 },
129-
deviceScaleFactor: 1,
133+
deviceScaleFactor: renderScale,
130134
});
131135
const browserErrors = [];
132136
page.on("console", (message) => {
@@ -195,7 +199,7 @@ try {
195199
});
196200
audits.push({ ...audit, file });
197201
console.log(
198-
`Rendered ${relativeFile} -> ${relative(projectRoot, output)} (${audit.page.width}x${audit.page.height})`,
202+
`Rendered ${relativeFile} -> ${relative(projectRoot, output)} (${audit.page.width * renderScale}x${audit.page.height * renderScale}, ${renderScale}x)`,
199203
);
200204
await page.close();
201205
}

0 commit comments

Comments
 (0)