# Publish package on main branch if it's tagged with 'v*' name: release & publish workflow # Controls when the action will run. on: # Triggers the workflow on push events but only for the master branch push: tags: - 'v*' # Allows you to run this workflow manually from the Actions tab workflow_dispatch: # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: # This workflow contains a single job called "release" release: name: Create Release runs-on: ubuntu-20.04 strategy: matrix: python-versions: [3.8] # Steps represent a sequence of tasks that will be executed as part of the job steps: - name: Get version from tag id: tag_name run: | echo ::set-output name=current_version::${GITHUB_REF#refs/tags/v} shell: bash # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v2 - name: Get Changelog Entry id: changelog_reader uses: mindsers/changelog-reader-action@v2 with: validation_depth: 10 version: ${{ steps.tag_name.outputs.current_version }} path: ./CHANGELOG.md - uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-versions }} - name: Install dependencies run: | python -m pip install --upgrade pip pip install poetry - name: build documentation run: | poetry install -E doc poetry run mkdocs build - name: publish documentation uses: peaceiris/actions-gh-pages@v3 with: personal_token: ${{ secrets.PERSONAL_TOKEN }} publish_dir: ./site - name: Build wheels and source tarball run: >- poetry build - name: show temporary files run: >- ls -l - name: create github release id: create_release uses: softprops/action-gh-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: body: ${{ steps.changelog_reader.outputs.changes }} files: dist/*.whl draft: false prerelease: false - name: publish to PyPI uses: pypa/gh-action-pypi-publish@release/v1 with: user: __token__ password: ${{ secrets.PYPI_API_TOKEN }} skip_existing: true