embark/.github/workflows/nightlies.yml

82 lines
3.5 KiB
YAML

name: Nightlies
on:
# This workflow is triggered once daily at midnight (UTC)
# See: https://crontab.guru/#0_0_*_*_*
schedule:
- cron: '0 0 * * *'
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
# Credentials for pushing commits and tags are persisted by actions/checkout@v2 by default
# See: https://github.com/actions/checkout#usage
with:
ref: master
# Fetch full history for the master branch
# See: https://github.com/actions/checkout#usage
fetch-depth: 0
# EMBARKBOT_GITHUB_TOKEN should correspond to https://github.com/embarkbot
token: ${{ secrets.EMBARKBOT_GITHUB_TOKEN }}
- name: Fetch all tags
# See: https://github.com/actions/checkout#fetch-all-tags
run: |
git fetch --depth=1 origin +refs/tags/*:refs/tags/*
- name: Setup Node.js
uses: actions/setup-node@v1
with:
node-version: '^10.17.0'
- name: Update npm
run: |
npm i -g npm
- name: Update yarn
run: |
curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version $(npm show yarn@${YARN_VERSION} version --json | npx json -- -1 2>/dev/null)
env:
YARN_VERSION: '^1.19.1'
- name: Install dependencies
run: |
export PATH="${HOME}/.yarn/bin:${HOME}/.config/yarn/global/node_modules/.bin:${PATH}"
echo Node.js is $(node --version)
echo npm is v$(npm --version)
echo yarn is v$(yarn --version); echo
yarn install
npm run cwtree
- name: Build
# Run typecheck in addition to build since both tsc and babel generate files into packages' dist/ directories
run: |
export PATH="${HOME}/.yarn/bin:${HOME}/.config/yarn/global/node_modules/.bin:${PATH}"
echo Node.js is $(node --version)
echo npm is v$(npm --version)
echo yarn is v$(yarn --version); echo
npm run typecheck
npm run build
npm run cwtree
- name: Release
run: |
export PATH="${HOME}/.yarn/bin:${HOME}/.config/yarn/global/node_modules/.bin:${PATH}"
echo Node.js is $(node --version)
echo npm is v$(npm --version)
echo yarn is v$(yarn --version); echo
git config user.name 'EmbarkBot'
git config user.email '<59620708+embarkbot@users.noreply.github.com>'
npm config set //registry.npmjs.org/:_authToken=${NPM_TOKEN}
npm whoami 1>/dev/null
echo Logged into NPM as user $(npm whoami); echo
npm run release:nightly
npm run cwtree
env:
# GH_TOKEN is the env variable referenced by `lerna version|publish` for authenticating via GitHub token in order to create a release
# See: https://github.com/lerna/lerna/tree/master/commands/version#--create-release-type
# EMBARKBOT_GITHUB_TOKEN should correspond to https://github.com/embarkbot
GH_TOKEN: ${{ secrets.EMBARKBOT_GITHUB_TOKEN }}
IS_GITHUB_ACTIONS_WORKFLOW: 't'
# EMBARKBOT_NPM_TOKEN should correspond to https://www.npmjs.com/~embarkbot
NPM_TOKEN: ${{ secrets.EMBARKBOT_NPM_TOKEN }}
- name: Remove NPM credentials
if: always()
# Delete .npmrc instead of running `npm logout` because the logout command permanently invalidates the current token
run: |
rm -f ${HOME}/.npmrc