diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d723ff5..28964c9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -3,8 +3,7 @@ on: push: pull_request: workflow_dispatch: - schedule: - - cron: '0 0 * * *' + concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true @@ -19,9 +18,9 @@ jobs: matrix: os: [ ubuntu-latest ] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + uses: docker/setup-buildx-action@v4 - name: Build service TEST image env: DOCKER_BUILDKIT: 1 @@ -33,7 +32,7 @@ jobs: - name: Save images for downstream jobs run: | docker save local/service-test:ci | gzip > service-test.tar.gz - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v6 with: name: test-images path: service-test.tar.gz @@ -45,11 +44,11 @@ jobs: strategy: fail-fast: false matrix: - os: [ ubuntu-latest ] + os: [ubuntu-latest] needs: build-test-images steps: - - uses: actions/checkout@v4 - - uses: actions/download-artifact@v4 + - uses: actions/checkout@v6 + - uses: actions/download-artifact@v6 with: name: test-images - name: Load images @@ -63,7 +62,7 @@ jobs: python -m coverage run -m pytest ' - name: Upload coverage xml - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: coverage-xml path: service/reports/ci/coverage.xml diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 2dfd3a2..c42f4da 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -16,8 +16,6 @@ on: branches: [ "main" ] pull_request: branches: [ "main" ] - schedule: - - cron: '0 0 * * *' jobs: analyze: @@ -57,7 +55,7 @@ jobs: # your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 # Add any setup steps before running the `github/codeql-action/init` action. # This includes steps like installing compilers or runtimes (`actions/setup-node` diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 46320c1..0a27281 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -3,8 +3,7 @@ on: push: workflow_dispatch: pull_request: - schedule: - - cron: '0 0 * * *' + permissions: security-events: write jobs: @@ -14,15 +13,16 @@ jobs: strategy: fail-fast: false matrix: - os: [ ubuntu-latest, windows-latest ] - python-version: [ "3.9", "3.10", "3.11", "3.12", "3.13" ] + os: [ubuntu-latest, macos-latest, windows-latest] + python-version: [ "3.9", "3.10", "3.11", "3.12", "3.13" , "3.14" ] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Setup Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} cache: "pip" + cache-dependency-path: service/requirements.test.txt - name: Install tools run: | python -m pip install -U pip diff --git a/.github/workflows/pytest.yml b/.github/workflows/pytest.yml index 7e309bd..cc80384 100644 --- a/.github/workflows/pytest.yml +++ b/.github/workflows/pytest.yml @@ -3,8 +3,7 @@ on: push: pull_request: workflow_dispatch: - schedule: - - cron: '0 0 * * *' + concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true @@ -18,30 +17,31 @@ jobs: strategy: fail-fast: false matrix: - os: [ ubuntu-latest, windows-latest ] - python-version: [ "3.9", "3.10", "3.11", "3.12", "3.13" ] + os: [ubuntu-latest, macos-latest, windows-latest] + python-version: [ "3.9", "3.10", "3.11", "3.12", "3.13" , "3.14" ] env: PYTHONUTF8: "1" PYTHONPATH: ${{ github.workspace }}/service steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Set up Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} cache: "pip" + cache-dependency-path: service/requirements.test.txt - - name: Install deps (Ubuntu) - if: matrix.os == 'ubuntu-latest' + - name: Install deps (Unix) + if: matrix.os != 'windows-latest' shell: bash run: | set -eux python -m pip install -U pip - pip install -r service/requirements.test.txt + python -m pip install -r service/requirements.test.txt if [ -f service/pyproject.toml ] || [ -f service/setup.cfg ] || [ -f service/setup.py ]; then - pip install -e service + python -m pip install -e service fi - name: Install deps (Windows) if: matrix.os == 'windows-latest' @@ -49,7 +49,7 @@ jobs: run: | $ErrorActionPreference = "Stop" python -m pip install -U pip - pip install -r service/requirements.test.txt + python -m pip install -r service/requirements.test.txt $hasPythonProject = (Test-Path -Path 'service/pyproject.toml') -or (Test-Path -Path 'service/setup.cfg') -or (Test-Path -Path 'service/setup.py') @@ -63,7 +63,7 @@ jobs: run: | python --version pip --version - pytest --version + python -m pytest --version python -c "import sys,platform,os;print(platform.platform());print(sys.version);print('PYTHONPATH=',os.environ.get('PYTHONPATH'))" - name: Run tests with coverage shell: bash @@ -71,7 +71,7 @@ jobs: python -m coverage run -m pytest -q python -m coverage xml -o coverage.xml - name: Upload coverage.xml - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: coverage-${{ matrix.os }}-py${{ matrix.python-version }} path: coverage.xml