Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
96 commits
Select commit Hold shift + click to select a range
d484fa8
docs: add CLAUDE.md with architecture and development guide
JohannesHoppe Nov 12, 2025
e2660c8
test: add comprehensive parameter passthrough tests for upgrade safety
JohannesHoppe Nov 13, 2025
56b7e25
more tests
JohannesHoppe Nov 14, 2025
d8c2ae7
feat: fork commander v3.0.2 to preserve critical --no- flag behavior
JohannesHoppe Nov 14, 2025
5998e07
fix: address commander-fork audit findings with critical bug fixes an…
JohannesHoppe Nov 19, 2025
3f26989
fix: achieve perfect parity with commander v3.0.2
JohannesHoppe Nov 21, 2025
5adf6e0
fix: achieve perfect parity with commander v3.0.2
JohannesHoppe Nov 21, 2025
e8148be
test: add true integration tests for Angular Builder path
JohannesHoppe Nov 21, 2025
8820b96
fix: address integration test audit findings
JohannesHoppe Nov 21, 2025
713b801
fix: implement all audit findings with comprehensive improvements
JohannesHoppe Nov 22, 2025
00a087b
fix: eliminate all 'as any' casts and implement audit findings
JohannesHoppe Nov 22, 2025
ade5cff
test: add comprehensive test coverage and refactor prepareOptions
JohannesHoppe Nov 23, 2025
e4a6834
refactor: extract option helpers and add gh-pages integration tests
JohannesHoppe Nov 23, 2025
9fff388
test: add comprehensive gh-pages behavioral snapshot tests
JohannesHoppe Nov 24, 2025
4705cc0
test: add comprehensive PR #186 compatibility tests
JohannesHoppe Nov 24, 2025
164315b
test: complete external audit fixes with intensive testing
JohannesHoppe Nov 24, 2025
d626f80
refactor: remove unnecessary remote fallback in getRemoteUrl
JohannesHoppe Nov 24, 2025
78b154d
docs: update TEST_COVERAGE_PLAN with accurate completion status
JohannesHoppe Nov 24, 2025
cbfb56e
fix: address all external audit weaknesses with comprehensive improve…
JohannesHoppe Nov 24, 2025
1e6bf0c
docs: finalize audit remediation documentation updates
JohannesHoppe Nov 24, 2025
e29dff7
test: fix remaining environment handling and error message assertions
JohannesHoppe Nov 25, 2025
ab01a7a
docs: add polish and clarity improvements to test suite
JohannesHoppe Nov 25, 2025
c4a5806
test: add comprehensive coverage for missing builder parameters
JohannesHoppe Nov 25, 2025
5900e53
test: add git prerequisite validation with loud failure messages
JohannesHoppe Nov 25, 2025
13427ba
docs: fix build target resolution precedence and add prerenderTarget …
JohannesHoppe Nov 25, 2025
5a0b03d
test: complete OP1 and OP2 audit items - 100% audit coverage achieved
JohannesHoppe Nov 25, 2025
d7a0e1c
docs: update README TOC to include --prerender-target section
JohannesHoppe Nov 25, 2025
edfd6d7
fix: remove hard-coded paths from test-prerequisites, document enviro…
JohannesHoppe Nov 25, 2025
086043f
docs: hide deprecated options and remove stale documentation
JohannesHoppe Nov 26, 2025
fcbe2f0
docs: add target precedence explanation and improve clarity
JohannesHoppe Nov 26, 2025
60c9764
docs: improve clarity and fix grammar issues
JohannesHoppe Nov 26, 2025
dbe3baa
docs: enforce deprecation policy - remove browserTarget from user docs
JohannesHoppe Nov 26, 2025
4bbfd76
docs: remove last browserTarget mention from user-facing docs
JohannesHoppe Nov 26, 2025
4bec7b3
docs: update CLAUDE.md with deprecation enforcement details
JohannesHoppe Dec 8, 2025
1d40b9f
docs: slash CLAUDE.md fluff - 394 to 233 lines (41% reduction)
JohannesHoppe Dec 9, 2025
a234a2a
docs: clarify Angular CLI --no-X flag handling in CLAUDE.md
JohannesHoppe Dec 12, 2025
81f3f14
fix: audit remediation - code quality and documentation improvements
JohannesHoppe Dec 12, 2025
08df2fb
fix: audit remediation - monkeypatch cleanup and code quality
JohannesHoppe Dec 12, 2025
c39e2ec
fix: restore .npmrc and document it in CLAUDE.md
JohannesHoppe Dec 12, 2025
8b9e6bb
feat: upgrade gh-pages from 3.1.0 to 6.3.0
JohannesHoppe Dec 13, 2025
6e07397
refactor: leverage gh-pages v6 native features
JohannesHoppe Dec 14, 2025
ef77802
refactor: improve test quality and code style
JohannesHoppe Dec 14, 2025
d6f1592
chore: remove obsolete TODO and clean up PublishOptions type
JohannesHoppe Dec 27, 2025
0d60706
settings
JohannesHoppe Dec 27, 2025
372bcfe
settings
JohannesHoppe Dec 27, 2025
edf52d9
chore: bump version to 2.0.4
JohannesHoppe Dec 27, 2025
dd717ba
ci: improve workflow - add cache, Node 24, cleaner steps
JohannesHoppe Dec 27, 2025
dc78d0d
fix: add missing type declarations to source control
JohannesHoppe Dec 27, 2025
d401375
fix: isolate tests from CI environment variables
JohannesHoppe Dec 27, 2025
970c5d0
fix: add Angular 20 compatibility for ng add schematic
JohannesHoppe Dec 27, 2025
9d62787
ci: add Angular version matrix test (18, 19, 20, 21)
JohannesHoppe Dec 27, 2025
cf41b95
fix(ci): use npx ng for Angular CLI commands
JohannesHoppe Dec 27, 2025
aaff2d7
fix(ci): add checkout and npm ci for module resolution in version tests
JohannesHoppe Dec 27, 2025
d6a00e1
fix(ci): add bare git repo as fake remote for deploy tests
JohannesHoppe Dec 27, 2025
f30fd9f
fix: handle Angular 20+ missing outputPath in deploy action
JohannesHoppe Dec 27, 2025
3bc4073
test: add Angular version compatibility tests with real fixtures
JohannesHoppe Dec 29, 2025
7266d18
fix: default browser to 'browser' when outputPath object omits it
JohannesHoppe Dec 29, 2025
5e4bb4e
refactor: remove irrelevant tests from angular-versions.spec.ts
JohannesHoppe Dec 29, 2025
6022f21
fix: strengthen isOutputPathObject type guard validation
JohannesHoppe Dec 29, 2025
d591584
feat!: require Angular 18+ and remove deprecated browserTarget
JohannesHoppe Dec 29, 2025
2e29f89
chore: update package-lock.json for >=18.0.0 dependencies
JohannesHoppe Dec 29, 2025
8213432
chore: remove all browserTarget references from codebase
JohannesHoppe Dec 29, 2025
ac2e701
feat: fail with clear error when browserTarget is used
JohannesHoppe Dec 30, 2025
fd2d1fb
refactor: use TRAVIS_BUILD_WEB_URL and require Angular 18+
JohannesHoppe Dec 30, 2025
0c935fb
chore: bump version to 2.1.0
JohannesHoppe Dec 30, 2025
e543772
fix: resolve TypeScript variable redeclaration in tests
JohannesHoppe Dec 30, 2025
7c8a68f
feat: add GitHub Actions build URL and improve documentation
JohannesHoppe Dec 30, 2025
4f8c822
test: add comprehensive tests for builder.ts (100% coverage)
JohannesHoppe Dec 30, 2025
da4ac2a
docs: update README with fixes and improvements
JohannesHoppe Dec 31, 2025
c52a438
docs: update contributor and GitHub Actions docs
JohannesHoppe Dec 31, 2025
3780662
docs: fix broken links
JohannesHoppe Jan 2, 2026
ffbc64e
ci: add workflow to check NPM authentication
JohannesHoppe Jan 2, 2026
a4c619f
chore: bump version to 3.0.0
JohannesHoppe Jan 6, 2026
b8616a3
ci: switch to Trusted Publishers with OIDC
JohannesHoppe Jan 6, 2026
6ad9007
ci: rename to npm-publish.yml with dry-run toggle
JohannesHoppe Jan 6, 2026
2cf4181
chore: remove obsolete prepublishOnly warning
JohannesHoppe Jan 6, 2026
ba753ae
docs: update publishing instructions for Trusted Publishers
JohannesHoppe Jan 6, 2026
b44c9a4
ci: add tag parameter and version display to publish workflow
JohannesHoppe Jan 6, 2026
efb14fc
style: unify badges to use shields.io
JohannesHoppe Jan 6, 2026
b7fbc45
fix: add upper bound to Angular version ranges
JohannesHoppe Jan 6, 2026
c1773e4
chore: update LICENSE year to 2026
JohannesHoppe Jan 6, 2026
f533677
merge: resolve conflict in npm-publish.yml (keep tag parameter)
JohannesHoppe Jan 6, 2026
8afa905
docs: add Angular.Schule training promotion
JohannesHoppe Jan 7, 2026
f5dcc6c
docs: remove Environments, FAQ and License sections
JohannesHoppe Jan 7, 2026
df61587
docs: update TOC and add About section
JohannesHoppe Jan 7, 2026
2f35959
docs: simplify Changelog section for v3
JohannesHoppe Jan 7, 2026
0004b96
docs: improve Quick Start intro and simplify Changelog
JohannesHoppe Jan 7, 2026
1e82c91
docs: rename Quick Start section
JohannesHoppe Jan 7, 2026
0426583
docs: use npm install --location=global and remove --defaults
JohannesHoppe Jan 7, 2026
52add3e
docs: fix grammar, spelling and add bilingual About section
JohannesHoppe Jan 7, 2026
d91a1fc
docs: highlight ng deploy auto-discovery feature
JohannesHoppe Jan 7, 2026
eb4cc5b
docs: clarify ng deploy behavior after installation
JohannesHoppe Jan 7, 2026
7361185
docs: add CLI prompt example for ng deploy
JohannesHoppe Jan 7, 2026
758a44b
docs: update branding to Angular.Schule
JohannesHoppe Jan 7, 2026
ef1e2f6
docs: use Angular emoji for About section
JohannesHoppe Jan 7, 2026
47fa792
docs: remove emoji from config section
JohannesHoppe Jan 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions .claude/settings.local.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"permissions": {
"allow": [
"Bash(npm test)",
"Bash(npm run build)",
"Bash(git log:*)",
"Bash(npm test:*)",
"Bash(gh issue view:*)",
"WebSearch",
"Bash(gh pr view:*)",
"Bash(gh pr diff:*)",
"Bash(git add:*)",
"Bash(gh run watch:*)",
"Bash(node -e:*)",
"Bash(gh run list:*)"
],
"deny": [],
"ask": []
}
}
125 changes: 106 additions & 19 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,38 +2,125 @@ name: Build and test

