diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..40f1127 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,71 @@ +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: 14 + - run: yarn install + - run: yarn lint + - name: Telegram Failure Notification + uses: appleboy/telegram-action@v0.1.1 + 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: build + if: startsWith(github.ref, 'refs/tags') + steps: + - name: Checkout + uses: actions/checkout@v2 + + - 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: Build and push Docker image + uses: docker/build-push-action@v1.1.0 + with: + dockerfile: Dockerfile + repository: tornadocash/nova-relayer + tag_with_ref: true + tags: nova,candidate + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_TOKEN }} + + - name: Telegram Message Notify + uses: appleboy/telegram-action@v0.1.1 + with: + to: ${{ secrets.TELEGRAM_CHAT_ID }} + token: ${{ secrets.TELEGRAM_BOT_TOKEN }} + message: 🚀 Published a [${{ steps.vars.outputs.repo_name }}](https://github.com/${{ github.repository }}) version ${{ steps.vars.outputs.version }} to docker hub + debug: true + format: markdown + + - name: Telegram Failure Notification + uses: appleboy/telegram-action@v0.1.1 + if: failure() + with: + message: ❗ Failed to publish [${{ steps.vars.outputs.repo_name }}](https://github.com/${{ github.repository }}/actions) because of ${{ github.actor }} + format: markdown + to: ${{ secrets.TELEGRAM_CHAT_ID }} + token: ${{ secrets.TELEGRAM_BOT_TOKEN }}