1- name : Create release
1+ name : Release & Publish
22
33on :
44 workflow_dispatch :
1212
1313permissions :
1414 contents : write
15- pull-requests : write
15+ packages : write
1616
1717jobs :
1818 checks :
2525 users : dedece35,glalloue,jhertout,jules-delecour-dav,olegoaer,zippy1978,utarwyn
2626
2727 release :
28- name : Create release Pull Request
28+ name : Create release
2929 runs-on : ubuntu-latest
3030 needs : checks
3131 steps :
4545
4646 - name : Get package version
4747 id : package-version
48- run : echo "version=$(cat ${{ inputs.linter }}/package.json | jq -r '.version')" >> $GITHUB_OUTPUT
48+ uses : martinbeentjes/npm-get-version-action@main
49+ with :
50+ path : ${{ inputs.linter }}
51+
52+ - name : Check tag non-existence
53+ run : if git show-ref --tags --verify --quiet -- "refs/tags/${{ inputs.linter }}/${{ steps.package-version.outputs.current-version }}"; then echo "::error::Tag already exists" && exit 1; fi
4954
5055 - name : Extract release notes
5156 id : extract-release-notes
@@ -55,19 +60,75 @@ jobs:
5560 prerelease : true
5661
5762 - name : Update changelog
58- uses : suyaser /keep-a-changelog-new-release@1.4.0
63+ uses : thomaseizinger /keep-a-changelog-new-release@v1
5964 with :
60- version : ${{ steps.package-version.outputs.version }}
61- tag : ${{ inputs.linter }}/${{ steps.package-version.outputs.version }}
65+ tag : ${{ inputs.linter }}/${{ steps.package-version.outputs.current-version }}
6266 changelogPath : ${{ inputs.linter }}/CHANGELOG.md
6367
64- - name : Create pull request
65- uses : peter-evans/create-pull-request@v4
68+ - name : Commit new version
69+ uses : EndBug/add-and-commit@v9
70+ with :
71+ message : Bump ${{ inputs.linter }} to ${{ steps.package-version.outputs.current-version }}
72+ default_author : github_actions
73+
74+ - name : Create release
75+ uses : softprops/action-gh-release@v1
6676 with :
67- author : github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
68- branch : release-${{ inputs.linter }}-${{ steps.package-version.outputs.version }}
69- commit-message : Bump ${{ inputs.linter }} to ${{ steps.package-version.outputs.version }}
70- title : Release ${{ inputs.linter }} v${{ steps.package-version.outputs.version }}
77+ name : ${{ inputs.linter }} ${{ steps.package-version.outputs.current-version }}
78+ tag_name : ${{ inputs.linter }}/${{ steps.package-version.outputs.current-version }}
7179 body : ${{ steps.extract-release-notes.outputs.release_notes }}
72- labels : release
73- delete-branch : true
80+
81+ publish-npm :
82+ runs-on : ubuntu-latest
83+ needs : release
84+ steps :
85+ - uses : actions/checkout@v3
86+
87+ - uses : actions/setup-node@v3
88+ with :
89+ node-version : 18
90+ registry-url : ' https://registry.npmjs.org'
91+
92+ - name : Install dependencies
93+ run : yarn install --immutable
94+
95+ - name : Copy LICENSE
96+ run : cp LICENSE.md ${{ inputs.linter }}/
97+
98+ - name : Publish package on NPM
99+ run : npm publish --access public --workspace ${{ inputs.linter }}
100+ env :
101+ NODE_AUTH_TOKEN : ${{ secrets.NPM_TOKEN }}
102+
103+ publish-github :
104+ runs-on : ubuntu-latest
105+ needs : release
106+ steps :
107+ - uses : actions/checkout@v3
108+
109+ - uses : actions/setup-node@v3
110+ with :
111+ node-version : 18
112+
113+ - name : Install dependencies
114+ run : yarn install --immutable
115+
116+ - name : Copy LICENSE
117+ run : cp LICENSE.md ${{ inputs.linter }}/
118+
119+ - name : Add scope to package name
120+ run : npx --workspace ${{ inputs.linter }} --yes change-package-name @${{ github.repository_owner }}/ecocode-${{ inputs.linter }}
121+
122+ - name : Configure GitHub Packages registry
123+ 124+ with :
125+ dot-npmrc : |
126+ //npm.pkg.github.com/:_authToken=${NODE_AUTH_TOKEN}
127+ @${{ github.repository_owner }}:registry=https://npm.pkg.github.com
128+ always-auth=true
129+ working-directory : ${{ inputs.linter }}
130+
131+ - name : Publish package on GitHub Packages
132+ run : npm publish --workspace ${{ inputs.linter }}
133+ env :
134+ NODE_AUTH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
0 commit comments