on:
push:
branches: [main]
branches: [main, big-update]

jobs:
build-and-deploy:
build-and-test:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
cache-dependency-path: src/package-lock.json

- name: Prepare
- name: Build and test
working-directory: src
run: |
cd src
npm install
npm ci
npm run build
npm run test
cd dist
npm link
cd ..
cd ..
npm install -g @angular/cli
ng new your-angular-project --defaults
cd your-angular-project

- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: dist
path: src/dist
retention-days: 1

# Test ng add and ng deploy across multiple Angular versions (sequentially)
# This catches breaking changes in angular.json structure
# Each test creates its own git repo and deploys locally to verify the full flow
#
# Why checkout + npm ci? The ng-add.js requires @angular-devkit/core which must
# be resolvable from the dist folder. Node.js resolves modules by traversing up
# from the file's location, so we need src/node_modules available.
test-angular-versions:
needs: build-and-test
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
cache-dependency-path: src/package-lock.json

- name: Install dependencies for module resolution
working-directory: src
run: npm ci

- name: Configure git
run: |
git config --global user.name "CI Bot"
git config --global user.email "[email protected]"

- name: Download build artifact
uses: actions/download-artifact@v4
with:
name: dist
path: src/dist

- name: Link angular-cli-ghpages
working-directory: src/dist
run: npm link

