Skip to content

Refactor: typescript bug #4

Refactor: typescript bug

Refactor: typescript bug #4

Workflow file for this run

# Posts / updates a PR comment with typecheck + build wall times, lib bundle sizes, and links.
name: PR build report
on:
pull_request:
branches:
- main
permissions:
contents: read
pull-requests: write
concurrency:
group: pr-build-report-${{ github.event.pull_request.number }}
cancel-in-progress: true
jobs:
report:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
- name: Install dependencies
run: npm ci
- name: Generate timed build report
env:
COMMIT_SHA: ${{ github.event.pull_request.head.sha }}
COMMIT_URL: ${{ github.server_url }}/${{ github.repository }}/commit/${{ github.event.pull_request.head.sha }}
RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
run: node scripts/pr-build-report.mjs
# Fork PRs: GITHUB_TOKEN cannot write PR comments on the base repo; skip only this step.
- name: Upsert PR comment
if: github.event.pull_request.head.repo.full_name == github.repository
uses: actions/github-script@v7
with:
script: |
const fs = require('fs');
const marker = '<!-- nativeflowcss-build-report -->';
const body = fs.readFileSync('build-report.md', 'utf8');
const issue_number = context.payload.pull_request.number;
const { data: comments } = await github.rest.issues.listComments({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number,
per_page: 100,
});
const existing = comments.find(
(c) =>
c.body?.includes(marker) &&
(c.user?.login === 'github-actions[bot]' || c.user?.type === 'Bot'),
);
if (existing) {
await github.rest.issues.updateComment({
owner: context.repo.owner,
repo: context.repo.repo,
comment_id: existing.id,
body,
});
} else {
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number,
body,
});
}