name: Release

on:
  workflow_dispatch:
  push:
    branches:
      - main
      - dev
  pull_request:
    branches:
      - main
      - dev

jobs:
  release:
    name: Release
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v3
        with:
          # Make sure the release step uses its own credentials:
          # https://github.com/cycjimmy/semantic-release-action#private-packages
          persist-credentials: false
          fetch-depth: 0
      - name: Cache
        uses: actions/cache@v3
        with:
          path: |
            ${{ runner.home }}/.gradle/caches
            ${{ runner.home }}/.gradle/wrapper
            .gradle
            node_modules
          key: ${{ runner.os }}-gradle-npm-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties', 'package-lock.json') }}
      - name: Build with Gradle
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: ./gradlew generateMeta clean
      - name: Setup semantic-release
        run: npm install
      - name: Release
        env:
          GITHUB_TOKEN: ${{ secrets.REPOSITORY_PUSH_ACCESS }}
        run: npm exec semantic-release
