name: Main concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true on: [push] # on: # pull_request: # branches: # - main # push: # branches: # - main # tags: # - "v*.*.*" env: # Change this to invalidate existing cache. CACHE_PREFIX: v0 PYTHONPATH: ./ jobs: checks: name: Python ${{ matrix.python }} - ${{ matrix.task.name }} runs-on: [ubuntu-latest] timeout-minutes: 15 strategy: fail-fast: false matrix: python: ['3.7', '3.10'] # task: # --show-capture=no on purpose # - name: Test # run: | # pytest --show-capture=no --color=yes tests/ include: # - python: '3.10' # task: # name: Lint # run: flake8 . # - python: '3.10' # task: # name: Type check # run: mypy . - python: '3.10' task: name: Build run: | python setup.py check python setup.py bdist_wheel sdist - python: '3.10' task: name: Style run: | black --check . # - python: '3.10' # task: # name: Docs # run: cd docs && make html # checks: # name: Lint # runs-on: ubuntu-latest # steps: # - uses: actions/checkout@v3 # - uses: psf/black@stable release: name: Release runs-on: ubuntu-latest needs: [checks] # if: startsWith(github.ref, 'refs/tags/') steps: - uses: actions/checkout@v1 - name: Setup Python uses: actions/setup-python@v4 with: python-version: "3.10" - name: Install requirements run: | pip install --upgrade pip setuptools wheel "twine>=1.11.0" - name: Prepare environment run: | echo "RELEASE_VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV echo "TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV - name: Download package distribution files uses: actions/download-artifact@v3 with: name: package path: dist - name: Publish package to PyPI run: | twine upload -u '${{ secrets.PYPI_USERNAME }}' -p '${{ secrets.PYPI_PASSWORD }}' dist/* - name: Publish GitHub release uses: softprops/action-gh-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: # body_path: ${{ github.workspace }}-RELEASE_NOTES.md prerelease: ${{ contains(env.TAG, 'rc') }} files: | dist/*