From a98c34b858ade76edbbca5ca47da4c17936ed109 Mon Sep 17 00:00:00 2001 From: Jukka Kurkela Date: Fri, 4 Dec 2020 19:18:31 +0200 Subject: [PATCH] New release workflow (#8127) * New release workflow * Set current version * Use org secret --- .github/workflows/npmpublish.yml | 75 ---------------------- .github/workflows/release-drafter.yml | 22 ------- .github/workflows/release.yml | 89 +++++++++++++++++++++++++++ package-lock.json | 2 +- package.json | 2 +- 5 files changed, 91 insertions(+), 99 deletions(-) delete mode 100644 .github/workflows/npmpublish.yml delete mode 100644 .github/workflows/release-drafter.yml create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/npmpublish.yml b/.github/workflows/npmpublish.yml deleted file mode 100644 index 40506f7a9..000000000 --- a/.github/workflows/npmpublish.yml +++ /dev/null @@ -1,75 +0,0 @@ -# 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: - setup: - runs-on: ubuntu-latest - outputs: - version: ${{ steps.trim.outputs.version }} - steps: - - id: trim - run: echo "::set-output name=version::${TAG:1}" - env: - TAG: ${{ github.event.release.tag_name }} - - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Use Node.js - uses: actions/setup-node@v1 - - name: Test - run: | - npm ci - xvfb-run --auto-servernum npm test - - publish-npm: - needs: [test, setup] - 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}" - npm run docs - npm run typedoc - npm pack - env: - VERSION: ${{ needs.setup.outputs.version }} - - name: Publish to NPM - run: ./scripts/publish.sh - env: - NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} - VERSION: ${{ needs.setup.outputs.version }} - - name: Deploy Docs - run: ./scripts/deploy-docs.sh "$VERSION" - env: - GITHUB_TOKEN: ${{ secrets.GH_AUTH_TOKEN }} - GH_AUTH_EMAIL: ${{ secrets.GH_AUTH_EMAIL }} - VERSION: ${{ needs.setup.outputs.version }} - - name: Upload NPM package file - id: upload-npm-package-file - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - VERSION: ${{ needs.setup.outputs.version }} - with: - upload_url: ${{ github.event.release.upload_url }} - asset_path: ${{ format('chart.js-{0}.tgz', needs.setup.outputs.version) }} - asset_name: ${{ format('chart.js-{0}.tgz', needs.setup.outputs.version) }} - asset_content_type: application/gzip diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml deleted file mode 100644 index 064af1103..000000000 --- a/.github/workflows/release-drafter.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Release Drafter - -on: - push: - branches: - - master - -jobs: - correct_repository: - runs-on: ubuntu-latest - steps: - - name: fail on fork - if: github.repository_owner != 'chartjs' - run: exit 1 - - update_release_draft: - needs: correct_repository - runs-on: ubuntu-latest - steps: - - uses: release-drafter/release-drafter@v5 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 000000000..7a6bba35e --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,89 @@ +# This manually triggered job sets the version of package, drafts release notes, publishes package to NPM, deploys docs and attaches the builds assets to the release tag. +# The required input 'version' can be anything `npm version` supports: +# > npm version [ | major | minor | patch | premajor | preminor | prepatch | prerelease [--preid=] | from-git] + +name: Release + +on: + workflow_dispatch: + inputs: + version: + description: 'version' + default: 'patch' + required: true + +jobs: + version: + runs-on: ubuntu-latest + outputs: + version: ${{ steps.version.outputs.version }} + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v1 + with: + node-version: 12 + - name: Bump version + id: version + run: | + git config --global user.email "$GITHUB_AUTH_EMAIL" + git config --global user.name "Chart.js" + ouput=$(npm version ${version}) + echo "::set-output name=version::$output" + git push + git push --tags + env: + version: ${{ github.event.inputs.version }} + + notes: + needs: version + runs-on: ubuntu-latest + outputs: + upload_url: ${{ steps.draft.outputs.upload_url }} + steps: + - name: Draft release notes + id: draft + uses: release-drafter/release-drafter@v5 + with: + version: ${{ needs.version.outputs.version }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + publish: + needs: [version, draft] + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v1 + with: + node-version: 12 + - name: Setup and build + run: | + npm ci + npm run build + ./scripts/docs-config.sh "${VERSION}" + npm run docs + npm run typedoc + npm pack + env: + VERSION: ${{ needs.version.outputs.version }} + - name: Publish to NPM + run: ./scripts/publish.sh + env: + NODE_AUTH_TOKEN: ${{secrets.NPM_AUTH_TOKEN}} + VERSION: ${{ needs.version.outputs.version }} + - name: Deploy Docs + run: ./scripts/deploy-docs.sh "$VERSION" + env: + GITHUB_TOKEN: ${{ secrets.GH_AUTH_TOKEN }} + GH_AUTH_EMAIL: ${{ secrets.GH_AUTH_EMAIL }} + VERSION: ${{ needs.version.outputs.version }} + - name: Upload NPM package file + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + VERSION: ${{ needs.version.outputs.version }} + with: + upload_url: ${{ needs.notes.outputs.upload_url }} + asset_path: ${{ format('chart.js-{0}.tgz', needs.version.outputs.version) }} + asset_name: ${{ format('chart.js-{0}.tgz', needs.version.outputs.version) }} + asset_content_type: application/gzip diff --git a/package-lock.json b/package-lock.json index de29e471a..1fbf03b48 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "chart.js", - "version": "3.0.0-master", + "version": "3.0.0-beta.6", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 45ad364de..e3fabbb45 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "chart.js", "homepage": "https://www.chartjs.org", "description": "Simple HTML5 charts using the canvas element.", - "version": "3.0.0-master", + "version": "3.0.0-beta.6", "license": "MIT", "jsdelivr": "dist/chart.min.js", "unpkg": "dist/chart.min.js", -- 2.47.2