name: Release

on:
  workflow_dispatch:

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3
        with:
          ref: master
          token: ${{ secrets.GH_TOKEN }}

      - name: Setup Python Environment
        uses: ./.github/actions/setup-python

      - name: Setup Node Environment
        uses: ./.github/actions/setup-node

      - name: Build API Doc
        uses: ./.github/actions/build-api-doc

      - run: echo "TAG_NAME=v$(poetry version -s)" >> $GITHUB_ENV

      - name: Archive Changelog
        uses: docker://ghcr.io/nonebot/auto-changelog:master
        with:
          changelog_file: website/src/pages/changelog.md
          archive_regex: '(?<=## )最近更新(?=\n)'
          archive_title: ${{ env.TAG_NAME }}
          commit_and_push: false

      - name: Archive Files
        run: |
          yarn archive $(poetry version -s)
          yarn prettier

      - name: Push Tag
        run: |
          git config user.name github-actions[bot]
          git config user.email github-actions[bot]@users.noreply.github.com
          git add .
          git commit -m ":bookmark: Release $(poetry version -s)"
          git tag ${{ env.TAG_NAME }}
          git push && git push --tags
