Skip to content

Commit 0ff29bb

Browse files
committed
chore: script generating versions
0 parents  commit 0ff29bb

File tree

4 files changed

+251
-0
lines changed

4 files changed

+251
-0
lines changed
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
name: Check and update
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
schedule:
8+
- cron: '0 */2 * * *'
9+
10+
jobs:
11+
build:
12+
runs-on: macOS-latest
13+
steps:
14+
- uses: actions/checkout@v4
15+
with:
16+
fetch-depth: 0
17+
- uses: actions/setup-node@v3
18+
with:
19+
node-version: '18.x'
20+
- name: Set git user
21+
run: |
22+
git config --global user.email [email protected]
23+
git config --global user.name cexbrayat
24+
git remote set-url origin https://$GITHUB_ACTOR:[email protected]/cexbrayat/angular-cli-ssr-diff.git
25+
env:
26+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
27+
- name: Generate new version
28+
run: ./newVersion.sh

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
ponyracer/README.md

README.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Angular CLI SSR diff
2+
3+
This is a repository for SSR application maintainers.
4+
If you are looking for the differences in a classic CLI project, check out https://github.com/cexbrayat/angular-cli-diff
5+
6+
This repository exposes an Angular CLI app generated with
7+
`ng new ponyracer --ssr`,
8+
(starting from v17.0.0-next.6 when the option was introduced).
9+
10+
A dedicated branch per version makes changes very easy
11+
to watch. For example:
12+
13+
* https://github.com/cexbrayat/angular-cli-ssr-diff/compare/18.1.0...18.2.0
14+
15+
See table below for the complete list.
16+
17+
Note that this is inspired by [RN diff](https://github.com/ncuillery/rn-diff).
18+
19+
This is a small project that we needed to keep our ebook [Become a ninja with Angular](https://books.ninja-squad.com/angular)
20+
and our [online training about Angular](https://angular-exercises.ninja-squad.com) up to date,
21+
we hope it can be useful for you too!
22+
23+
## Version changes
24+
25+
Version|Compare view|Stats
26+
----|----|----
27+
28+
29+
30+
## Why this repository ?
31+
32+
After an upgrade of Angular CLI on your library, you'll have to keep the configuration up-to-date, and it can be hard to keep track.
33+
34+
This project lets you easily know what changed. For example, from
35+
[18.1.0 to the 18.2.0](https://github.com/cexbrayat/angular-cli-ssr-diff/compare/18.1.0...18.2.0).

newVersion.sh

Lines changed: 187 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,187 @@
1+
#!/bin/bash
2+
3+
set -e
4+
5+
versions=$(npm view @angular/cli versions --json)
6+
7+
versions=${versions//\"/}
8+
versions=${versions//\[/}
9+
versions=${versions//\]/}
10+
versions=${versions//\,/}
11+
12+
versions=(${versions})
13+
14+
blocklist=(1.0.0-beta.28.3 1.0.0-beta.29 1.0.0-beta.30 1.0.0-beta.31 1.0.0-beta.32
15+
1.0.0-beta.32.2 1.0.0-beta.32.3 1.0.0-beta.33 1.0.0-beta.33.1
16+
1.0.0-rc.0 1.0.0-rc.1 1.0.0-rc.2 1.0.0-rc.3 1.0.0-rc.4
17+
1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6
18+
1.1.0-beta.0 1.1.0-beta.1 1.1.0-rc.0 1.1.0-rc.1 1.1.0-rc.2
19+
1.1.0 1.1.1 1.1.2 1.1.3
20+
1.2.0-beta.0 1.2.0-beta.1 1.2.0-rc.0 1.2.0-rc.1
21+
1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8
22+
1.3.0-beta.0 1.3.0-beta.1
23+
1.3.0-rc.0 1.3.0-rc.1 1.3.0-rc.2 1.3.0-rc.3 1.3.0-rc.4 1.3.0-rc.5
24+
1.3.0 1.3.1 1.3.2
25+
1.4.0-beta.0 1.4.0-beta.1 1.4.0-beta.2
26+
1.4.0-rc.0 1.4.0-rc.1 1.4.0-rc.2
27+
1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.4.10
28+
1.5.0-beta.0 1.5.0-beta.1 1.5.0-beta.2 1.5.0-beta.3 1.5.0-beta.4
29+
1.5.0-rc.0 1.5.0-rc.1 1.5.0-rc.2 1.5.0-rc.3 1.5.0-rc.4 1.5.0-rc.5 1.5.0-rc.6 1.5.0-rc.7 1.5.0-rc.8
30+
1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6
31+
1.6.0-beta.0 1.6.0-beta.1 1.6.0-beta.2
32+
1.6.0-rc.0 1.6.0-rc.1 1.6.0-rc.2
33+
1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8
34+
1.7.0-beta.0 1.7.0-beta.1 1.7.0-beta.2 1.7.0-beta.3
35+
1.7.0-rc.0
36+
1.7.0 1.7.1 1.7.2 1.7.3 1.7.4
37+
6.0.0-beta.2 6.0.0-beta.3 6.0.0-beta.4 6.0.0-beta.5 6.0.0-beta.6 6.0.0-beta.7 6.0.0-beta.8 6.0.0-beta.9
38+
6.0.0-rc.0 6.0.0-rc.1 6.0.0-rc.2 6.0.0-rc.3 6.0.0-rc.4 6.0.0-rc.5 6.0.0-rc.6 6.0.0-rc.7 6.0.0-rc.8 6.0.0-rc.9 6.0.0-rc.10
39+
6.0.0 6.0.1 6.0.2 6.0.3 6.0.4 6.0.5 6.0.7 6.0.8
40+
6.1.0-beta.0 6.1.0-beta.2
41+
6.1.0-rc.0 6.1.0-rc.1 6.1.0-rc.2 6.1.0-rc.3
42+
6.1.0 6.1.1 6.1.2 6.1.3 6.1.4 6.1.5
43+
6.2.0-beta.0 6.2.0-beta.1 6.2.0-beta.2 6.2.0-beta.3
44+
6.2.0-rc.0 6.2.0-rc.1
45+
6.2.0 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.2.6 6.2.7 6.2.8 6.2.9
46+
7.0.0-beta.0 7.0.0-beta.1 7.0.0-beta.2 7.0.0-beta.3 7.0.0-beta.4
47+
7.0.0-rc.0 7.0.0-rc.1 7.0.0-rc.2 7.0.0-rc.3
48+
7.0.1 7.0.2 7.0.3 7.0.4 7.0.5 7.0.6 7.0.7
49+
7.1.0-beta.0 7.1.0-beta.1 7.1.0-rc.0
50+
7.1.0 7.1.1 7.1.2 7.1.3 7.1.4
51+
7.2.0-beta.0 7.2.0-beta.1 7.2.0-beta.2 7.2.0-rc.0
52+
7.2.0 7.2.1 7.2.2 7.2.3 7.2.4
53+
7.3.0-beta.0 7.3.0-rc.0
54+
7.3.0 7.3.1 7.3.2 7.3.3 7.3.4 7.3.5 7.3.6 7.3.7 7.3.8 7.3.9 7.3.10
55+
8.0.0-beta.0 8.0.0-beta.1 8.0.0-beta.2 8.0.0-beta.4 8.0.0-beta.5 8.0.0-beta.6 8.0.0-beta.7
56+
8.0.0-beta.8 8.0.0-beta.9 8.0.0-beta.10 8.0.0-beta.11 8.0.0-beta.12 8.0.0-beta.13 8.0.0-beta.14
57+
8.0.0-beta.15 8.0.0-beta.16 8.0.0-beta.17 8.0.0-beta.18
58+
8.0.0-rc.0 8.0.0-rc.1 8.0.0-rc.2 8.0.0-rc.3 8.0.0-rc.4
59+
8.0.0 8.0.1 8.0.2 8.0.3 8.0.4 8.0.5 8.0.6
60+
8.1.0-beta.0 8.1.0-beta.1 8.1.0-beta.2 8.1.0-beta.3 8.1.0-rc.0 8.1.0 8.1.1 8.1.2 8.1.3
61+
8.2.0-next.0 8.2.0-next.1 8.2.0-rc.0 8.2.0 8.2.1 8.2.2
62+
8.3.0-next.0 8.3.0-next.1 8.3.0-next.2 8.3.0-rc.0
63+
8.3.0 8.3.1 8.3.2 8.3.3 8.3.4 8.3.5 8.3.6 8.3.7 8.3.8 8.3.9 8.3.10 8.3.12 8.3.13
64+
8.3.14 8.3.15 8.3.16 8.3.17 8.3.18 8.3.19 8.3.20 8.3.21 8.3.22 8.3.23 8.3.24 8.3.25 8.3.26 8.3.27 8.3.28 8.3.29
65+
9.0.0-next.0 9.0.0-next.1 9.0.0-next.2 9.0.0-next.3 9.0.0-next.4 9.0.0-next.5 9.0.0-next.6 9.0.0-next.7 9.0.0-next.8 9.0.0-next.9
66+
9.0.0-next.10 9.0.0-next.11 9.0.0-next.12 9.0.0-next.13 9.0.0-next.14 9.0.0-next.15 9.0.0-next.16 9.0.0-next.17 9.0.0-next.18 9.0.0-next.19
67+
9.0.0-rc.0 9.0.0-rc.1 9.0.0-rc.2 9.0.0-rc.3 9.0.0-rc.4 9.0.0-rc.5 9.0.0-rc.6 9.0.0-rc.7 9.0.0-rc.8 9.0.0-rc.9 9.0.0-rc.10 9.0.0-rc.11 9.0.0-rc.12 9.0.0-rc.13 9.0.0-rc.14
68+
9.0.0 9.0.1 9.0.2 9.0.3 9.0.4 9.0.5 9.0.6 9.0.7
69+
9.1.0-next.0 9.1.0-next.1 9.1.0-next.2 9.1.0-next.3 9.1.0-next.4 9.1.0-rc.0
70+
9.1.0 9.1.1 9.1.2 9.1.3 9.1.4 9.1.5 9.1.6 9.1.7 9.1.8 9.1.9 9.1.10 9.1.11 9.1.12 9.1.13 9.1.14 9.1.15
71+
10.0.0-next.0 10.0.0-next.1 10.0.0-next.2 10.0.0-next.3 10.0.0-next.4 10.0.0-next.5 10.0.0-next.6 10.0.0-rc.0 10.0.0-rc.1 10.0.0-rc.2 10.0.0-rc.3 10.0.0-rc.4 10.0.0-rc.5
72+
10.0.0 10.0.1 10.0.2 10.0.3 10.0.4 10.0.5 10.0.6 10.0.7 10.0.8
73+
10.1.0-next.0 10.1.0-next.1 10.1.0-next.2 10.1.0-next.3 10.1.0-next.4 10.1.0-next.5 10.1.0-next.6 10.1.0-next.7 10.1.0-rc.0
74+
10.1.0 10.1.1 10.1.2 10.1.3 10.1.4 10.1.5 10.1.6 10.1.7
75+
10.2.0 10.2.1 10.2.2 10.2.3 10.2.4
76+
11.0.0-next.0 11.0.0-next.1 11.0.0-next.2 11.0.0-next.3 11.0.0-next.4 11.0.0-next.5 11.0.0-next.6 11.0.0-next.7
77+
11.0.0-rc.0 11.0.0-rc.1 11.0.0-rc.2 11.0.0-rc.3
78+
11.0.0 11.0.1 11.0.2 11.0.3 11.0.4 11.0.5 11.0.6 11.0.7
79+
11.1.0-next.0 11.1.0-next.1 11.1.0-next.2 11.1.0-next.3 11.1.0-next.4 11.1.0-rc.0
80+
11.1.0 11.1.1 11.1.2 11.1.3 11.1.4
81+
11.2.0-next.0 11.2.0-rc.0 11.2.0-rc.1
82+
11.2.0 11.2.1 11.2.2 11.2.3 11.2.4 11.2.5 11.2.6 11.2.7 11.2.8 11.2.9 11.2.10 11.2.11 11.2.12 11.2.13 11.2.14 11.2.15 11.2.16 11.2.17 11.2.18 11.2.19
83+
12.0.0-next.0 12.0.0-next.1 12.0.0-next.2 12.0.0-next.3 12.0.0-next.4 12.0.0-next.5 12.0.0-next.6 12.0.0-next.7 12.0.0-next.8 12.0.0-next.9 12.0.0-rc.0 12.0.0-rc.1 12.0.0-rc.2 12.0.0-rc.3
84+
12.0.0 12.0.1 12.0.2 12.0.3 12.0.4 12.0.5
85+
12.1.0-next.2 12.1.0-next.3 12.1.0-next.4 12.1.0-next.5 12.1.0-next.6
86+
12.1.0 12.1.1 12.1.2 12.1.3 12.1.4
87+
12.2.0-next.0 12.2.0-next.2 12.2.0-next.3 12.2.0-rc.0
88+
12.2.0 12.2.1 12.2.2 12.2.3 12.2.4 12.2.5 12.2.6 12.2.7 12.2.8 12.2.9 12.2.10 12.2.11 12.2.12 12.2.13 12.2.14 12.2.15 12.2.16 12.2.17 12.2.18
89+
13.0.0-next.0 13.0.0-next.1 13.0.0-next.2 13.0.0-next.3 13.0.0-next.4 13.0.0-next.5 13.0.0-next.6 13.0.0-next.7 13.0.0-next.8 13.0.0-next.9
90+
13.0.0-rc.0 13.0.0-rc.1 13.0.0-rc.2 13.0.0-rc.3
91+
13.0.0 13.0.1 13.0.2 13.0.3 13.0.4
92+
13.1.0-next.0 13.1.0-next.1 13.1.0-next.2 13.1.0-next.3 13.1.0-rc.0
93+
13.1.0 13.1.1 13.1.2 13.1.3 13.1.4
94+
13.2.0-next.0 13.2.0-next.1 13.2.0-next.2 13.2.0-rc.0 13.2.0-rc.1
95+
13.2.0 13.2.1 13.2.2 13.2.3 13.2.4 13.2.5 13.2.6
96+
13.3.0 13.3.1 13.3.2 13.3.3 13.3.4 13.3.5 13.3.6 13.3.7 13.3.8 13.3.9 13.3.10 13.3.11
97+
14.0.0-next.0 14.0.0-next.1 14.0.0-next.2 14.0.0-next.3 14.0.0-next.4 14.0.0-next.5 14.0.0-next.6 14.0.0-next.7 14.0.0-next.8 14.0.0-next.9 14.0.0-next.10 14.0.0-next.11 14.0.0-next.12 14.0.0-next.13
98+
14.0.0-rc.0 14.0.0-rc.1 14.0.0-rc.2 14.0.0-rc.3
99+
14.0.0 14.0.1 14.0.2 14.0.3 14.0.4 14.0.5 14.0.6 14.0.7
100+
14.1.0-next.0 14.1.0-next.1 14.1.0-next.2 14.1.0-next.3 14.1.0-next.4 14.1.0-rc.0 14.1.0-rc.1 14.1.0-rc.2 14.1.0-rc.3
101+
14.1.0 14.1.1 14.1.2 14.1.3
102+
14.2.0-next.0 14.2.0-next.1 14.2.0-next.2 14.2.0-rc.0
103+
14.2.0 14.2.1 14.2.2 14.2.3 14.2.4 14.2.5 14.2.6 14.2.7 14.2.8 14.2.9 14.2.10 14.2.11 14.2.12 14.2.13
104+
15.0.0-next.0 15.0.0-next.1 15.0.0-next.2 15.0.0-next.3 15.0.0-next.4 15.0.0-next.5 15.0.0-next.6
105+
15.0.0-rc.0 15.0.0-rc.1 15.0.0-rc.2 15.0.0-rc.3 15.0.0-rc.4 15.0.0-rc.5
106+
15.0.0 15.0.1 15.0.2 15.0.3 15.0.4 15.0.5
107+
15.1.0-next.0 15.1.0-next.1 15.1.0-next.2 15.1.0-next.3 15.1.0-rc.0
108+
15.1.0 15.1.1 15.1.2 15.1.3 15.1.4 15.1.5 15.1.6
109+
15.2.0-next.0 15.2.0-next.1 15.2.0-next.2 15.2.0-next.3 15.2.0-next.4 15.2.0-rc.0
110+
15.2.0 15.2.1 15.2.2 15.2.3 15.2.4 15.2.5 15.2.6 15.2.7 15.2.8 15.2.9 15.2.10 15.2.11
111+
16.0.0-next.0 16.0.0-next.1 16.0.0-next.2 16.0.0-next.3 16.0.0-next.4 16.0.0-next.5 16.0.0-next.6 16.0.0-next.7
112+
16.0.0-rc.0 16.0.0-rc.1 16.0.0-rc.2 16.0.0-rc.3 16.0.0-rc.4
113+
16.0.0 16.0.1 16.0.2 16.0.3 16.0.4 16.0.5 16.0.6
114+
16.1.0-next.0 16.1.0-next.1 16.1.0-next.2 16.1.0-rc.0
115+
16.1.0 16.1.1 16.1.2 16.1.3 16.1.4 16.1.5 16.1.6 16.1.7 16.1.8
116+
16.2.0-next.0 16.2.0-next.1 16.2.0-next.2 16.2.0-next.3 16.2.0-next.4
117+
16.2.0-rc.0 16.2.0-rc.1
118+
16.2.0 16.2.1 16.2.2 16.2.3 16.2.4 16.2.5 16.2.6 16.2.7 16.2.8 16.2.9 16.2.10 16.2.11 16.2.12 16.2.13 16.2.14 16.2.15 16.2.16
119+
17.0.0-next.0 17.0.0-next.1 17.0.0-next.2 17.0.0-next.3 17.0.0-next.4 17.0.0-next.5 17.0.0-next.6)
120+
121+
lastVersion="17.0.0-next.6"
122+
rebaseNeeded=false
123+
124+
for version in "${versions[@]}"
125+
do
126+
127+
echo "Processing ${version}"
128+
129+
# --ssr is only applicable for version > 17.0.0-next.6
130+
if [[ " ${blocklist[@]} " =~ " ${version} " ]]
131+
then
132+
echo "Skipping blocklisted ${version}"
133+
continue
134+
fi
135+
136+
if [ `git branch --list ${version}` ] || [ `git branch --list --remote origin/${version}` ]
137+
then
138+
echo "${version} already generated."
139+
git checkout ${version}
140+
if [ ${rebaseNeeded} = true ]
141+
then
142+
git rebase --onto ${lastVersion} HEAD~ ${version} -X theirs
143+
diffStat=`git --no-pager diff HEAD~ --shortstat`
144+
git push origin ${version} -f
145+
diffUrl="[${lastVersion}...${version}](https://github.com/cexbrayat/angular-cli-library-diff/compare/${lastVersion}...${version})"
146+
git checkout master
147+
# rewrite stats in README after rebase
148+
sed -i.bak -e "/^${version}|/ d" README.md && rm README.md.bak
149+
sed -i.bak -e 's/----|----|----/----|----|----\
150+
NEWLINE/g' README.md && rm README.md.bak
151+
sed -i.bak -e "s@NEWLINE@${version}|${diffUrl}|${diffStat}@" README.md && rm README.md.bak
152+
git commit -a --amend --no-edit
153+
git checkout ${version}
154+
fi
155+
lastVersion=${version}
156+
continue
157+
fi
158+
159+
echo "Generate ${version}"
160+
rebaseNeeded=true
161+
git checkout -b ${version}
162+
# delete app
163+
rm -rf ponyracer
164+
# generate lib with new CLI version
165+
flags="--no-interactive --ssr --skip-install"
166+
npx @angular/cli@${version} --yes new ponyracer ${flags}
167+
rm package-lock.json
168+
git add ponyracer
169+
git commit -am "chore: version ${version}"
170+
diffStat=`git --no-pager diff HEAD~ --shortstat`
171+
git push origin ${version} -f
172+
git checkout master
173+
diffUrl="[${lastVersion}...${version}](https://github.com/cexbrayat/angular-cli-library-diff/compare/${lastVersion}...${version})"
174+
# insert a row in the version table of the README
175+
sed -i.bak "/^${version}|/ d" README.md && rm README.md.bak
176+
sed -i.bak 's/----|----|----/----|----|----\
177+
NEWLINE/g' README.md && rm README.md.bak
178+
sed -i.bak "s@NEWLINE@${version}|${diffUrl}|${diffStat}@" README.md && rm README.md.bak
179+
# commit
180+
git commit -a --amend --no-edit
181+
git checkout ${version}
182+
lastVersion=${version}
183+
184+
done
185+
186+
git checkout master
187+
git push origin master -f

0 commit comments

Comments
 (0)