---
on:
  push:
  workflow_dispatch:

jobs:
  fmt:
    runs-on: 'self-hosted'
    steps:
      - uses: 'actions/checkout@v4'
      - uses: 'actions/setup-go@v5'
        with:
          go-version-file: 'go.mod'
      - run: |
          make tidy no-dirty
  test:
    runs-on: 'self-hosted'
    steps:
      - uses: 'actions/checkout@v4'
      - uses: 'actions/setup-go@v5'
        with:
          go-version-file: 'go.mod'
      - run: |
          make check tidy no-dirty
  build:
    if: "${{ startsWith(github.ref, 'refs/tags/') }}"
    needs:
      - 'fmt'
      - 'test'
    runs-on: 'self-hosted'
    steps:
      - uses: 'actions/checkout@v4'
      - uses: 'actions/setup-go@v5'
        with:
          go-version-file: 'go.mod'
      - name: 'build'
        run: |
          printf '%s' "$GIT_CRYPT_SECRET" | base64 -d > secret
          git-crypt unlock secret
          make build
        env:
          GIT_CRYPT_SECRET: '${{ secrets.GIT_CRYPT }}'
      - uses: 'https://code.forgejo.org/forgejo/upload-artifact/src/tag/v4@main'
        with:
          if-no-files-found: 'error'
          name: 'ods-${{ env.GITHUB_REF_NAME }}'
          path: 'ods'
#      - uses: 'https://gitea.com/actions/release-action@main'
#        with:
#          files: |-
#            ods
#          api_key: '${{ secrets.RELEASE_TOKEN }}'
#      - uses: 'actions/forgejo-release@v2'
#        with:
#          url: 'https://git.adyxax.org/'
#          repo: 'adyxax/ods'
#          direction: 'upload'
#          tag: '${{ github.ref_name }}'
#          sha: '${{ github.sha }}'
#          release-dir: 'release'
#          token: '${{ secrets.TOKEN }}'
#          hide-archive-link: true
#          release-notes-assistant: true