# Test projects are created OUTSIDE the repo to get their own git repos
# (Angular CLI creates a git repo by default with --defaults)
# Each test creates a bare repo as a fake remote to deploy to
- name: Test Angular 18
run: |
cd /tmp
git init --bare remote-18.git
npx @angular/cli@18 new test-app-18 --defaults
cd test-app-18
git remote add origin /tmp/remote-18.git
npm link angular-cli-ghpages
ng add angular-cli-ghpages
npx ng add angular-cli-ghpages
npx ng deploy
cd /tmp/remote-18.git && git branch | grep gh-pages
echo "Angular 18: build + deploy successful"

- name: Deploy
if: github.ref == 'refs/heads/main'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Test Angular 19
run: |
cd your-angular-project
ng deploy --name="The Buildbot" --email="[email protected]" --cname=angular-cli-ghpages.angular.schule
cd /tmp
git init --bare remote-19.git
npx @angular/cli@19 new test-app-19 --defaults
cd test-app-19
git remote add origin /tmp/remote-19.git
npm link angular-cli-ghpages
npx ng add angular-cli-ghpages
npx ng deploy
cd /tmp/remote-19.git && git branch | grep gh-pages
echo "Angular 19: build + deploy successful"

- name: Test Angular 20
run: |
cd /tmp
git init --bare remote-20.git
npx @angular/cli@20 new test-app-20 --defaults
cd test-app-20
git remote add origin /tmp/remote-20.git
npm link angular-cli-ghpages
npx ng add angular-cli-ghpages
npx ng deploy
cd /tmp/remote-20.git && git branch | grep gh-pages
echo "Angular 20: build + deploy successful"

