name: auto versioning for main branch
on:
  push:
    tags-ignore: 
      - '**'
    branches:
      - main
jobs:
  version-up-main:
    runs-on: ubuntu-latest
    env:
      # https://github.community/t/github-action-trigger-on-release-not-working-if-releases-was-created-by-automation/16559
      GITHUB_USER: ${{ secrets.EXT_GITHUB_USER }}
      GITHUB_TOKEN: ${{ secrets.EXT_GITHUB_PAT }}
      RELEASE_IT_VERSION: 14.14.0
    steps:
      - name: Check out codes
        uses: actions/checkout@v2
        with:
          fetch-depth: 0
          token: ${{ secrets.EXT_GITHUB_PAT }}
      - name: Setup Node
        uses: actions/setup-node@v1
        with:
          node-version: '16'
      - name: Set releaser settings
        run: |
          git config --global user.name ${{ secrets.EXT_GITHUB_USER }}
          git config --global user.email ${{ secrets.EXT_GITHUB_EMAIL }}
      # バージョン更新コミットは対象外
      - name: Patch release
        if: "!contains(toJSON(github.event.commits.*.message), '[automate_versioning] Release')"
        run: |
          echo 'UPDATE_ARGS=patch' >> $GITHUB_ENV
      - name: Minor release
        if: contains(toJSON(github.event.commits.*.message), '[[MINOR]]')
        run: |
          echo 'UPDATE_ARGS=minor' >> $GITHUB_ENV
      - name: Major release
        if: contains(toJSON(github.event.commits.*.message), '[[MAJOR]]')
        run: |
          echo 'UPDATE_ARGS=major' >> $GITHUB_ENV
      - name: Release
        if: "env.UPDATE_ARGS != ''"
        run: |
          npm i -g release-it@${RELEASE_IT_VERSION}
          npm i -g @release-it/bumper
          release-it -- ${UPDATE_ARGS} --ci