Skip to content

ci: build and test elsa-studio on pull requests - #1022

Merged
sfmskywalker merged 2 commits into
mainfrom
claude/ci-pr-build
Sep 12, 2026
Merged

sfmskywalker merged 2 commits into
mainfrom
claude/ci-pr-build

Conversation

@sfmskywalker

Copy link
Copy Markdown
Member

Closes #1017.

What changed

Pull requests to main now build and test elsa-studio. Until now PR checks were CodeQL, GitGuardian, Greptile and the CLA only; packages.yml built and tested only after merge, so every recent Studio PR was verified by local runs alone.

.github/workflows/pr.yml mirrors the build half of packages.yml, without packing or publishing. In order, it:

  • sets up .NET 8.x, 9.x and 10.x;
  • restores Bpmn.Model;
  • in the designer ClientLib, runs npm install --force, then npm run check:generated and npm test before npm run build, because the build regenerates the types file and would otherwise hide a stale commit;
  • builds the DOM interop ClientLib;
  • runs dotnet build Elsa.Studio.sln --configuration Release and dotnet test Elsa.Studio.sln --configuration Release --no-build.

It sets permissions: contents: read, uses no secrets (safe for fork PRs), cancels superseded runs for the same PR, and times out at 30 minutes. Node comes from the runner, as in packages.yml. The few shared steps are duplicated because the repository has no composite actions or reusable workflows to share them from. The stale comment in packages.yml that said no PR-time build exists is corrected.

Verification

The same commands, run locally in order on this branch, all pass: the ClientLib types check, 238 vitest tests, both ClientLib builds, the Release solution build with 0 errors, and dotnet test with every project green. The workflow's own run on this PR is the real proof.

Review: one iteration on the standards and spec axes. One won't-fix is recorded: this uses actions/checkout@v4 while packages.yml still pins @v3, which runs on a deprecated Node runtime.

🤖 Generated with Claude Code

Add .github/workflows/pr.yml, mirroring the build half of packages.yml
(dotnet build/test, client asset builds, and the generated BPMN types
check) so PRs are verified before merge instead of relying on local
runs and post-merge checks. Update the now-stale comment in
packages.yml that claimed there was no PR-time build.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@greptile-apps

greptile-apps Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

RetriggerConfidence Score: 5/5

Safe to merge.

Summary

  • This pull-request workflow builds and tests Elsa Studio before changes merge into main. It pins workflow actions to immutable commits, selects Node 22 explicitly, validates generated BPMN types before rebuilding client assets, builds both client libraries, and runs the Release solution build and tests.

Reviews (2) · Last reviewed commit: "ci: pin third-party actions by SHA and s..."

Comment thread .github/workflows/pr.yml Outdated
Comment thread .github/workflows/pr.yml
Comment thread .github/workflows/pr.yml
Pin actions/checkout and actions/setup-dotnet to the commit SHA their
v4 tag currently resolves to, and add actions/setup-node (also pinned
by SHA) ahead of the first npm step so the workflow no longer depends
on the runner's implicit default Node. node-version 22 matches both
the Node.js version actually preinstalled on the runner image used by
the green PR #1022 run (22.23.2) and vitest's supported engines range.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@sfmskywalker
sfmskywalker merged commit c8e5658 into main Sep 12, 2026
10 checks passed
@sfmskywalker
sfmskywalker deleted the claude/ci-pr-build branch September 12, 2026 08:00
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.

ci: build and test elsa-studio on pull requests

1 participant