- name: Test Angular 21
run: |
cd /tmp
git init --bare remote-21.git
npx @angular/cli@21 new test-app-21 --defaults
cd test-app-21
git remote add origin /tmp/remote-21.git
npm link angular-cli-ghpages
npx ng add angular-cli-ghpages
npx ng deploy
cd /tmp/remote-21.git && git branch | grep gh-pages
echo "Angular 21: build + deploy successful"
34 changes: 28 additions & 6 deletions .github/workflows/npm-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,13 @@ on:
type: boolean
default: true
description: 'Dry-run (test without publishing)'
tag:
type: choice
default: 'latest'
options:
- latest
- next
description: 'npm tag (use "next" for pre-release/RC versions)'

# Required for OIDC token exchange with npm (Trusted Publishers)
permissions:
Expand All @@ -33,14 +40,28 @@ jobs:
npm run build
npm test

- name: Show version info
working-directory: src/dist
run: |
VERSION=$(node -p "require('./package.json').version")
echo "📦 Package: angular-cli-ghpages"
echo "📌 Version: $VERSION"
echo "🏷️ Tag: ${{ inputs.tag }}"
echo ""
if [ "${{ inputs.dry_run }}" = "true" ]; then
echo "🧪 Mode: DRY-RUN (no actual publish)"
else
echo "🚀 Mode: PUBLISH FOR REAL"
fi

- name: Publish to npm (dry-run)
if: ${{ inputs.dry_run }}
working-directory: src/dist
run: |
echo "🧪 DRY-RUN MODE"
echo "==============="
echo ""
npm publish --provenance --dry-run
echo "==============="
npm publish --provenance --tag ${{ inputs.tag }} --dry-run
echo "==============="
echo ""
echo "✅ Dry-run successful! Package is ready to publish."
echo " To publish for real, run this workflow again with dry_run unchecked."
Expand All @@ -49,9 +70,10 @@ jobs:
if: ${{ !inputs.dry_run }}
working-directory: src/dist
run: |
echo "🚀 PUBLISHING TO NPM"
echo "===================="
echo ""
npm publish --provenance
echo "==============="
npm publish --provenance --tag ${{ inputs.tag }}
echo "==============="
echo ""
echo "✅ Published successfully with provenance!"
echo " https://www.npmjs.com/package/angular-cli-ghpages"
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ node_modules
.bash_history
*.swp
*.swo
*.d.ts
.idea

*.classpath
Expand Down
Loading