From 03cf3c701545f3f2c493ba480444547da8a4eeeb Mon Sep 17 00:00:00 2001 From: Lojhan Date: Thu, 22 Oct 2026 17:33:23 +0000 Subject: [PATCH] chore: prepare the initial Angular release workflow --- .github/workflows/cd_publish.yml | 70 ++++++++++++++++++++++++++++++++ .release-please-manifest.json | 3 ++ CHANGELOG.md | 4 +- release-please-config.json | 6 +++ 4 files changed, 82 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/cd_publish.yml create mode 100644 .release-please-manifest.json create mode 100644 release-please-config.json diff --git a/.github/workflows/cd_publish.yml b/.github/workflows/cd_publish.yml new file mode 100644 index 0000000..8e43f0a --- /dev/null +++ b/.github/workflows/cd_publish.yml @@ -0,0 +1,70 @@ +name: "🚀 CD — Publish" + +on: + push: + branches: + - main + workflow_dispatch: + inputs: + tag: + description: "Existing release tag to publish or retry" + required: false + type: string + +permissions: + contents: write + pull-requests: write + id-token: write + issues: write + +jobs: + release-please: + if: github.event.repository.fork == false && !inputs.tag + runs-on: ubuntu-latest + timeout-minutes: 15 + outputs: + created: ${{ steps.release.outputs.release_created }} + tag: ${{ steps.release.outputs.tag_name }} + steps: + - name: 🤝 Release Please + uses: googleapis/release-please-action@v4 + id: release + with: + token: ${{ secrets.GITHUB_TOKEN }} + + publish: + needs: release-please + if: always() && github.event.repository.fork == false && (inputs.tag || needs.release-please.outputs.created == 'true') + runs-on: ubuntu-latest + timeout-minutes: 15 + env: + RELEASE_TAG: ${{ inputs.tag || needs.release-please.outputs.tag }} + steps: + - name: ➕ Actions - Checkout release + uses: actions/checkout@v4 + with: + ref: ${{ env.RELEASE_TAG }} + + - name: ➕ Actions - Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: "24" + registry-url: "https://registry.npmjs.org" + cache: npm + + - name: ✅ Verify release version + run: node -e 'const { version } = require("./package.json"); if (process.env.RELEASE_TAG !== `angular-v${version}`) throw new Error("Release tag must match the package version.");' + + - name: 📦 Installing Dependencies + run: npm ci + + - name: ✅ Validate + run: npm run check + + - name: 📦 Validate package + run: npm run test:pack + + - name: 📥 Publishing Package + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + run: npm publish --provenance --access public diff --git a/.release-please-manifest.json b/.release-please-manifest.json new file mode 100644 index 0000000..37fcefa --- /dev/null +++ b/.release-please-manifest.json @@ -0,0 +1,3 @@ +{ + ".": "1.0.0" +} diff --git a/CHANGELOG.md b/CHANGELOG.md index b655a3a..c5d4ab9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ All notable changes to this project will be documented in this file. -## [1.0.0] - 2026-04-05 +## [1.0.0] - 2026-10-22 ### Added @@ -14,3 +14,5 @@ All notable changes to this project will be documented in this file. - Async `fireEvent` wrapper with automatic Angular change detection - `angularTestingPlugin` Poku plugin with `happy-dom` and `jsdom` DOM adapters - Signal input support via internal `applyValueToInputSignal` mechanism +- Angular 18–21 compatibility, isolated application runtimes, and scoped cleanup +- Fragment snapshots, debug helpers, live hook results, and error propagation diff --git a/release-please-config.json b/release-please-config.json new file mode 100644 index 0000000..435640c --- /dev/null +++ b/release-please-config.json @@ -0,0 +1,6 @@ +{ + "release-type": "node", + "packages": { + ".": {} + } +}