Chart.js/.github/workflows/npmpublish.yml
Evert Timberg 0c61d55682
Expand filename (#7893)
* Fix double env
* Properly expand name in attach step
* Update maintaining docs
2020-10-16 07:40:49 -04:00

74 lines
2.4 KiB
YAML

# This workflow will run tests using node and then publish a package to GitHub Packages when a release is created
# For more information see: https://help.github.com/actions/language-and-framework-guides/publishing-nodejs-packages
name: Node.js Package
on:
release:
types: [published]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Use Node.js
uses: actions/setup-node@v1
- name: Setup xvfb
run: |
Xvfb :99 -screen 0 1024x768x24 &
echo "::set-env name=DISPLAY:::99.0"
- name: Test
run: |
npm ci
npm test
publish-npm:
needs: test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: 12
registry-url: https://registry.npmjs.org/
- name: Setup and build
run: |
npm ci
npm install -g json
json -I -f package.json -e "this.version=\"$VERSION\""
json -I -f package-lock.json -e "this.version=\"$VERSION\""
npm run build
./scripts/docs-config.sh "${VERSION:1}"
npm run docs
npm run typedoc
npm pack
env:
VERSION: ${{ github.event.release.tag_name }}
- name: Publish to NPM
run: ./scripts/publish.sh
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
VERSION: ${{ github.event.release.tag_name }}
# On releases, VERSION is the tag name which is the version
# However, it will include the leading "v", so we need to strip that
# first character off here since we want the docs folder to not have
# the "v" in it.
- name: Deploy Docs
run: ./scripts/deploy-docs.sh "${VERSION:1}"
env:
GITHUB_TOKEN: ${{ secrets.GH_AUTH_TOKEN }}
GH_AUTH_EMAIL: ${{ secrets.GH_AUTH_EMAIL }}
VERSION: ${{ github.event.release.tag_name }}
- name: Upload NPM package file
id: upload-npm-package-file
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VERSION: ${{ github.event.release.tag_name }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: ${{ format('chart.js-{0}.tgz', github.event.release.tag_name) }}
asset_name: ${{ format('chart.js-{0}.tgz', github.event.release.tag_name) }}
asset_content_type: application/gzip