name: release

on:
  push:
    tags:
      - 'v**'

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}-publish
  cancel-in-progress: true

jobs:
  build-n-publish:
    runs-on: ubuntu-22.04
    env:
      FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
    #if: startsWith(github.event.ref, 'refs/tags')
    steps:
      - uses: actions/checkout@v4
      - name: Set up Python 3.10
        uses: actions/setup-python@v5
        with:
          python-version: '3.10'
      - name: Set up Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '22'
      - name: Build frontend
        run: make web-build
      - name: Install wheel
        run: pip install wheel && pip install -r requirements/framework.txt
      - name: Build EvalScope
        run: python setup.py sdist bdist_wheel
      - name: Publish package to PyPI
        run: |
          pip install twine
          twine upload dist/* --skip-existing -u __token__ -p ${{ secrets.PYPI_TOKEN }}
