2020-12-15 16:05:35 +01:00
name : build
on :
push :
branches : [ '*' ]
tags : [ 'v[0-9]+.[0-9]+.[0-9]+' ]
pull_request :
jobs :
build :
runs-on : ubuntu-latest
steps :
- name : Checkout
uses : actions/checkout@v2
- uses : actions/setup-node@v1
with :
node-version : 12
- run : yarn install
2020-12-15 19:13:13 +01:00
- run : yarn test
2020-12-15 16:05:35 +01:00
- 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 }}
2020-12-15 19:13:13 +01:00
publish :
runs-on : ubuntu-latest
needs : build
if : startsWith(github.ref, 'refs/tags')
steps :
- name : Checkout
uses : actions/checkout@v2
- name : Install dependencies
run : yarn install
- 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 Notification
uses : appleboy/telegram-action@0.0.7
with :
message : 🚀 Published a [${{ steps.vars.outputs.repo_name }}](https://github.com/${{ github.repository }}) version [${{ steps.vars.outputs.version }}](https://hub.docker.com/repository/docker/${{ github.repository }}) to docker hub
format : markdown
to : ${{ secrets.TELEGRAM_CHAT_ID }}
token : ${{ secrets.TELEGRAM_BOT_TOKEN }}
- 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 }}