Skip to content

ci: migrate ci workflow to github action#181

Draft
damyanpetev wants to merge 1 commit into
dpetev/validate-distfrom
dpetev/migrate-ci-workflow
Draft

ci: migrate ci workflow to github action#181
damyanpetev wants to merge 1 commit into
dpetev/validate-distfrom
dpetev/migrate-ci-workflow

Conversation

@damyanpetev

Copy link
Copy Markdown
Member

Migrate CI from Azure Pipelines to GitHub Actions

Ports the CI pipeline from Azure Pipelines to GitHub Actions, keeping the build/test steps in a shared, reusable unit so the release pipeline can be migrated the same way later.

What changed

  • New composite action .github/actions/setup-build-test — the shared equivalent of setup-build-test-steps.yml. Installs Node, runs npm ci, build, validate:dist, lint, installs Playwright, and runs test:ci. Exposes licensed and verbose inputs. Both CI and the future release workflow can consume it via uses: ./.github/actions/setup-build-test.
  • New workflow .github/workflows/ci.yml — replaces .azure-pipelines/ci.yml. Runs the composite action, then publishes coverage and uploads reports.

Notable translation decisions

  • Checkout lives in the workflow, not the composite action. A local composite action can't check out the repo itself — the code must already be present for GitHub to load action.yml — so checkout stays in each caller and the reusable core is everything after it.
  • IG_LICENSED_BUILD truthiness preserved. The build scripts treat any non-empty value (including "false") as licensed, so the env var is set to 'true' only when licensed is true and to an empty string otherwise, matching Azure's if eq(parameters.licensed, true) guard.
  • verbose maps to --loglevel verbose appended to the npm scripts, mirroring the Azure Npm@1 verbose option.
  • Triggers: pull_requestmaster and pushmaster, plus workflow_dispatch (exposing the verbose toggle). A concurrency group cancels superseded PR runs while letting master-push runs complete for history.
  • Coverage/test reporting: uses the first-party (public preview) actions/upload-code-coverage@v1 to surface coverage on the PR from the existing Cobertura report (coverage/cobertura-coverage.xml), and uploads the JUnit report and full coverage directory as artifacts. No third-party actions introduced.

Notes / follow-ups

  • actions/upload-code-coverage@v1 is in public preview and requires the code-quality: write permission (set in the workflow); the Code Coverage preview may need to be enabled for the repo/org.
  • The built-in action posts coverage on the PR rather than as an expandable run-Summary block. The blazor-style run-Summary list would require the third-party ReportGenerator action; not included here to stay first-party.
  • The old .azure-pipelines/ CI files are left in place for now and can be retired once the release pipeline is migrated too.

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.

1 participant