# This workflow will run tests using node and then publish a package to GitHub Packages when a release is created
# For more information see: https://help.github.com/actions/language-and-framework-guides/publishing-nodejs-packages
name: Automate_Tag
on: [push]
jobs:
  test:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [10.x, 12.x, 14.x]
    steps:
      - uses: actions/checkout@v2.2.0
      - uses: actions/setup-node@v1
        with:
          node-version: ${{ matrix.node-version }}
      - run: npm install
      - run: npm test

  auto-tag-patch:
    needs: test
    runs-on: ubuntu-latest
    if: |
      startsWith(github.ref, 'refs/heads/master') &&
      !contains(github.event.head_commit.message, '[MAJOR]') &&
      !contains(github.event.head_commit.message, '[MINOR]')
    steps:
      - uses: actions/checkout@v2.2.0
      - uses: actions/setup-node@v1
        with:
          node-version: 14
          registry-url: https://registry.npmjs.org/
      - run: |
          git config --local user.email "$(git log --format='%ae' HEAD^!)"
          git config --local user.name "$(git log --format='%an' HEAD^!)"
          npm version patch

  auto-tag-minor:
    needs: test
    runs-on: ubuntu-latest
    if: |
      startsWith(github.ref, 'refs/heads/master') &&
      !contains(github.event.head_commit.message, '[MAJOR]') &&
      contains(github.event.head_commit.message, '[MINOR]')
    steps:
      - uses: actions/checkout@v2.2.0
      - uses: actions/setup-node@v1
        with:
          node-version: 14
          registry-url: https://registry.npmjs.org/
      - run: |
          git config --local user.email "$(git log --format='%ae' HEAD^!)"
          git config --local user.name "$(git log --format='%an' HEAD^!)"
          npm version minor

  auto-tag-major:
    needs: test
    runs-on: ubuntu-latest
    if: |
      startsWith(github.ref, 'refs/heads/master') &&
      contains(github.event.head_commit.message, '[MAJOR]') &&
      !contains(github.event.head_commit.message, '[MINOR]')
    steps:
      - uses: actions/checkout@v2.2.0
      - uses: actions/setup-node@v1
        with:
          node-version: 14
          registry-url: https://registry.npmjs.org/
      - run: |
          git config --local user.email "$(git log --format='%ae' HEAD^!)"
          git config --local user.name "$(git log --format='%an' HEAD^!)"
          npm version major
