Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 8 additions & 5 deletions .github/workflows/build-and-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,24 @@ on:
workflow_call:
secrets:
PYPI_TOKEN:
required: true
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All workflows are re-generated after updating to PTB version 5 without any manual change.

required: true

jobs:

cd-job:
name: Continuous Delivery
runs-on: ubuntu-24.04
runs-on: "ubuntu-24.04"
permissions:
contents: write
steps:
- name: SCM Checkout
uses: actions/checkout@v5
uses: actions/checkout@v6

- name: Setup Python & Poetry Environment
uses: exasol/python-toolbox/.github/actions/python-environment@v4
uses: exasol/python-toolbox/.github/actions/python-environment@v5
with:
python-version: "3.10"
poetry-version: "2.3.0"

- name: Build Artifacts
run: poetry build
Expand All @@ -32,7 +35,7 @@ jobs:
- name: GitHub Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: >
run: >-
gh release create ${GITHUB_REF_NAME}
--title ${GITHUB_REF_NAME}
--notes-file ./doc/changes/changes_${GITHUB_REF_NAME}.md
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@ jobs:
contents: read

cd-job:
needs: [ check-tag-version-job ]
needs:
- check-tag-version-job
name: Continuous Delivery
uses: ./.github/workflows/build-and-publish.yml
permissions:
Expand All @@ -24,7 +25,8 @@ jobs:
PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }}

publish-docs:
needs: [ cd-job ]
needs:
- cd-job
name: Publish Documentation
uses: ./.github/workflows/gh-pages.yml
permissions:
Expand Down
9 changes: 6 additions & 3 deletions .github/workflows/check-release-tag.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,18 @@ jobs:

check-tag-version-job:
name: Check Tag Version
runs-on: ubuntu-24.04
runs-on: "ubuntu-24.04"
permissions:
contents: read
steps:
- name: SCM Checkout
uses: actions/checkout@v5
uses: actions/checkout@v6

- name: Setup Python & Poetry Environment
uses: exasol/python-toolbox/.github/actions/python-environment@v4
uses: exasol/python-toolbox/.github/actions/python-environment@v5
with:
python-version: "3.10"
poetry-version: "2.3.0"

- name: Check Tag Version
# make sure the pushed/created tag matched the project version
Expand Down
132 changes: 71 additions & 61 deletions .github/workflows/checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,201 +6,211 @@ on:
jobs:
Version-Check:
name: Version
runs-on: ubuntu-24.04
runs-on: "ubuntu-24.04"
permissions:
contents: read
steps:
- name: SCM Checkout
uses: actions/checkout@v5
uses: actions/checkout@v6
with:
fetch-depth: 0

- name: Setup Python & Poetry Environment
uses: exasol/python-toolbox/.github/actions/python-environment@v4
uses: exasol/python-toolbox/.github/actions/python-environment@v5
with:
python-version: "3.10"
poetry-version: "2.3.0"

- name: Check Version(s)
run: poetry run -- nox -s version:check

Documentation:
name: Docs
needs: [ Version-Check ]
runs-on: ubuntu-24.04
runs-on: "ubuntu-24.04"
permissions:
contents: read
steps:
- name: SCM Checkout
uses: actions/checkout@v5
uses: actions/checkout@v6

- name: Setup Python & Poetry Environment
uses: exasol/python-toolbox/.github/actions/python-environment@v4
uses: exasol/python-toolbox/.github/actions/python-environment@v5
with:
python-version: "3.10"
poetry-version: "2.3.0"

- name: Build Documentation
run: |
poetry run -- nox -s docs:build
run: poetry run -- nox -s docs:build

- name: Link Check
run: |
poetry run -- nox -s links:check

build-matrix:
name: Generate Build Matrix
uses: ./.github/workflows/matrix-python.yml
permissions:
contents: read
run: poetry run -- nox -s links:check

Changelog:
name: Changelog Update Check
runs-on: ubuntu-24.04
runs-on: "ubuntu-24.04"
permissions:
contents: read
if: ${{ github.ref != 'refs/heads/main' && github.ref != 'refs/heads/master' }}
steps:
- name: SCM Checkout
uses: actions/checkout@v5
uses: actions/checkout@v6

- name: Setup Python & Poetry Environment
uses: exasol/python-toolbox/.github/actions/python-environment@v4
uses: exasol/python-toolbox/.github/actions/python-environment@v5
with:
python-version: "3.10"
poetry-version: "2.3.0"

- name: Run changelog update check
run: poetry run -- nox -s changelog:updated

Lint:
name: Linting (Python-${{ matrix.python-version }})
needs: [ Version-Check, build-matrix ]
runs-on: ubuntu-24.04
name: Linting (Python-${{ matrix.python-versions }})
runs-on: "ubuntu-24.04"
permissions:
contents: read
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.build-matrix.outputs.matrix) }}
matrix:
python-versions: ["3.10", "3.11", "3.12", "3.13"]
steps:
- name: SCM Checkout
uses: actions/checkout@v5
uses: actions/checkout@v6

- name: Setup Python & Poetry Environment
uses: exasol/python-toolbox/.github/actions/python-environment@v4
uses: exasol/python-toolbox/.github/actions/python-environment@v5
with:
python-version: ${{ matrix.python-version }}
python-version: ${{ matrix.python-versions }}
poetry-version: "2.3.0"

