diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 4b9eb788e..bedce0cb4 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -15,6 +15,9 @@ jobs: release: runs-on: ubuntu-latest concurrency: release + outputs: + released: ${{ steps.semrelease.outputs.released }} + tag: ${{ steps.semrelease.outputs.tag }} permissions: # NOTE: this enables trusted publishing. # See https://github.com/pypa/gh-action-pypi-publish/tree/release/v1#trusted-publishing @@ -46,6 +49,7 @@ jobs: - name: Publish package to GitHub Release uses: python-semantic-release/upload-to-gh-release@main + # NOTE: semrelease output is a string, so we need to compare it to a string if: ${{ steps.semrelease.outputs.released == 'true' }} with: # NOTE: allow to start the workflow when push action on tag gets executed @@ -55,91 +59,90 @@ jobs: github_token: ${{ secrets.GITHUB_TOKEN }} tag: ${{ steps.semrelease.outputs.tag }} - - name: Debug - run: echo "Released ${{ steps.semrelease.outputs.released }}" - - name: Store the distribution packages + if: ${{ steps.semrelease.outputs.released == 'true' }} uses: actions/upload-artifact@v4 with: name: python-package-distributions path: dist/ - # publish-to-pypi: - # needs: release - # name: >- - # Publish 📦 in PyPI - # if: github.ref == 'refs/heads/main' - # runs-on: ubuntu-latest - # environment: - # name: pypi - # url: https://pypi.org/p/gentropy - # permissions: - # id-token: write # IMPORTANT: mandatory for trusted publishing - # steps: - # - name: Download all the dists - # uses: actions/download-artifact@v4 - # with: - # name: python-package-distributions - # path: dist/ - # - name: Publish distribution 📦 to PyPI - # uses: pypa/gh-action-pypi-publish@release/v1 + publish-to-pypi: + needs: release + name: Publish 📦 in PyPI + if: github.ref == 'refs/heads/main' && ${{needs.release.outputs.released == 'true'}} + runs-on: ubuntu-latest + # environment: + # name: pypi + # url: https://pypi.org/p/gentropy + permissions: + id-token: write # IMPORTANT: mandatory for trusted publishing + steps: + - name: debug + run: echo ${{ needs.release.outputs.released }} + # - name: Download all the dists + # uses: actions/download-artifact@v4 + # with: + # name: python-package-distributions + # path: dist/ + # - name: Publish distribution 📦 to PyPI + # uses: pypa/gh-action-pypi-publish@release/v1 - # publish-to-testpypi: - # name: Publish 📦 in TestPyPI - # needs: release - # if: github.ref != 'refs/heads/main' - # runs-on: ubuntu-latest + publish-to-testpypi: + name: Publish 📦 in TestPyPI + needs: release + if: github.ref == 'refs/heads/main' && ${{needs.release.outputs.released == 'true'}} + runs-on: ubuntu-latest - # environment: - # name: testpypi - # url: https://test.pypi.org/p/gentropy + environment: + name: testpypi + url: https://test.pypi.org/p/gentropy - # permissions: - # id-token: write # IMPORTANT: mandatory for trusted publishing + permissions: + id-token: write # IMPORTANT: mandatory for trusted publishing - # steps: - # - name: Download all the dists - # uses: actions/download-artifact@v4 - # with: - # name: python-package-distributions - # path: dist/ - # - name: Publish distribution 📦 to TestPyPI - # uses: pypa/gh-action-pypi-publish@release/v1 - # with: - # repository-url: https://test.pypi.org/legacy/ + steps: + - name: Download all the dists + uses: actions/download-artifact@v4 + with: + name: python-package-distributions + path: dist/ + - name: Publish distribution 📦 to TestPyPI + # uses: pypa/gh-action-pypi-publish@release/v1 + # with: + # repository-url: https://test.pypi.org/legacy/ - # documentation: - # needs: release - # runs-on: ubuntu-latest - # if: github.ref == 'refs/heads/main' - # steps: - # - uses: actions/checkout@v4 - # with: - # fetch-depth: 0 - # token: ${{ secrets.GITHUB_TOKEN }} - # - name: Set up Python - # uses: actions/setup-python@v4 - # with: - # python-version: ${{ env.PYTHON_VERSION_DEFAULT }} - # - name: Install and configure Poetry - # uses: snok/install-poetry@v1 - # with: - # virtualenvs-create: true - # virtualenvs-in-project: true - # installer-parallel: true - # - name: Load cached venv - # id: cached-poetry-dependencies - # uses: actions/cache@v4 - # with: - # path: .venv - # key: | - # venv-${{ runner.os }}-\ - # ${{ env.PYTHON_VERSION_DEFAULT }}-\ - # ${{ hashFiles('**/poetry.lock') }} - # - name: Install dependencies - # if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' - # run: poetry install --no-interaction --no-root - # - name: Install library - # run: poetry install --without tests --no-interaction - # - name: Publish docs - # run: poetry run mkdocs gh-deploy --force + documentation: + needs: release + runs-on: ubuntu-latest + if: github.ref == 'refs/heads/main' && ${{needs.release.outputs.released == 'true'}} + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + token: ${{ secrets.GITHUB_TOKEN }} + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: ${{ env.PYTHON_VERSION_DEFAULT }} + - name: Install and configure Poetry + uses: snok/install-poetry@v1 + with: + virtualenvs-create: true + virtualenvs-in-project: true + installer-parallel: true + - name: Load cached venv + id: cached-poetry-dependencies + uses: actions/cache@v4 + with: + path: .venv + key: | + venv-${{ runner.os }}-\ + ${{ env.PYTHON_VERSION_DEFAULT }}-\ + ${{ hashFiles('**/poetry.lock') }} + - name: Install dependencies + if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' + run: poetry install --no-interaction --no-root + - name: Install library + run: poetry install --without tests --no-interaction + - name: Publish docs + run: poetry run mkdocs gh-deploy --force