name : CI
on :
push :
branches :
- master
tags :
- v*
env :
SKIP_PREFLIGHT_CHECK : true
jobs :
build-deploy :
runs-on : ubuntu-latest
permissions :
contents : write
id-token : write
steps :
- uses : actions/checkout@v4
- uses : actions/setup-node@v4
with :
node-version : 20
registry-url : 'https://registry.npmjs.org'
# - name: Cache dependencies
# uses: actions/cache@v1
# with:
# path: ~/.npm
# key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
# restore-keys: |
# ${{ runner.os }}-node-
- name : Look Changelog
uses : jaywcjlove/changelog-generator@main
with :
token : ${{ secrets.GITHUB_TOKEN }}
filter-author : (jaywcjlove|小弟调调™|dependabot\[bot\]|Renovate Bot)
filter : (^[\s]+?[R|r]elease)|(^[R|r]elease)
- run : npm install
- run : npm run build
- run : npm run test
- name : Generate Contributors Images
uses : jaywcjlove/github-action-contributors@main
with :
filter-author : (renovate\[bot\]|renovate-bot|dependabot\[bot\])
output : build/CONTRIBUTORS.svg
avatarSize : 42
- name : Create Tag
id : create_tag
uses : jaywcjlove/create-tag-action@main
with :
package-path : ./package.json
- name : get tag version
id : tag_version
uses : jaywcjlove/changelog-generator@main
- name : Build and Deploy
uses : peaceiris/actions-gh-pages@v4
with :
commit_message : ${{steps.tag_version.outputs.tag}} ${{ github.event.head_commit.message }}
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./build
- name : Generate Changelog
id : changelog
uses : jaywcjlove/changelog-generator@main
with :
token : ${{ secrets.GITHUB_TOKEN }}
filter-author : (jaywcjlove|小弟调调™|dependabot\[bot\]|Renovate Bot)
filter : (^[\s]+?[R|r]elease)|(^[R|r]elease)
- run : |
echo "tag: ${{ steps.changelog.outputs.tag }}"
echo "version: ${{ steps.changelog.outputs.version }}"
echo "ref: ${{ github.ref }}"
- name : Create Release
uses : ncipollo/release-action@v1
if : steps.create_tag.outputs.successful
with :
allowUpdates : true
token : ${{ secrets.GITHUB_TOKEN }}
name : ${{ steps.create_tag.outputs.version }}
tag : ${{ steps.create_tag.outputs.version }}
body : |
[ ![ Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor) [![](https://img.shields.io/badge/Open%20in-unpkg-blue)](https://uiwjs.github.io/npm-unpkg/#/pkg/hotkeys-js@${{steps.changelog.outputs.version}}/file/README.md) [![npm bundle size](https://img.shields.io/bundlephobia/minzip/hotkeys-js)](https://bundlephobia.com/result?p=hotkeys-js@${{steps.changelog.outputs.version}}) [![npm version](https://img.shields.io/npm/v/hotkeys-js.svg)](https://www.npmjs.com/package/hotkeys-js)
Documentation ${{ steps.changelog.outputs.tag }}: https://raw.githack.com/jaywcjlove/hotkeys/${{ steps.changelog.outputs.gh-pages-short-hash }}/index.html
Comparing Changes : ${{ steps.changelog.outputs.compareurl }}
```bash
npm i hotkeys-js@${{steps.changelog.outputs.version}}
```
${{ steps.changelog.outputs.changelog }}
- name : package.json info
uses : jaywcjlove/github-action-package@main
with :
unset : browserslist,lint-staged,devDependencies,jest,scripts
# - run: npm install @jsdevtools/npm-publish -g
# - run: npm-publish --token="${{ secrets.NPM_TOKEN }}" ./package.json
- run : npm publish --access public --provenance
name : 📦 hotkeys-js to NPM
continue-on-error : true
env :
NODE_AUTH_TOKEN : ${{ secrets.NPM_TOKEN }}