Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
53 changes: 17 additions & 36 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,60 +3,41 @@ name: Publish
on:
release:
types: [published]
# Manual re-run from the default branch, e.g. when a release publish failed.
workflow_dispatch:

jobs:
build:
runs-on: ubuntu-latest

strategy:
matrix:
node-version: [20.x]

steps:
- uses: actions/checkout@v1
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Build and Test
run: |
npm install
npm run pack
cd test-app
npm install
npm install ../dist/imagekit-angular/imagekit-angular-*.tgz --no-save
npx playwright install --with-deps
npm run test:e2e
env:
CI: true


publish:
needs: build
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
steps:
- uses: actions/checkout@v1
- uses: actions/setup-node@v1
- uses: actions/checkout@v4
- name: Use Node.js 24.x
uses: actions/setup-node@v4
with:
node-version: 20
node-version: 24.x
registry-url: https://registry.npmjs.org/
- name: Upgrade npm for OIDC trusted publishing
# Trusted publishing needs npm >= 11.5.1. Pin the 11 line: npm@latest
# is now 12.x, which refuses to install on older Node runners.
run: |
npm install -g npm@11
npm --version
- name: NPM Publish
run: |
npm install
npm run build
cd dist/imagekit-angular
npm config set //registry.npmjs.org/:_authToken=$NODE_AUTH_TOKEN
# print the NPM user name for validation
npm whoami
VERSION=$(node -p "require('./package.json').version" )
VERSION=$(node -p "require('./package.json').version")
# Only publish stable versions to the latest tag
if [[ "$VERSION" =~ ^[^-]+$ ]]; then
NPM_TAG="latest"
else
NPM_TAG="beta"
fi
echo "Publishing $VERSION with $NPM_TAG tag."
npm publish --tag $NPM_TAG --access public
npm publish --tag $NPM_TAG --provenance --access public
env:
NODE_AUTH_TOKEN: ${{secrets.npm_token}}
CI: true
22 changes: 22 additions & 0 deletions .github/workflows/release-please.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: Release Please
on:
push:
branches:
- master
# Manual trigger, e.g. when GitHub drops the push event for a merge.
workflow_dispatch:

permissions:
contents: write
pull-requests: write

jobs:
release-please:
if: github.repository == 'imagekit-developer/imagekit-angular'
runs-on: ubuntu-latest

steps:
- uses: googleapis/release-please-action@5c625bfb5d1ff62eadeeb3772007f7f66fdcf071 # v4.4.1
id: release
with:
token: ${{ secrets.RELEASE_PLEASE_TOKEN }}
63 changes: 63 additions & 0 deletions .github/workflows/sync-release-as.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: Sync Release-As from release PR title

on:
pull_request:
types: [edited]

permissions:
contents: write

jobs:
sync:
if: >-
github.event.pull_request.base.ref == 'master' &&
startsWith(github.event.pull_request.head.ref, 'release-please--') &&
github.event.changes.title != null
runs-on: ubuntu-latest
steps:
- name: Extract versions from old and new title
id: parse
env:
NEW_TITLE: ${{ github.event.pull_request.title }}
OLD_TITLE: ${{ github.event.changes.title.from }}
run: |
# Anchored on pull-request-title-pattern "release: ${version}" from release-please-config.json.
extract() {
echo "$1" | grep -oE '^release:[[:space:]]+v?[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z.-]+)?' \
| sed -E 's/^release:[[:space:]]+v?//'
}
NEW_VERSION=$(extract "$NEW_TITLE")
OLD_VERSION=$(extract "$OLD_TITLE")
echo "old=$OLD_VERSION"
echo "new=$NEW_VERSION"
if [ -z "$NEW_VERSION" ]; then
echo "::notice::No semver in new title; nothing to do."
echo "skip=true" >> "$GITHUB_OUTPUT"
exit 0
fi
if [ "$NEW_VERSION" = "$OLD_VERSION" ]; then
echo "::notice::Version unchanged ($NEW_VERSION); not pushing."
echo "skip=true" >> "$GITHUB_OUTPUT"
exit 0
fi
echo "version=$NEW_VERSION" >> "$GITHUB_OUTPUT"

