diff --git a/.github/workflows/doc.yml b/.github/workflows/doc.yml index 0b42147..f019ed1 100644 --- a/.github/workflows/doc.yml +++ b/.github/workflows/doc.yml @@ -1,22 +1,17 @@ -name: release +name: doc on: - workflow_dispatch: - inputs: - release-version: - description: "A valid Semver version string" - required: true + push: + branches: ["main"] -permissions: - contents: write - pull-requests: write +# Prevent doc action on `main` to conflict with each others. +concurrency: + group: doc-${{ github.ref }} + cancel-in-progress: true jobs: - release: - # Do not release if not triggered from the default branch - if: github.ref == format('refs/heads/{0}', github.event.repository.default_branch) - - runs-on: ubuntu-latest + doc: + runs-on: "ubuntu-latest" timeout-minutes: 30 defaults: @@ -34,93 +29,19 @@ jobs: environment-name: my_env cache-environment: true cache-downloads: true - create-args: >- - pip - semver - python-build - setuptools_scm - - - name: Check the version is valid semver - run: | - RELEASE_VERSION="${{ inputs.release-version }}" - - { - pysemver check $RELEASE_VERSION - } || { - echo "The version '$RELEASE_VERSION' is not a valid Semver version string." - echo "Please use a valid semver version string. More details at https://semver.org/" - echo "The release process is aborted." - exit 1 - } - - - name: Check the version is higher than the latest one - run: | - # Retrieve the git tags first - git fetch --prune --unshallow --tags &> /dev/null - - RELEASE_VERSION="${{ inputs.release-version }}" - LATEST_VERSION=$(git describe --abbrev=0 --tags) - IS_HIGHER_VERSION=$(pysemver compare $RELEASE_VERSION $LATEST_VERSION) - - if [ "$IS_HIGHER_VERSION" != "1" ]; then - echo "The version '$RELEASE_VERSION' is not higher than the latest version '$LATEST_VERSION'." - echo "The release process is aborted." - exit 1 - fi - - - name: Build Changelog - id: github_release - uses: mikepenz/release-changelog-builder-action@v4 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - toTag: "main" + - name: Install library + run: python -m pip install --no-deps . - name: Configure git run: | git config --global user.name "${GITHUB_ACTOR}" git config --global user.email "${GITHUB_ACTOR}@users.noreply.github.com" - - name: Create and push git tag - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - # Tag the release - git tag -a "${{ inputs.release-version }}" -m "Release version ${{ inputs.release-version }}" - - # Checkout the git tag - git checkout "${{ inputs.release-version }}" - - # Push the modified changelogs - git push origin main - - # Push the tags - git push origin "${{ inputs.release-version }}" - - - name: Install library - run: python -m pip install --no-deps . - - - name: Build the wheel and sdist - run: python -m build --no-isolation - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@release/v1 - with: - password: ${{ secrets.PYPI_API_TOKEN }} - packages-dir: dist/ - - - name: Create GitHub Release - uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 - with: - tag_name: ${{ inputs.release-version }} - body: ${{steps.github_release.outputs.changelog}} - - name: Deploy the doc run: | echo "Get the gh-pages branch" git fetch origin gh-pages - echo "Build and deploy the doc on ${{ inputs.release-version }}" - mike deploy --push --force stable - mike deploy --push --force ${{ inputs.release-version }} + echo "Build and deploy the doc on main" + mike deploy --push --force main