1+ name : ' release' 
2+ 
3+ on :
4+   workflow_dispatch :
5+     inputs :
6+       release_type :
7+         type : choice 
8+         default : auto 
9+         description : What kind of version upgrade 
10+         options : 
11+         - auto 
12+         - patch 
13+         - minor 
14+         - major 
15+ 
16+ jobs :
17+   release :
18+     runs-on : ubuntu-latest 
19+     steps :
20+       - name : Checkout repository 
21+         uses : actions/checkout@v4 
22+         with :
23+           fetch-depth : " 0" 
24+           submodules : true 
25+ 
26+       - name : setup node 
27+         uses : actions/setup-node@v4 
28+         with :
29+           node-version : lts/* 
30+           registry-url : ' https://registry.npmjs.org' 
31+ 
32+       
33+       - uses : oNaiPs/secrets-to-env-action@v1 
34+         with :
35+           secrets : ${{ toJSON(secrets) }} 
36+       
37+ 
38+       - uses : oleksiyrudenko/gha-git-credentials@v2-latest 
39+         with :
40+           token : ' ${{ secrets.GITHUB_TOKEN }}' 
41+           name : Martin Guillon 
42+           email : dev@akylas.fr 
43+       
44+       - name : install jq 
45+         run : sudo apt install jq 
46+       
47+       - name : Enable CorePack 
48+         run : | 
49+           corepack enable  
50+           yarn config get globalFolder # the yarn command will ensure the correct yarn version is downloaded and installed 
51+ 
52+        - name : Get yarn cache directory path 
53+         id : yarn-cache-dir-path 
54+         run : echo "::set-output name=dir::$(yarn config get globalFolder)" 
55+ 
56+       - name : Remove package.json resolutions 
57+         run : echo "`jq 'delpaths([["resolutions"]])' package.json`" > package.json 
58+ 
59+       - uses : actions/cache@v4 
60+         name : Handle node_modules Cache 
61+         id : yarn-node_modules  #  use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
62+         with :
63+           path : node_modules 
64+           key : ${{ runner.os }}-yarn-node_modules-${{ hashFiles('**/yarn.lock') }} 
65+           restore-keys : | 
66+             ${{ runner.os }}-node_modules- 
67+ 
68+        - uses : actions/cache@v4 
69+         if : steps.yarn-node_modules.outputs.cache-hit != 'true' 
70+         name : Handle Yarn cache 
71+         id : yarn-cache  #  use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
72+         with :
73+           path : ${{ steps.yarn-cache-dir-path.outputs.dir }} 
74+           key : ${{ runner.os }}-yarn-cache-${{ hashFiles('**/yarn.lock') }} 
75+           restore-keys : | 
76+             ${{ runner.os }}-yarn- 
77+ 
78+        - name : Install deps 
79+         if : steps.yarn-node_modules.outputs.cache-hit != 'true' 
80+         uses : bahmutov/npm-install@v1 
81+         with :
82+           install-command : yarn install --silent 
83+         env : 
84+           YARN_ENABLE_IMMUTABLE_INSTALLS : false 
85+ 
86+       - name : run setup  
87+         run : | 
88+           npm run setup 
89+        
90+       - name : " NPM Identity" 
91+         env :
92+           NPM_TOKEN : ${{ secrets.NPM_TOKEN }} 
93+         run : | 
94+           echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" > .npmrc 
95+ 
96+        - name : publish auto 
97+         if : github.event.inputs.release_type == 'auto' 
98+         run : | 
99+           npm run publish -- --force-publish --no-verify-access --no-private --no-commit-hooks --yes 
100+          env :
101+           NPM_TOKEN : ${{ secrets.NPM_TOKEN }} 
102+           GH_TOKEN : ${{ secrets.GITHUB_TOKEN }} 
103+           GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }} 
104+ 
105+       - name : publish 
106+         if : github.event.inputs.release_type != 'auto' 
107+         run : | 
108+           npm run publish -- --force-publish --no-verify-access --no-private --no-commit-hooks --yes --bump ${{ github.event.inputs.release_type }} 
109+          env :
110+           NPM_TOKEN : ${{ secrets.NPM_TOKEN }} 
111+           GH_TOKEN : ${{ secrets.GITHUB_TOKEN }} 
112+           GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }} 
0 commit comments