Skip to content

fix libpas assertion on windows #163

fix libpas assertion on windows

fix libpas assertion on windows #163

Workflow file for this run

name: Preview Build
on:
pull_request:
types: [opened, synchronize, reopened]
workflow_dispatch:
inputs:
pr_number:
description: 'PR number to build'
required: true
type: number
permissions:
contents: write
pull-requests: write
concurrency:
group: preview-build-pr-${{ github.event.pull_request.number || inputs.pr_number }}
cancel-in-progress: true
jobs:
trigger:
name: Trigger Preview Build
runs-on: ubuntu-latest
outputs:
sha: ${{ steps.pr.outputs.sha }}
release_tag: ${{ steps.pr.outputs.release_tag }}
pr_number: ${{ steps.pr.outputs.pr_number }}
steps:
- name: Check permissions
if: github.event_name == 'pull_request'
uses: actions/github-script@v7
with:
script: |
const { data: permission } = await github.rest.repos.getCollaboratorPermissionLevel({
owner: context.repo.owner,
repo: context.repo.repo,
username: context.actor
});
if (!['admin', 'write'].includes(permission.permission)) {
core.setFailed(`${context.actor} does not have write access. Preview builds must be triggered manually via workflow_dispatch.`);
}
- name: Get PR information
id: pr
uses: actions/github-script@v7
with:
script: |
let sha, prNumber;
if (context.eventName === 'pull_request') {
sha = context.payload.pull_request.head.sha;
prNumber = context.payload.pull_request.number;
} else {
const { data: pr } = await github.rest.pulls.get({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: ${{ inputs.pr_number || 0 }}
});
sha = pr.head.sha;
prNumber = ${{ inputs.pr_number || 0 }};
}
const shortSha = sha.substring(0, 8);
const releaseTag = `autobuild-preview-pr-${prNumber}-${shortSha}`;
core.setOutput('sha', sha);
core.setOutput('release_tag', releaseTag);
core.setOutput('pr_number', prNumber);
build:
name: Build
needs: trigger
permissions:
contents: write
uses: ./.github/workflows/build-reusable.yml
with:
build_ref: ${{ needs.trigger.outputs.sha }}
release_tag: ${{ needs.trigger.outputs.release_tag }}
is_prerelease: true
llvm_version: '19'
notify:
name: Update PR Comment
needs: [trigger, build]
runs-on: ubuntu-latest
if: needs.build.result == 'success'
permissions:
pull-requests: write
steps:
- name: Update preview build comment
uses: actions/github-script@v7
with:
script: |
const marker = '<!-- preview-build-comment -->';
const prNumber = ${{ needs.trigger.outputs.pr_number }};
const releaseTag = '${{ needs.trigger.outputs.release_tag }}';
const sha = '${{ needs.trigger.outputs.sha }}';
const shortSha = sha.substring(0, 8);
const releaseUrl = `https://github.com/${context.repo.owner}/${context.repo.repo}/releases/tag/${releaseTag}`;
const newEntry = `| \`${shortSha}\` | [\`${releaseTag}\`](${releaseUrl}) | ${new Date().toISOString().replace('T', ' ').substring(0, 19)} UTC |`;
// Find existing comment
const { data: comments } = await github.rest.issues.listComments({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: prNumber,
per_page: 100
});
const existing = comments.find(c => c.body.includes(marker));
// Build table
let previousRows = '';
if (existing) {
const lines = existing.body.split('\n');
const tableLines = lines.filter(l => l.startsWith('| `'));
previousRows = tableLines.length > 0 ? '\n' + tableLines.join('\n') : '';
}
const body = [
marker,
'## Preview Builds',
'',
'| Commit | Release | Date |',
'|--------|---------|------|',
newEntry + previousRows
].join('\n');
if (existing) {
await github.rest.issues.updateComment({
owner: context.repo.owner,
repo: context.repo.repo,
comment_id: existing.id,
body: body
});
} else {
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: prNumber,
body: body
});
}