]> git.ipfire.org Git - thirdparty/Chart.js.git/commitdiff
New release workflow (#8127)
authorJukka Kurkela <jukka.kurkela@gmail.com>
Fri, 4 Dec 2020 17:18:31 +0000 (19:18 +0200)
committerGitHub <noreply@github.com>
Fri, 4 Dec 2020 17:18:31 +0000 (12:18 -0500)
* New release workflow
* Set current version
* Use org secret

.github/workflows/npmpublish.yml [deleted file]
.github/workflows/release-drafter.yml [deleted file]
.github/workflows/release.yml [new file with mode: 0644]
package-lock.json
package.json

diff --git a/.github/workflows/npmpublish.yml b/.github/workflows/npmpublish.yml
deleted file mode 100644 (file)
index 40506f7..0000000
+++ /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 (file)
index 064af11..0000000
+++ /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 (file)
index 0000000..7a6bba3
--- /dev/null
@@ -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 [<newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease [--preid=<prerelease-id>] | 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
index de29e471a53d29e7aa946defc0b564588236c84a..1fbf03b48b27bef0f89f3198de8519d5b10e8499 100644 (file)
@@ -1,6 +1,6 @@
 {
   "name": "chart.js",
-  "version": "3.0.0-master",
+  "version": "3.0.0-beta.6",
   "lockfileVersion": 1,
   "requires": true,
   "dependencies": {
index 45ad364de8e4839d0b3aafa1703187c9acbe236d..e3fabbb4580c2803126872892222f78eb912fde5 100644 (file)
@@ -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",