2020-10-01 07:56:47 +03:00
name : build
on :
pull_request :
push :
2020-10-02 13:00:45 +03:00
branches : [ '*' ]
tags : [ 'v[0-9]+.[0-9]+.[0-9]+' ]
2020-10-01 07:56:47 +03:00
jobs :
2020-10-02 12:55:44 +03:00
# temporarily disabled
# test:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v2
# - uses: actions/setup-node@v1
# with:
# node-version: 14.7.0
# - run: yarn
# - run: yarn test
# - name: Telegram Failure Notification
# uses: appleboy/telegram-action@0.0.7
# if: failure()
# with:
# message: ❗ Build failed for [${{ github.repository }}](https://github.com/${{ github.repository }}/actions) because of ${{ github.actor }}
# format: markdown
# to: ${{ secrets.TELEGRAM_CHAT_ID }}
# token: ${{ secrets.TELEGRAM_BOT_TOKEN }}
2020-10-01 07:56:47 +03:00
lint :
runs-on : ubuntu-latest
steps :
- uses : actions/checkout@v2
- uses : actions/setup-node@v1
with :
node-version : 14.7 .0
- run : yarn
- run : yarn lint
- name : Telegram Failure Notification
uses : appleboy/telegram-action@0.0.7
if : failure()
with :
message : ❗ Build failed for [${{ github.repository }}](https://github.com/${{ github.repository }}/actions) because of ${{ github.actor }}
format : markdown
to : ${{ secrets.TELEGRAM_CHAT_ID }}
token : ${{ secrets.TELEGRAM_BOT_TOKEN }}
publish :
runs-on : ubuntu-latest
# needs: [test, lint]
needs : [ lint]
if : startsWith(github.ref, 'refs/tags/')
steps :
- name : Checkout
uses : actions/checkout@v2
- name : NPM login
# NPM doesn't understand env vars and needs auth file lol
run : echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc
env :
NPM_TOKEN : ${{ secrets.NPM_TOKEN }}
- name : Set vars
id : vars
run : |
echo "::set-output name=version::$(echo ${GITHUB_REF#refs/tags/v})"
echo "::set-output name=repo_name::$(echo ${GITHUB_REPOSITORY#*/})"
- name : Check package.json version vs tag
run : |
[ ${{ steps.vars.outputs.version }} = $(grep '"version":' package.json | grep -o "[0-9.]*") ] || (echo "Git tag doesn't match version in package.json" && false)
- name : Publish to npm
run : npm publish
- name : Create GitHub Release Draft
uses : actions/create-release@v1
with :
tag_name : ${{ github.ref }}
release_name : Release ${{ steps.vars.outputs.version }}
draft : true
env :
GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
- name : Telegram Message Notify
uses : appleboy/telegram-action@0.0.7
with :
to : ${{ secrets.TELEGRAM_CHAT_ID }}
token : ${{ secrets.TELEGRAM_BOT_TOKEN }}
message : 🚀 Published [${{ steps.vars.outputs.repo_name }}](https://github.com/${{ github.repository }}) version [${{ steps.vars.outputs.version }}](https://www.npmjs.com/package/${{ steps.vars.outputs.repo_name }}/v/${{ steps.vars.outputs.version }}) to npm
debug : true
format : markdown
- name : Telegram Failure Notification
uses : appleboy/telegram-action@0.0.7
if : failure()
with :
message : ❗ Failed to publish [${{ steps.vars.outputs.repo_name }}](https://github.com/${{ github.repository }}/actions) because of ${{ env.GITHUB_ACTOR }}
format : markdown
to : ${{ secrets.TELEGRAM_CHAT_ID }}
token : ${{ secrets.TELEGRAM_BOT_TOKEN }}