- name: Check out main
if: steps.parse.outputs.skip != 'true'
uses: actions/checkout@v6
with:
ref: master
token: ${{ secrets.RELEASE_PLEASE_TOKEN }}
fetch-depth: 1

- name: Push empty Release-As commit
if: steps.parse.outputs.skip != 'true'
env:
VERSION: ${{ steps.parse.outputs.version }}
run: |
git config user.name "release-as-bot"
git config user.email "release-as-bot@users.noreply.github.com"
git commit --allow-empty -m "chore: pin next release

Release-As: ${VERSION}"
git push origin master
3 changes: 3 additions & 0 deletions .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
".": "6.0.0"
}
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# Changelog

## 6.0.0

This is a major release that includes breaking changes. Please refer to the [official documentation](https://imagekit.io/docs/integration/angular) for up-to-date usage instructions.
14 changes: 7 additions & 7 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "imagekit-angular-workspace",
"version": "0.0.0",
"version": "6.0.0",
"engines": {
"node": ">=18.0.0"
},
Expand All @@ -23,7 +23,7 @@
"@angular/common": "^15.0.0",
"@angular/core": "^15.0.0",
"@angular/platform-browser": "^15.0.0",
"@imagekit/javascript": "^5.1.0"
"@imagekit/javascript": "^5.5.0"
},
"devDependencies": {
"@angular-devkit/build-angular": "^15.0.0",
Expand Down
2 changes: 1 addition & 1 deletion projects/imagekit-angular/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
"@angular/core": ">=14.0.0 <22.0.0"
},
"dependencies": {
"@imagekit/javascript": "^5.1.0",
"@imagekit/javascript": "^5.5.0",
"tslib": "^2.3.0"
}
}
Expand Down
70 changes: 70 additions & 0 deletions release-please-config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
{
"$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json",
"packages": {
".": {
"release-type": "node",
"package-name": "@imagekit/angular",
"extra-files": [
{
"type": "json",
"path": "projects/imagekit-angular/package.json",
"jsonpath": "$.version"
}
]
}
},
"include-v-in-tag": false,
"include-component-in-tag": false,
"bump-minor-pre-major": true,
"bump-patch-for-minor-pre-major": false,
"pull-request-header": "Automated Release PR",
"pull-request-title-pattern": "release: ${version}",
"changelog-sections": [
{
"type": "feat",
"section": "Features"
},
{
"type": "fix",
"section": "Bug Fixes"
},
{
"type": "perf",
"section": "Performance Improvements"
},
{
"type": "revert",
"section": "Reverts"
},
{
"type": "chore",
"section": "Chores"
},
{
"type": "docs",
"section": "Documentation"
},
{
"type": "style",
"section": "Styles"
},
{
"type": "refactor",
"section": "Refactors"
},
{
"type": "test",
"section": "Tests",
"hidden": true
},
{
"type": "build",
"section": "Build System"
},
{
"type": "ci",
"section": "Continuous Integration",
"hidden": true
}
]
}
6 changes: 5 additions & 1 deletion test-app/e2e/csr.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@ test("CSR test case", async ({ page }) => {
// Grab the entire HTML from the element
const outputHtml = await outputElement.evaluate(el => el.outerHTML);

// Angular stamps its exact version on the root element; normalize it so the
// snapshot doesn't break on every Angular patch release.
const normalizedHtml = outputHtml.replace(/ng-version="[^"]*"/g, 'ng-version="x.y.z"');

// Compare against a stored snapshot
expect(outputHtml).toMatchSnapshot();
expect(normalizedHtml).toMatchSnapshot();
});

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

6 changes: 5 additions & 1 deletion test-app/e2e/ssr.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,10 @@ test("SSR test case", async ({ page }) => {
// Grab the entire HTML from the element
const outputHtml = await outputElement.evaluate(el => el.outerHTML);

// Angular stamps its exact version on the root element; normalize it so the
// snapshot doesn't break on every Angular patch release.
const normalizedHtml = outputHtml.replace(/ng-version="[^"]*"/g, 'ng-version="x.y.z"');

// Compare against a stored snapshot
expect(outputHtml).toMatchSnapshot();
expect(normalizedHtml).toMatchSnapshot();
});
Loading
Loading