Skip to content

ci(sassdoc): add release workflow that deploys the SassDoc - #17891

Merged
ChronosSF merged 3 commits into
masterfrom
sstoychev/sass-docs-deploy
Oct 30, 2026
Merged

ChronosSF merged 3 commits into
masterfrom
sstoychev/sass-docs-deploy

Conversation

@ChronosSF

@ChronosSF ChronosSF commented Oct 29, 2026 •

Copy link
Copy Markdown
Member

Description

Adds .github/workflows/sass-docs-deploy.yml. When a release is published, it builds the SassDoc site and hands it to IgniteUI/igniteui-actions, which deploys it under angular-docs on the internal web servers. This replaces the SassDoc part of the angular-docs-en Azure DevOps pipeline. The API docs part already moved to IgniteUI/api-docs.

Each release lands where the AZDO pipeline put it:

  • angular-docs/<version>/sass: one folder per minor line, holding its newest release. It is served at /products/ignite-ui-angular/docs/<version>/sass/ and listed in the version selector.
  • angular-docs/sass/latest: the newest release. It is served at /products/ignite-ui-angular/docs/sass/latest/.

Staging gets every release; production gets stable releases only.

The jobs:

  • resolve: compares the release with the repository's tags. It deploys an environment only while the release is the newest of its minor line, so re-running an older patch can't replace a newer one. latest is set only while it is also the newest overall: newest tag for staging, newest stable tag for production. This is the AZDO pipeline's isLatest / isLatestProd rule.
  • build: one leg per environment, since each build embeds its own URLs, analytics ID and header/footer. Runs npm ci and npm run build:sassdoc:en:<env> at the release tag. It then stages <version>/sass, adding noindex,nofollow to every index.html as the AZDO pipeline did, and sass/latest when applicable. The result is uploaded as sass-docs-<env>-<version>.
  • deploy: never checks out the repository. Gets an app token scoped to igniteui-actions and sends igniteui-angular-sass-docs-cd with environment, version and latest. igniteui-actions then mirrors the folders, removes the other folders of that minor line, and rebuilds the version selector's list (angular-api-docs-versions(-prod).json).

workflow_dispatch with a release_tag input re-runs the deploy for a tag.

Motivation / Context

Requires IgniteUI/igniteui-actions#74, which adds the workflow that receives the dispatch.

Release events run the workflow file from the tagged commit, so this is backported to every active line: 22.2.x #17892, 22.1.x #17893, 22.0.x #17894.

After a release deploys through this, the AZDO pipeline can be disabled and angularDocs.nuspec / angularDocsPostDeploy.ps1 removed.

Type of Change (check all that apply):

  • Bug fix
  • New functionality
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Refactoring (no functional changes)
  • Documentation
  • Demos
  • CI/CD
  • Tests
  • Changelog
  • Skills/Agents

Component(s) / Area(s) Affected:

CI, SassDoc

How Has This Been Tested?

  • Unit tests

  • Manual testing

  • Automated e2e tests

  • actionlint passes on the workflow.

  • I ran the resolve step's script unchanged in ubuntu:24.04 against the repository's 1355 tags:

    Release staging production
    22.2.4 (newest) version folder, latest version folder, latest
    22.2.3 / 21.2.10 (newer patch exists) nothing nothing
    new 22.1.x patch version folder version folder
    23.0.0-rc.1 version folder, latest nothing
    22.2.5, released after that RC version folder version folder, latest
    not a version tag fails fails
  • I ran the staging step against a sample build: noindex is added to every index.html in the version folder only, web.config is kept, and sass/latest is added only for the newest release.

  • Not yet run end to end. That needs igniteui-actions#74 merged, then a release or a workflow_dispatch run.

Test Configuration:

  • Angular version: N/A
  • Browser(s): N/A
  • OS: ubuntu-latest runner

Checklist:

  • All relevant tags have been applied to this PR
  • This PR includes unit tests covering all the new code (test guidelines)
  • This PR includes API docs for newly added methods/properties (api docs guidelines)
  • This PR includes feature/README.MD updates for the feature docs
  • This PR includes general feature table updates in the root README.MD
  • This PR includes CHANGELOG.MD updates for newly added functionality
  • This PR contains breaking changes
  • This PR includes ng update migrations for the breaking changes (migrations guidelines)
  • This PR includes behavioral changes and the feature specification has been updated with them
  • Accessibility (ARIA, keyboard navigation, focus management) has been verified

🤖 Generated with Claude Code

Builds the SassDoc for the newest release and dispatches its deploy to
IgniteUI/igniteui-actions, replacing the AZDO angular-docs-en pipeline.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

Every release goes to angular-docs/<version>/sass, one folder per minor
line, and the newest one also to sass/latest, as the AZDO pipeline did.
Staging takes every release, production stable ones only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ChronosSF
ChronosSF merged commit d1e5502 into master Oct 30, 2026
7 checks passed
@ChronosSF
ChronosSF deleted the sstoychev/sass-docs-deploy branch October 30, 2026 12:43
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.

2 participants