Skip to content

Commit 298f7ea

Browse files
authored
Merge pull request #6 from fells-code/dev
Demo state ready point
2 parents 758f53b + a2e5ade commit 298f7ea

29 files changed

Lines changed: 792 additions & 453 deletions
Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
name: Beta Release Pipeline
2+
3+
on:
4+
push:
5+
branches:
6+
- dev
7+
8+
permissions:
9+
contents: write
10+
id-token: write
11+
12+
jobs:
13+
test:
14+
name: Run Tests
15+
runs-on: ubuntu-latest
16+
17+
steps:
18+
- uses: actions/checkout@v4
19+
with:
20+
fetch-depth: 2
21+
22+
- uses: actions/setup-node@v4
23+
with:
24+
node-version: 20
25+
26+
- name: Install Core dependencies
27+
working-directory: packages/core
28+
run: npm ci
29+
30+
- name: Install Express dependencies
31+
working-directory: packages/express
32+
run: npm ci
33+
34+
- name: Test Core
35+
working-directory: packages/core
36+
run: npm test
37+
38+
- name: Test Express
39+
working-directory: packages/express
40+
run: npm test
41+
42+
bump-beta-versions:
43+
name: Bump Beta Versions
44+
runs-on: ubuntu-latest
45+
needs: test
46+
if: "!contains(github.event.head_commit.message, 'chore: bump beta versions')"
47+
48+
outputs:
49+
core_changed: ${{ steps.changes.outputs.core }}
50+
express_changed: ${{ steps.changes.outputs.express }}
51+
52+
steps:
53+
- uses: actions/checkout@v4
54+
with:
55+
fetch-depth: 2
56+
57+
- name: Detect package changes
58+
id: changes
59+
run: |
60+
CORE=false
61+
EXPRESS=false
62+
63+
if git diff --name-only HEAD~1 HEAD | grep '^packages/core/'; then
64+
CORE=true
65+
fi
66+
67+
if git diff --name-only HEAD~1 HEAD | grep '^packages/express/'; then
68+
EXPRESS=true
69+
fi
70+
71+
echo "core=$CORE" >> $GITHUB_OUTPUT
72+
echo "express=$EXPRESS" >> $GITHUB_OUTPUT
73+
74+
- uses: actions/setup-node@v4
75+
if: steps.changes.outputs.core == 'true' || steps.changes.outputs.express == 'true'
76+
with:
77+
node-version: 20
78+
79+
- name: Bump core beta version
80+
if: steps.changes.outputs.core == 'true'
81+
working-directory: packages/core
82+
run: npm version prerelease --preid=beta --no-git-tag-version
83+
84+
- name: Bump express beta version
85+
if: steps.changes.outputs.express == 'true'
86+
working-directory: packages/express
87+
run: npm version prerelease --preid=beta --no-git-tag-version
88+
89+
- name: Commit version bumps
90+
if: steps.changes.outputs.core == 'true' || steps.changes.outputs.express == 'true'
91+
run: |
92+
git config user.name "github-actions[bot]"
93+
git config user.email "github-actions[bot]@users.noreply.github.com"
94+
git add packages/*/package.json
95+
git commit -m "chore: bump beta versions"
96+
git push origin dev
97+
98+
publish-core-beta:
99+
name: Publish Core Beta
100+
runs-on: ubuntu-latest
101+
needs: bump-beta-versions
102+
if: needs.bump-beta-versions.outputs.core_changed == 'true'
103+
104+
steps:
105+
- uses: actions/checkout@v4
106+
with:
107+
ref: dev
108+
fetch-depth: 0
109+
110+
- uses: actions/setup-node@v4
111+
with:
112+
node-version: 20
113+
registry-url: https://registry.npmjs.org/
114+
115+
- name: Install dependencies
116+
working-directory: packages/core
117+
run: npm ci
118+
119+
- name: Build
120+
working-directory: packages/core
121+
run: npm run build
122+
123+
- name: Publish beta
124+
working-directory: packages/core
125+
run: npm publish --tag beta --access public
126+
env:
127+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
128+
129+
publish-express-beta:
130+
name: Publish Express Beta
131+
runs-on: ubuntu-latest
132+
needs: bump-beta-versions
133+
if: needs.bump-beta-versions.outputs.express_changed == 'true'
134+
135+
steps:
136+
- uses: actions/checkout@v4
137+
with:
138+
ref: dev
139+
fetch-depth: 0
140+
141+
- uses: actions/setup-node@v4
142+
with:
143+
node-version: 20
144+
registry-url: https://registry.npmjs.org/
145+
146+
- name: Install dependencies
147+
working-directory: packages/express
148+
run: npm ci
149+
150+
- name: Build
151+
working-directory: packages/express
152+
run: npm run build
153+
154+
- name: Publish beta
155+
working-directory: packages/express
156+
run: npm publish --tag beta --access public
157+
env:
158+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

.github/workflows/ci.yml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
name: tests
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- dev
7+
- main
8+
9+
jobs:
10+
test:
11+
name: Run Tests
12+
runs-on: ubuntu-latest
13+
14+
steps:
15+
- uses: actions/checkout@v4
16+
17+
- uses: actions/setup-node@v4
18+
with:
19+
node-version: 20
20+
21+
- name: Install Core dependencies
22+
working-directory: packages/core
23+
run: npm ci
24+
25+
- name: Install Express dependencies
26+
working-directory: packages/express
27+
run: npm ci
28+
29+
- name: Test Core
30+
working-directory: packages/core
31+
run: npm test
32+
33+
- name: Test Express
34+
working-directory: packages/express
35+
run: npm test

.github/workflows/release.yml

Lines changed: 8 additions & 109 deletions
Original file line numberDiff line numberDiff line change
@@ -1,123 +1,21 @@
1-
name: CI & Release
1+
name: Release
22

33
on:
44
pull_request:
55
push:
6-
branches:
7-
- dev
8-
- main
96
tags:
107
- "core-v*"
118
- "express-v*"
129

1310
jobs:
14-
test:
15-
name: Run Tests
16-
runs-on: ubuntu-latest
17-
if: github.event_name == 'pull_request'
18-
steps:
19-
- uses: actions/checkout@v4
20-
21-
- uses: actions/setup-node@v4
22-
with:
23-
node-version: 20
24-
25-
- name: Install express dependencies
26-
working-directory: packages/express
27-
run: npm install
28-
29-
- name: Install core dependencies
30-
working-directory: packages/core
31-
run: npm install
32-
33-
- name: Test Core
34-
working-directory: packages/core
35-
run: npm test
36-
37-
- name: Test Express
38-
working-directory: packages/express
39-
run: npm test
40-
41-
publish-express-beta:
42-
name: Publish Express Beta
43-
runs-on: ubuntu-latest
44-
if: github.ref == 'refs/heads/dev'
45-
permissions:
46-
contents: write
47-
id-token: write
48-
steps:
49-
- uses: actions/checkout@v4
50-
51-
- uses: actions/setup-node@v4
52-
with:
53-
node-version: 20
54-
registry-url: https://registry.npmjs.org/
55-
56-
- name: Install dependencies
57-
working-directory: packages/express
58-
run: npm ci
59-
60-
- name: Build
61-
working-directory: packages/express
62-
run: npm run build
63-
64-
- name: Bump beta version
65-
working-directory: packages/express
66-
run: |
67-
git config user.name "github-actions[bot]"
68-
git config user.email "github-actions[bot]@users.noreply.github.com"
69-
npm version prerelease --preid=beta
70-
git push --follow-tags origin dev
71-
72-
- name: Publish beta
73-
working-directory: packages/express
74-
run: npm publish --tag beta --access public
75-
env:
76-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
77-
78-
publish-core-beta:
79-
name: Publish Core Beta
80-
runs-on: ubuntu-latest
81-
if: github.ref == 'refs/heads/dev'
82-
permissions:
83-
contents: write
84-
id-token: write
85-
steps:
86-
- uses: actions/checkout@v4
87-
88-
- uses: actions/setup-node@v4
89-
with:
90-
node-version: 20
91-
registry-url: https://registry.npmjs.org/
92-
93-
- name: Install dependencies
94-
working-directory: packages/core
95-
run: npm ci
96-
97-
- name: Build
98-
working-directory: packages/core
99-
run: npm run build
100-
101-
- name: Bump beta version
102-
working-directory: packages/core
103-
run: |
104-
git config user.name "github-actions[bot]"
105-
git config user.email "github-actions[bot]@users.noreply.github.com"
106-
npm version prerelease --preid=beta
107-
git push --follow-tags origin dev
108-
109-
- name: Publish beta
110-
working-directory: packages/core
111-
run: npm publish --tag beta --access public
112-
env:
113-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
11411
publish-stable:
11512
name: Publish Stable Release
11613
runs-on: ubuntu-latest
117-
if: startsWith(github.ref, 'refs/tags/')
14+
if: startsWith(github.ref, 'refs/tags/core-v') || startsWith(github.ref, 'refs/tags/express-v')
11815
permissions:
119-
contents: write
16+
contents: read
12017
id-token: write
18+
12119
steps:
12220
- uses: actions/checkout@v4
12321

@@ -129,11 +27,12 @@ jobs:
12927
- name: Determine package
13028
id: pkg
13129
run: |
132-
if [[ "${GITHUB_REF}" == refs/tags/core-* ]]; then
30+
if [[ "${GITHUB_REF}" == refs/tags/core-v* ]]; then
13331
echo "package=core" >> $GITHUB_OUTPUT
134-
elif [[ "${GITHUB_REF}" == refs/tags/express-* ]]; then
32+
elif [[ "${GITHUB_REF}" == refs/tags/express-v* ]]; then
13533
echo "package=express" >> $GITHUB_OUTPUT
13634
else
35+
echo "Unknown tag format"
13736
exit 1
13837
fi
13938
@@ -145,7 +44,7 @@ jobs:
14544
working-directory: packages/${{ steps.pkg.outputs.package }}
14645
run: npm run build
14746

148-
- name: Publish stable
47+
- name: Publish stable to npm
14948
working-directory: packages/${{ steps.pkg.outputs.package }}
15049
run: npm publish --access public
15150
env:

0 commit comments

Comments
 (0)