1
1
name : " 📚 Update CSpell"
2
2
3
3
on :
4
+ workflow_dispatch :
5
+ inputs :
6
+ base :
7
+ description : The Base Ref to apply the diff
8
+ required : false
9
+ default : " main"
10
+
4
11
push :
5
12
branches :
6
13
- main
7
- workflow_dispatch :
14
+
8
15
schedule :
9
16
- cron : " 0 12 * * *"
10
17
@@ -16,76 +23,104 @@ jobs:
16
23
if : github.repository_owner == 'streetsidesoftware'
17
24
runs-on : ubuntu-latest
18
25
env :
19
- NEW_BRANCH : " update-cspell"
20
- REF_BRANCH : main
26
+ NEW_BRANCH : update-cspell-${{ inputs.base || 'main' }}
27
+ REF_BRANCH : ${{ inputs.base || ' main' }}
21
28
steps :
22
29
- name : Checkout code
23
30
uses : actions/checkout@v4
24
31
with :
25
32
ref : ${{ env.REF_BRANCH }}
26
- - name : Use Node.js
27
- uses : actions/setup-node@v3
28
- with :
29
- cache : yarn
33
+
34
+ - uses : streetsidesoftware/actions/public/setup-node-pnpm@v1
35
+
30
36
- name : Install
31
- run : yarn --frozen-lockfile
37
+ run : pnpm i
38
+
32
39
- name : Update CSpell
33
40
run : |
34
41
cd action-src
35
- echo CSPELL_VERSION_OLD=$(yarn exec -s cspell -- -V) >> $GITHUB_ENV
36
- yarn add cspell@latest cspell-glob@latest
37
- yarn
38
- yarn exec -s cspell -- -V
39
- echo "CSPELL_VERSION=$(yarn exec -s cspell -- -V)" >> $GITHUB_ENV
42
+ echo CSPELL_VERSION_OLD=$(pnpm exec cspell -V) >> $GITHUB_ENV
43
+ pnpm add cspell@latest cspell-glob@latest
44
+ pnpm i
45
+ pnpm exec cspell -V
46
+ echo "CSPELL_VERSION=$(pnpm exec cspell -V)" >> $GITHUB_ENV
47
+
40
48
- name : Minor Versions
41
49
run : |
42
50
echo CSPELL_MINOR_OLD=$(echo '"${{ env.CSPELL_VERSION_OLD }}"' | jq 'sub("\\.[0-9]+$";"")') >> $GITHUB_ENV
43
51
echo CSPELL_MINOR_NEW=$(echo '"${{ env.CSPELL_VERSION }}"' | jq 'sub("\\.[0-9]+$";"")') >> $GITHUB_ENV
52
+
44
53
- name : Determine Update type
45
54
env :
46
55
type : ${{ (env.CSPELL_MINOR_OLD == env.CSPELL_MINOR_NEW && 'fix') || 'feat' }}
47
56
run : |
48
57
echo PR_TYPE=$type >> $GITHUB_ENV
49
58
50
- - name : Update Dictionaries
51
- run : |
52
- cd action
53
- yarn add @cspell/cspell-bundled-dicts@latest
54
-
55
59
- name : Install Updates
56
60
run : |
57
- yarn install
58
- npx package-json-dependency-updater -u
59
- yarn
61
+ pnpm i
62
+
60
63
- name : Update packages Src
61
- run : yarn clean-build
64
+ run : pnpm clean-build
65
+
66
+ - name : Git Status
67
+ id : git-status
68
+ uses : streetsidesoftware/actions/public/dirty@v1
69
+
62
70
- name : Has changes
63
71
run : |
64
72
git --no-pager diff --compact-summary --exit-code && echo "git_status=clean" >> $GITHUB_ENV || echo "git_status=dirty" >> $GITHUB_ENV
65
73
git --no-pager diff --compact-summary
74
+
66
75
- name : Echo git_status
76
+ env :
77
+ REPORT : |
78
+ Dirty: ${{ steps.git-status.outputs.isDirty && 'yes' || 'no' }}
79
+ Status: ${{ env.git_status }}
80
+ CSpell Version: ${{ env.CSPELL_VERSION }}
81
+ Old Version: ${{ env.CSPELL_VERSION_OLD }}
82
+
67
83
run : |
68
- echo Status: ${{ env.git_status }}
69
- echo CSpell Version: ${{ env.CSPELL_VERSION }}
84
+ echo "$REPORT"
85
+
70
86
- name : Gen Body
71
87
run : |
72
88
echo 'git_body<<DIFF' >> $GITHUB_ENV
73
89
git --no-pager diff --compact-summary >> $GITHUB_ENV
74
90
echo 'DIFF' >> $GITHUB_ENV
75
- - uses : tibdex/github-app-token@v2 # cspell:ignore tibdex
76
- if : env.git_status == 'dirty'
77
- id : generate-token
91
+
92
+ - name : Summary
93
+ id : summary
94
+ uses : streetsidesoftware/actions/public/output@v1
78
95
with :
79
- app_id : ${{ secrets.AUTOMATION_APP_ID }}
80
- private_key : ${{ secrets.AUTOMATION_PRIVATE_KEY }}
81
- - name : Create Pull Request
82
- if : env.git_status == 'dirty'
83
- uses : peter-evans/create-pull-request@v5
96
+ value : |
97
+ CSpell Version: ${{ env.CSPELL_VERSION }}
98
+ Old Version: ${{ env.CSPELL_VERSION_OLD }}
99
+ Type: ${{ env.PR_TYPE }}
100
+
101
+ Status: ${{ steps.git-status.outputs.isDirty && 'dirty' || 'clean' }}
102
+ ```
103
+ ${{ steps.git-status.outputs.status }}
104
+ ```
105
+
106
+ diff:
107
+ ```
108
+ ${{ env.git_body }}
109
+ ```
110
+
111
+ - name : Show Summary
112
+ uses : streetsidesoftware/actions/public/summary@v1
113
+ with :
114
+ text : ${{ steps.summary.outputs.value }}
115
+
116
+ - name : PR
117
+ if : steps.git-status.outputs.isDirty
118
+ uses : streetsidesoftware/actions/.github/actions/pr@v1
84
119
with :
85
120
commit-message : " ${{ env.PR_TYPE }}: Update CSpell to (${{ env.CSPELL_VERSION }})"
86
121
branch : ${{ env.NEW_BRANCH }}
87
122
base : ${{ env.REF_BRANCH }}
88
123
title : " ${{ env.PR_TYPE }}: Update CSpell to (${{ env.CSPELL_VERSION }}) (${{ env.REF_BRANCH }})"
89
- token : ${{ steps.generate-token .outputs.token }}
90
- body : ${{ env.git_body }}
91
- delete-branch : true
124
+ body : ${{ steps.summary .outputs.value }}
125
+ app_id : ${{ secrets.AUTOMATION_APP_ID }}
126
+ app_private_key : ${{ secrets.AUTOMATION_PRIVATE_KEY }}
0 commit comments