11name : " 📚 Update CSpell"
22
33on :
4+ workflow_dispatch :
5+ inputs :
6+ base :
7+ description : The Base Ref to apply the diff
8+ required : false
9+ default : " main"
10+
411 push :
512 branches :
613 - main
7- workflow_dispatch :
14+
815 schedule :
916 - cron : " 0 12 * * *"
1017
@@ -16,76 +23,104 @@ jobs:
1623 if : github.repository_owner == 'streetsidesoftware'
1724 runs-on : ubuntu-latest
1825 env :
19- NEW_BRANCH : " update-cspell"
20- REF_BRANCH : main
26+ NEW_BRANCH : update-cspell-${{ inputs.base || 'main' }}
27+ REF_BRANCH : ${{ inputs.base || ' main' }}
2128 steps :
2229 - name : Checkout code
2330 uses : actions/checkout@v4
2431 with :
2532 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+
3036 - name : Install
31- run : yarn --frozen-lockfile
37+ run : pnpm i
38+
3239 - name : Update CSpell
3340 run : |
3441 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+
4048 - name : Minor Versions
4149 run : |
4250 echo CSPELL_MINOR_OLD=$(echo '"${{ env.CSPELL_VERSION_OLD }}"' | jq 'sub("\\.[0-9]+$";"")') >> $GITHUB_ENV
4351 echo CSPELL_MINOR_NEW=$(echo '"${{ env.CSPELL_VERSION }}"' | jq 'sub("\\.[0-9]+$";"")') >> $GITHUB_ENV
52+
4453 - name : Determine Update type
4554 env :
4655 type : ${{ (env.CSPELL_MINOR_OLD == env.CSPELL_MINOR_NEW && 'fix') || 'feat' }}
4756 run : |
4857 echo PR_TYPE=$type >> $GITHUB_ENV
4958
50- - name : Update Dictionaries
51- run : |
52- cd action
53- yarn add @cspell/cspell-bundled-dicts@latest
54-
5559 - name : Install Updates
5660 run : |
57- yarn install
58- npx package-json-dependency-updater -u
59- yarn
61+ pnpm i
62+
6063 - 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+
6270 - name : Has changes
6371 run : |
6472 git --no-pager diff --compact-summary --exit-code && echo "git_status=clean" >> $GITHUB_ENV || echo "git_status=dirty" >> $GITHUB_ENV
6573 git --no-pager diff --compact-summary
74+
6675 - 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+
6783 run : |
68- echo Status: ${{ env.git_status }}
69- echo CSpell Version: ${{ env.CSPELL_VERSION }}
84+ echo "$REPORT"
85+
7086 - name : Gen Body
7187 run : |
7288 echo 'git_body<<DIFF' >> $GITHUB_ENV
7389 git --no-pager diff --compact-summary >> $GITHUB_ENV
7490 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
7895 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
84119 with :
85120 commit-message : " ${{ env.PR_TYPE }}: Update CSpell to (${{ env.CSPELL_VERSION }})"
86121 branch : ${{ env.NEW_BRANCH }}
87122 base : ${{ env.REF_BRANCH }}
88123 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