name: Release Application

on:
    push:
        tags: ['v*']

jobs:
    release:
        name: Create release
        runs-on: ubuntu-latest
        steps:
            - name: Checkout code
              uses: actions/checkout@v2
            - name: Setup
              run: |
                  sudo apt update
                  sudo apt install ruby
                  sudo gem install ronn
            - name: Prepare release
              id: prepare_release
              run: |
                  changelog="$(git diff HEAD^ HEAD -- CHANGELOG.md | grep -E '\+[#*]' | sed 's/^+//')"
                  changelog="${changelog//$'%'/'%25'}"
                  changelog="${changelog//$'\n'/'%0A'}"
                  changelog="${changelog//$'\r'/'%0D'}"
                  echo "::set-output name=changelog::$changelog"
            - name: Build locales
              env:
                  POEDITOR_API_ACCESS: ${{ secrets.POEDITOR_API_ACCESS }}
              run: |
                  make POEDITOR_API_ACCESS="${POEDITOR_API_ACCESS}" i18n
                  tar cf locales.tar.gz kosmorrolib/locales
            - name: Create release
              id: create_release
              uses: actions/create-release@v1
              env:
                  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
              with:
                  tag_name: ${{ github.ref }}
                  release_name: Version ${{ github.ref }}
                  draft: true
                  prerelease: false
                  body: |
                    ${{ steps.prepare_release.outputs.changelog }}
            - name: Upload locales
              id: upload-locales
              uses: actions/upload-release-asset@v1
              env:
                  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
              with:
                  upload_url: ${{ steps.create_release.outputs.upload_url }}
                  asset_path: ./locales.tar.gz
                  asset_name: locales.tar.gz
                  asset_content_type: application/x-tar


    pip:
        name: Release to PyPI
        runs-on: ubuntu-latest
        steps:
            - uses: actions/checkout@v1
            - name: Set up Python
              uses: actions/setup-python@v1
              with:
                python-version: '3.7'
            - name: Setup environment
              run: |
                sudo apt update
                sudo apt install ruby
                sudo gem install ronn
            - name: Install dependencies
              run: |
                python -m pip install --upgrade pip
                pip install setuptools wheel twine skyfield numpy tabulate Babel requests
            - name: Build and publish
              env:
                TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
                TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
                POEDITOR_API_ACCESS: ${{ secrets.POEDITOR_API_ACCESS }}
                POEDITOR_PROJECT_ID: 306433
              run: |
                make POEDITOR_API_ACCESS="${POEDITOR_API_ACCESS}" POEDITOR_PROJECT_ID="306433" build
                twine upload dist/*
