# 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: chart.js-$VERSION.tgz asset_name: chart.js-$VERSION.tgz asset_content_type: application/gzip