mirror of
https://github.com/serverless/serverless.git
synced 2026-01-18 14:58:43 +00:00
106 lines
3.3 KiB
YAML
106 lines
3.3 KiB
YAML
# Version tags only
|
|
|
|
name: Publish
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- v[0-9]+.[0-9]+.[0-9]+
|
|
|
|
jobs:
|
|
npmPublish:
|
|
name: Publish to npm
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
# It'll work with secrets.GITHUB_TOKEN (which is provided by GitHub unconditionally)
|
|
# Still then release author would be "github-actions". It's better if it's dedicated repo bot
|
|
GITHUB_TOKEN: ${{ secrets.USER_GITHUB_TOKEN }}
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Retrieve dependencies from cache
|
|
uses: actions/cache@v2
|
|
with:
|
|
path: |
|
|
~/.npm
|
|
node_modules
|
|
key: npm-v14-${{ runner.os }}-refs/heads/master-${{ hashFiles('package.json') }}
|
|
|
|
- name: Install Node.js and npm
|
|
uses: actions/setup-node@v1
|
|
with:
|
|
node-version: 14.x
|
|
registry-url: https://registry.npmjs.org
|
|
|
|
# Normally we have a guarantee that deps are already there, still it may not be the case when:
|
|
# - `master` build for same commit failed (and we still pushed tag manually)
|
|
# - We've pushed tag manually before `master` build finalized
|
|
- name: Install dependencies
|
|
if: steps.cacheNpm.outputs.cache-hit != 'true'
|
|
run: |
|
|
npm update --no-save
|
|
npm update --save-dev --no-save
|
|
|
|
- name: Publish new version
|
|
# Note: Setting NODE_AUTH_TOKEN as job|workspace wide env var won't work
|
|
# as it appears actions/setup-node sets own value
|
|
env:
|
|
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
run: npm publish
|
|
|
|
- name: Build standalone artifacts
|
|
run: npm run pkg:build
|
|
|
|
- name: Publish release notes
|
|
run: |
|
|
TEMP_ARRAY=($(echo $GITHUB_REF | tr "/" "\n"))
|
|
TAG=${TEMP_ARRAY[@]: -1}
|
|
npx github-release-from-cc-changelog $TAG
|
|
|
|
- name: Publish standalone artifacts
|
|
env:
|
|
TENCENT_SECRET_KEY: ${{ secrets.TENCENT_SECRET_KEY }}
|
|
TENCENT_SECRET_ID: ${{ secrets.TENCENT_SECRET_ID }}
|
|
run: |
|
|
TEMP_ARRAY=($(echo $GITHUB_REF | tr "/" "\n"))
|
|
TAG=${TEMP_ARRAY[@]: -1}
|
|
npm run pkg:upload -- $TAG
|
|
|
|
chocoPublish:
|
|
name: Publish to Chocolatey
|
|
needs: npmPublish
|
|
runs-on: windows-latest
|
|
env:
|
|
CHOCO_API_KEY: ${{ secrets.CHOCO_API_KEY }}
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Retrieve dependencies from cache
|
|
uses: actions/cache@v2
|
|
with:
|
|
path: |
|
|
~/.npm
|
|
node_modules
|
|
key: npm-v14-${{ runner.os }}-refs/heads/master-${{ hashFiles('package.json') }}
|
|
|
|
- name: Install Node.js and npm
|
|
uses: actions/setup-node@v1
|
|
with:
|
|
node-version: 14.x
|
|
registry-url: https://registry.npmjs.org
|
|
|
|
# Note: No need to install dependencies as we have retrieved cached `node_modules` for very
|
|
# same `package.json` as stored with recent `master `build
|
|
|
|
- name: Publish to Chocolatey
|
|
shell: bash
|
|
run: |
|
|
TEMP_ARRAY=($(echo $GITHUB_REF | tr "/" "\n"))
|
|
TAG=${TEMP_ARRAY[@]: -1}
|
|
cd `npm run pkg:generate-choco-package $TAG | tail -1`
|
|
choco apikey --key $CHOCO_API_KEY --source https://push.chocolatey.org/
|
|
choco pack
|
|
choco push serverless.${TAG:1}.nupkg
|