From 7c9bc4925943f8002c31ae1489e62168d4aed57a Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Tue, 7 Sep 2021 14:13:21 +0200 Subject: [PATCH] Add automated release/npm publish workflows (#5421) --- .github/workflows/release-insiders.yml | 54 ++++++++++++++++++++++++++ .github/workflows/release.yml | 47 ++++++++++++++++++++++ 2 files changed, 101 insertions(+) create mode 100644 .github/workflows/release-insiders.yml create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/release-insiders.yml b/.github/workflows/release-insiders.yml new file mode 100644 index 000000000..af2fb2780 --- /dev/null +++ b/.github/workflows/release-insiders.yml @@ -0,0 +1,54 @@ +name: Release Insiders + +on: + push: + branches: [master] + +jobs: + build: + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [12] + + steps: + - uses: actions/checkout@v2 + + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node-version }} + + - name: Use cached node_modules + id: cache + uses: actions/cache@v2 + with: + path: node_modules + key: nodeModules-${{ hashFiles('**/package-lock.json') }}-${{ matrix.node-version }} + restore-keys: | + nodeModules- + + - name: Install dependencies + if: steps.cache.outputs.cache-hit != 'true' + run: npm install + env: + CI: true + + - name: Test + run: npm test + env: + CI: true + + - name: Resolve version + id: vars + run: echo "::set-output name=sha_short::$(git rev-parse --short HEAD)" + + - name: "Version based on commit: 0.0.0-${{ steps.vars.outputs.sha_short }}" + run: npm version 0.0.0-${{ steps.vars.outputs.sha_short }} + + - name: Publish + run: npm publish --tag insiders + env: + CI: true + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 000000000..221fa7fec --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,47 @@ +name: Release + +on: + release: + types: [published] + +jobs: + build: + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [12] + + steps: + - uses: actions/checkout@v2 + + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node-version }} + + - name: Use cached node_modules + id: cache + uses: actions/cache@v2 + with: + path: node_modules + key: nodeModules-${{ hashFiles('**/package-lock.json') }}-${{ matrix.node-version }} + restore-keys: | + nodeModules- + + - name: Install dependencies + if: steps.cache.outputs.cache-hit != 'true' + run: npm install + env: + CI: true + + - name: Test + run: npm test + env: + CI: true + + - name: Publish + run: npm publish + env: + CI: true + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}