Skip to content

Commit d7025ff

Browse files
committed
ci: added release workflow
1 parent 04d2719 commit d7025ff

File tree

7 files changed

+59
-3
lines changed

7 files changed

+59
-3
lines changed

.github/workflows/release.yml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
name: Package Release
2+
3+
on:
4+
push:
5+
tags:
6+
- '@firebase-ui/*'
7+
8+
jobs:
9+
release:
10+
runs-on: ubuntu-latest
11+
12+
steps:
13+
- uses: actions/checkout@v4
14+
15+
- uses: actions/setup-node@v4
16+
with:
17+
node-version: 20
18+
19+
- uses: pnpm/action-setup@v2
20+
with:
21+
version: 8
22+
23+
- run: pnpm install
24+
25+
- id: get-package-source
26+
run: |
27+
tag="${GITHUB_REF#refs/tags/}"
28+
name_with_scope=$(echo "$tag" | cut -d'@' -f2-)
29+
scope=$(echo "$name_with_scope" | cut -d'/' -f1)
30+
name=$(echo "$name_with_scope" | cut -d'/' -f2 | cut -d'@' -f1)
31+
version=$(echo "$tag" | grep -oE '[0-9]+\.[0-9]+\.[0-9]+')
32+
33+
echo "SCOPE=$scope" >> "$GITHUB_ENV"
34+
echo "PACKAGE=$name" >> "$GITHUB_ENV"
35+
echo "VERSION=$version" >> "$GITHUB_ENV"
36+
echo "TAG=$tag" >> "$GITHUB_ENV"
37+
echo "file=releases/${scope}-${name}-${version}.tgz" >> "$GITHUB_OUTPUT"
38+
39+
- run: pnpm --filter "@${{ env.SCOPE }}/${{ env.PACKAGE }}" run release
40+
41+
- uses: softprops/action-gh-release@v2
42+
with:
43+
tag_name: ${{ env.TAG }}
44+
files: ${{ steps.get-package-source.outputs.file }}

package.json

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,20 @@
77
"build:core": "pnpm --filter=@firebase-ui/core run build",
88
"build:translations": "pnpm --filter=@firebase-ui/translations run build",
99
"build:react": "pnpm --filter=@firebase-ui/react run build",
10+
11+
"publish:tags:core": "pnpm --filter=@firebase-ui/core run publish:tags",
12+
"publish:tags:translations": "pnpm --filter=@firebase-ui/translations run publish:tags",
13+
"publish:tags:react": "pnpm --filter=@firebase-ui/react run publish:tags",
14+
"publish:tags:angular": "pnpm --filter=@firebase-ui/angular run publish:tags",
15+
"publish:tags:styles": "pnpm --filter=@firebase-ui/styles run publish:tags",
16+
"publish:tags:all": "pnpm i && pnpm run publish:tags:core && pnpm run publish:tags:translations && pnpm run publish:tags:react && pnpm run publish:tags:styles && pnpm run release:angular",
17+
1018
"release:core": "pnpm --filter=@firebase-ui/core run release",
1119
"release:translations": "pnpm --filter=@firebase-ui/translations run release",
1220
"release:react": "pnpm --filter=@firebase-ui/react run release",
1321
"release:angular": "pnpm --filter=@firebase-ui/angular run release",
1422
"release:styles": "pnpm --filter=@firebase-ui/styles run release",
15-
"release:all": "pnpm run release:core && pnpm run release:translations && pnpm run release:react && pnpm run release:styles && pnpm run release:angular"
16-
23+
"release:all": "pnpm i && pnpm run release:core && pnpm run release:translations && pnpm run release:react && pnpm run release:styles && pnpm run release:angular"
1724
},
1825
"devDependencies": {
1926
"rimraf": "^6.0.1",

packages/angular/projects/firebaseui-angular/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
"name": "@firebase-ui/angular",
33
"version": "0.0.1",
44
"scripts": {
5+
"publish:tags": "sh -c 'TAG=\"${npm_package_name}@${npm_package_version}\"; git tag --list \"$TAG\" | grep . || git tag \"$TAG\"; git push origin \"$TAG\"'",
56
"release": "pnpm pack --pack-destination ../../../../releases/"
67
},
78
"peerDependencies": {

packages/firebaseui-core/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
"test:integration": "vitest run tests/integration",
3131
"test:integration:watch": "vitest tests/integration",
3232
"test": "vitest run",
33+
"publish:tags": "sh -c 'TAG=\"${npm_package_name}@${npm_package_version}\"; git tag --list \"$TAG\" | grep . || git tag \"$TAG\"; git push origin \"$TAG\"'",
3334
"release": "pnpm pack --pack-destination ../../releases/"
3435
},
3536
"keywords": [

packages/firebaseui-react/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@
2828
"test:unit:watch": "vitest tests/unit",
2929
"test:integration": "vitest run tests/integration",
3030
"test:integration:watch": "vitest tests/integration",
31-
"release": "pnpm pack --pack-destination ../../releases/"
31+
"publish:tags": "sh -c 'TAG=\"${npm_package_name}@${npm_package_version}\"; git tag --list \"$TAG\" | grep . || git tag \"$TAG\"; git push origin \"$TAG\"'",
32+
"release": "pnpm pack --pack-destination ../../releases/"
3233
},
3334
"peerDependencies": {
3435
"@firebase-ui/core": "workspace:*",

packages/firebaseui-styles/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
"postinstall": "pnpm run build",
1212
"build": "npx -y @tailwindcss/cli -i ./src.css -o ./dist.css --minify",
1313
"build:local": "pnpm run build && pnpm pack",
14+
"publish:tags": "sh -c 'TAG=\"${npm_package_name}@${npm_package_version}\"; git tag --list \"$TAG\" | grep . || git tag \"$TAG\"; git push origin \"$TAG\"'",
1415
"release": "pnpm pack --pack-destination ../../releases/"
1516
},
1617
"devDependencies": {

packages/firebaseui-translations/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
"lint": "tsc --noEmit",
2626
"format": "prettier --write \"src/**/*.ts\"",
2727
"clean": "rimraf dist",
28+
"publish:tags": "sh -c 'TAG=\"${npm_package_name}@${npm_package_version}\"; git tag --list \"$TAG\" | grep . || git tag \"$TAG\"; git push origin \"$TAG\"'",
2829
"release": "pnpm pack --pack-destination ../../releases/"
2930
},
3031
"devDependencies": {

0 commit comments

Comments
 (0)