From baaaeef6cf5d48d1708412949ae3e01d59e3d96e Mon Sep 17 00:00:00 2001 From: Brett Neese Date: Thu, 11 Feb 2021 20:56:55 -0600 Subject: [PATCH] add ci/cd --- .github/dependabot.yml | 13 ++++++++++ .github/workflows/autorelease.yml | 17 +++++++++++++ .github/workflows/node.js.yml | 38 +++++++++++++++++++++++++++++ .github/workflows/npm-publish.yml | 40 +++++++++++++++++++++++++++++++ 4 files changed, 108 insertions(+) create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/autorelease.yml create mode 100644 .github/workflows/node.js.yml create mode 100644 .github/workflows/npm-publish.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..dee9f7e --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,13 @@ +# Basic dependabot.yml file with +# minimum configuration for two package managers + +version: 2 +updates: + # Enable version updates for npm + - package-ecosystem: "npm" + # Look for `package.json` and `lock` files in the `root` directory + directory: "/" + # Check the npm registry for updates every day (weekdays) + schedule: + interval: "daily" + versioning-strategy: lockfile-only diff --git a/.github/workflows/autorelease.yml b/.github/workflows/autorelease.yml new file mode 100644 index 0000000..dda896e --- /dev/null +++ b/.github/workflows/autorelease.yml @@ -0,0 +1,17 @@ +name: Autorelease + +on: + push: + tags: + - "v*.*.*" + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Release + uses: softprops/action-gh-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.BOTTY_TOKEN }} # https://docs.github.com/en/actions/reference/events-that-trigger-workflows#triggering-new-workflows-using-a-personal-access-token diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml new file mode 100644 index 0000000..f9a45c1 --- /dev/null +++ b/.github/workflows/node.js.yml @@ -0,0 +1,38 @@ +# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions + +name: Node.js CI + +on: + push: + branches: [main] + pull_request: + branches: [main] + +jobs: + build-and-version: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + # need to use the Botty personal access token (PAT) so that this workflow can trigger other + # workflows. See https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows#triggering-new-workflows-using-a-personal-access-token + with: + token: ${{ secrets.BOTTY_TOKEN }} + - name: Use Node.js 12.x + uses: actions/setup-node@v1 + with: + node-version: 12.x + registry-url: https://npm.pkg.github.com/ + scope: "@hbkengineering" + - run: npm ci + env: + NODE_AUTH_TOKEN: ${{secrets.GPR_TOKEN}} + - run: npm run build --if-present + - run: npm test --if-present + - name: Autoversion + if: contains(github.event.head_commit.message, 'HBKEngineering/dependabot/') + run: | + git config --global user.email "apps@hbkengineering.com" + git config --global user.name "GitHub Actions" + npm version patch --force # --force ignores the deleted .npmrc file + git push --follow-tags diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml new file mode 100644 index 0000000..99ff59b --- /dev/null +++ b/.github/workflows/npm-publish.yml @@ -0,0 +1,40 @@ +# 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: [created] + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v1 + with: + node-version: 12 + registry-url: https://npm.pkg.github.com/ + scope: "@hbkengineering" + - run: rm .npmrc + - run: npm ci + env: + NODE_AUTH_TOKEN: ${{secrets.GPR_TOKEN}} + - run: npm test --if-present + + publish-gpr: + needs: build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v1 + with: + node-version: 12 + registry-url: https://npm.pkg.github.com/ + - run: npm ci + env: + NODE_AUTH_TOKEN: ${{secrets.GPR_TOKEN}} + - run: npm publish + env: + NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}