- name: Run lint
run: poetry run -- nox -s lint:code

- name: Upload Artifacts
uses: actions/upload-artifact@v5
uses: actions/upload-artifact@v6
with:
name: lint-python${{ matrix.python-version }}
name: lint-python${{ matrix.python-versions }}
path: |
.lint.txt
.lint.json
include-hidden-files: true

Type-Check:
name: Type Checking (Python-${{ matrix.python-version }})
needs: [ Version-Check, build-matrix ]
runs-on: ubuntu-24.04
name: Type Checking (Python-${{ matrix.python-versions }})
runs-on: "ubuntu-24.04"
permissions:
contents: read
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.build-matrix.outputs.matrix) }}
matrix:
python-versions: ["3.10", "3.11", "3.12", "3.13"]

steps:
- name: SCM Checkout
uses: actions/checkout@v5
uses: actions/checkout@v6

- name: Setup Python & Poetry Environment
uses: exasol/python-toolbox/.github/actions/python-environment@v4
uses: exasol/python-toolbox/.github/actions/python-environment@v5
with:
python-version: ${{ matrix.python-version }}
python-version: ${{ matrix.python-versions }}
poetry-version: "2.3.0"

- name: Run type-check
run: poetry run -- nox -s lint:typing

Security:
name: Security Checks (Python-${{ matrix.python-version }})
needs: [ Version-Check, build-matrix ]
runs-on: ubuntu-24.04
name: Security Checks (Python-${{ matrix.python-versions }})
runs-on: "ubuntu-24.04"
permissions:
contents: read
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.build-matrix.outputs.matrix) }}
matrix:
python-versions: ["3.10", "3.11", "3.12", "3.13"]

steps:
- name: SCM Checkout
uses: actions/checkout@v5
uses: actions/checkout@v6

- name: Setup Python & Poetry Environment
uses: exasol/python-toolbox/.github/actions/python-environment@v4
uses: exasol/python-toolbox/.github/actions/python-environment@v5
with:
python-version: ${{ matrix.python-version }}
python-version: ${{ matrix.python-versions }}
poetry-version: "2.3.0"

- name: Run security linter
run: poetry run -- nox -s lint:security

- name: Upload Artifacts
uses: actions/upload-artifact@v5
uses: actions/upload-artifact@v6
with:
name: security-python${{ matrix.python-version }}
name: security-python${{ matrix.python-versions }}
path: .security.json
include-hidden-files: true

Format:
name: Format Check
runs-on: ubuntu-24.04
runs-on: "ubuntu-24.04"
permissions:
contents: read
steps:
- name: SCM Checkout
uses: actions/checkout@v5
uses: actions/checkout@v6

- name: Setup Python & Poetry Environment
uses: exasol/python-toolbox/.github/actions/python-environment@v4
uses: exasol/python-toolbox/.github/actions/python-environment@v5
with:
python-version: "3.10"
poetry-version: "2.3.0"

- name: Run format check
run: poetry run -- nox -s format:check


Build-Packages:
name: Build Package Check
needs: [ Documentation, Lint, Type-Check, Security, Format ]
runs-on: ubuntu-24.04
runs-on: "ubuntu-24.04"
permissions:
contents: read
steps:
- name: SCM Checkout
uses: actions/checkout@v5
uses: actions/checkout@v6

- name: Setup Python & Poetry Environment
uses: exasol/python-toolbox/.github/actions/python-environment@v4
uses: exasol/python-toolbox/.github/actions/python-environment@v5
with:
python-version: "3.10"
poetry-version: "2.3.0"

- name: Run Distribution Check
run: poetry run -- nox -s package:check

Tests:
name: Unit-Tests (Python-${{ matrix.python-version }})
needs: [ Build-Packages, build-matrix ]
runs-on: ubuntu-24.04
name: Unit-Tests (Python-${{ matrix.python-versions }})
runs-on: "ubuntu-24.04"
permissions:
contents: read
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.build-matrix.outputs.matrix) }}
matrix:
python-versions: ["3.10", "3.11", "3.12", "3.13"]

steps:
- name: SCM Checkout
uses: actions/checkout@v5
uses: actions/checkout@v6

- name: Setup Python & Poetry Environment
uses: exasol/python-toolbox/.github/actions/python-environment@v4
uses: exasol/python-toolbox/.github/actions/python-environment@v5
with:
python-version: ${{ matrix.python-version }}
python-version: ${{ matrix.python-versions }}
poetry-version: "2.3.0"

- name: Run Tests and Collect Coverage
run: poetry run -- nox -s test:unit -- --coverage

- name: Upload Artifacts
uses: actions/upload-artifact@v5
uses: actions/upload-artifact@v6
with:
name: coverage-python${{ matrix.python-version }}-fast
name: coverage-python${{ matrix.python-versions }}-fast
path: .coverage
include-hidden-files: true
5 changes: 3 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: CI

on:
pull_request:
types: [opened, synchronize, reopened]
types: [opened, synchronize, reopened]
schedule:
# At 00:00 on every 7th day-of-month from 1 through 31. (https://crontab.guru)
- cron: "0 0 1/7 * *"
Expand All @@ -16,7 +16,8 @@ jobs:
contents: read

Metrics:
needs: [ CI ]
needs:
- CI
uses: ./.github/workflows/report.yml
secrets: inherit
permissions:
Expand Down
Loading