name: Release

on:
  push:
    branches:
      - main

jobs:
  publish:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        deno: ["v1.x"]
    steps:
      - uses: actions/checkout@v2
      - uses: denoland/setup-deno@main
        with:
          deno-version: ${{ matrix.deno }}
      - name: Get last tag version
        run: |
          echo "DISCORDENO_VERSION_OLD=$(wget -O- -q https://deno.land/x/discordeno/util/constants.ts | grep 'export const DISCORDENO_VERSION' | awk -F'= ' '{print $2}' | tr -d '"|;')" >> $GITHUB_ENV
      - name: Get new tag version
        run: echo "DISCORDENO_VERSION=$(cat util/constants.ts | grep 'export const DISCORDENO_VERSION' | awk -F'= ' '{print $2}' | tr -d '"|;')" >> $GITHUB_ENV
      - name: Create tag
        if: ${{ env.DISCORDENO_VERSION != env.DISCORDENO_VERSION_OLD }}
        run: git tag ${{ env.DISCORDENO_VERSION }} && git push --tags
      - uses: actions/setup-node@v2
        with:
          node-version: "16.x"
          registry-url: "https://registry.npmjs.org"
      - name: build npm
        run: deno run -A ./dnt.ts ${{ env.DISCORDENO_VERSION }}
      - name: npm publish
        if: ${{ env.DISCORDENO_VERSION != env.DISCORDENO_VERSION_OLD }}
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
        run: cd npm && npm publish
