v0.1.0 #1
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Release | |
| on: | |
| release: | |
| types: | |
| - published | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: release-${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: false | |
| jobs: | |
| tests: | |
| name: Release tests (Python ${{ matrix.python-version }}) | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ["3.10", "3.11", "3.12", "3.13"] | |
| steps: | |
| - name: Check out repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| cache: pip | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| python -m pip install -e .[dev] | |
| - name: Run tests | |
| run: python -m pytest | |
| quality: | |
| name: Release quality checks | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check out repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| cache: pip | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| python -m pip install -e .[dev] | |
| - name: Run Ruff | |
| run: python -m ruff check . | |
| - name: Run mypy | |
| run: python -m mypy glpi_python_client | |
| - name: Build documentation | |
| run: python -m sphinx -W --keep-going -b html docs docs/_build/html | |
| build: | |
| name: Build distributions | |
| needs: | |
| - tests | |
| - quality | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check out repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| cache: pip | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| python -m pip install -e .[dev] | |
| - name: Build distributions | |
| run: python -m build | |
| - name: Check distribution metadata | |
| run: python -m twine check dist/* | |
| - name: Upload distributions | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: glpi-python-client-dist | |
| path: dist/* | |
| publish-readthedocs: | |
| name: Publish release docs | |
| needs: | |
| - build | |
| runs-on: ubuntu-latest | |
| env: | |
| READTHEDOCS_BASE_URL: ${{ vars.READTHEDOCS_BASE_URL }} | |
| READTHEDOCS_PROJECT: ${{ secrets.READTHEDOCS_PROJECT }} | |
| READTHEDOCS_TOKEN: ${{ secrets.READTHEDOCS_TOKEN }} | |
| READTHEDOCS_VERSION: ${{ vars.READTHEDOCS_RELEASE_VERSION }} | |
| steps: | |
| - name: Sync versions and trigger Read the Docs release build | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| if [ -z "${READTHEDOCS_TOKEN:-}" ] || [ -z "${READTHEDOCS_PROJECT:-}" ]; then | |
| echo "Read the Docs secrets are not configured; skipping release build." | |
| exit 0 | |
| fi | |
| base_url="${READTHEDOCS_BASE_URL:-https://app.readthedocs.org}" | |
| version="${READTHEDOCS_VERSION:-stable}" | |
| curl --fail --silent --show-error --location \ | |
| --request POST \ | |
| --header "Authorization: Token ${READTHEDOCS_TOKEN}" \ | |
| "${base_url}/api/v3/projects/${READTHEDOCS_PROJECT}/sync-versions/" | |
| curl --fail --silent --show-error --location \ | |
| --request POST \ | |
| --header "Authorization: Token ${READTHEDOCS_TOKEN}" \ | |
| "${base_url}/api/v3/projects/${READTHEDOCS_PROJECT}/versions/${version}/builds/" |