name: release

on:
  release:
    types: [published]

jobs:
  deploy:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v4

    - uses: actions/setup-python@v5
      with:
        python-version: "3.10"

    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install setuptools setuptools_scm wheel build

    - name: Build packages
      run: |
        python -m build --sdist --wheel

    - name: Publish package
      uses: pypa/gh-action-pypi-publish@master
      with:
        user: __token__
        password: ${{ secrets.PYPY_API_TOKEN }}

  docs:
    runs-on: ubuntu-latest
    needs:
    - deploy

    steps:
    - uses: actions/checkout@v4

    - uses: actions/setup-python@v5
      with:
        python-version: "3.10"

    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install -r requirements/ubuntu-latest_py3.10_extras.txt
        pip install -e .

    - name: Generate changelog
      uses: charmixer/auto-changelog-action@v1
      with:
        token: ${{ secrets.GITHUB_TOKEN }}
        exclude_labels: dependencies

    - name: Commit files
      run: |
        git config --local user.email "feedback@materialsproject.org"
        git config --local user.name "materialsproject"
        mv CHANGELOG.md docs/
        git add docs/CHANGELOG.md && git commit -m 'Updated CHANGELOG.md'

    - name: Push changes
      uses: ad-m/github-push-action@master
      with:
        github_token: ${{ secrets.GITHUB_TOKEN }}

    - name: Build
      run: mkdocs build

    - name: Deploy
      uses: peaceiris/actions-gh-pages@v4.0.0
      with:
        github_token: ${{ secrets.GITHUB_TOKEN }}
        publish_dir: ./site
