diff --git a/.github/workflows/pre_release.yaml b/.github/workflows/pre_release.yaml index 9dd47dd9..40def076 100644 --- a/.github/workflows/pre_release.yaml +++ b/.github/workflows/pre_release.yaml @@ -32,6 +32,15 @@ jobs: release_type: prerelease existing_changelog_path: CHANGELOG.md + actions_lint_check: + name: Actions lint check + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v6 + - name: Run actionlint + uses: rhysd/actionlint@v1.7.9 + lint_check: name: Lint check uses: apify/workflows/.github/workflows/python_lint_check.yaml@main @@ -47,8 +56,12 @@ jobs: unit_tests: name: Unit tests uses: apify/workflows/.github/workflows/python_unit_tests.yaml@main + secrets: inherit with: python-versions: '["3.10", "3.11", "3.12", "3.13", "3.14"]' + operating-systems: '["ubuntu-latest", "windows-latest"]' + python-version-for-codecov: "3.14" + operating-system-for-codecov: ubuntu-latest async_docstrings: name: Async dostrings check @@ -59,7 +72,10 @@ jobs: uses: apify/workflows/.github/workflows/python_integration_tests.yaml@main secrets: inherit with: - python-versions: '["3.10", "3.11", "3.12", "3.13", "3.14"]' + python-versions: '["3.10", "3.14"]' + operating-systems: '["ubuntu-latest"]' + python-version-for-codecov: "3.14" + operating-system-for-codecov: ubuntu-latest update_changelog: name: Update changelog diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 41dafb10..4216e775 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -55,26 +55,13 @@ jobs: with: python-versions: '["3.10", "3.11", "3.12", "3.13", "3.14"]' - unit_tests: - name: Unit tests - uses: apify/workflows/.github/workflows/python_unit_tests.yaml@main - with: - python-versions: '["3.10", "3.11", "3.12", "3.13", "3.14"]' - async_docstrings: name: Async dostrings check uses: ./.github/workflows/_async_docstrings_check.yaml - integration_tests: - name: Integration tests - uses: apify/workflows/.github/workflows/python_integration_tests.yaml@main - secrets: inherit - with: - python-versions: '["3.10", "3.11", "3.12", "3.13", "3.14"]' - update_changelog: name: Update changelog - needs: [release_metadata, lint_check, type_check, unit_tests, integration_tests] + needs: [release_metadata, lint_check, type_check] uses: apify/workflows/.github/workflows/python_bump_and_update_changelog.yaml@main with: version_number: ${{ needs.release_metadata.outputs.version_number }} diff --git a/.github/workflows/run_code_checks.yaml b/.github/workflows/run_code_checks.yaml index 6fa692b2..051446c3 100644 --- a/.github/workflows/run_code_checks.yaml +++ b/.github/workflows/run_code_checks.yaml @@ -12,6 +12,15 @@ on: workflow_dispatch: jobs: + actions_lint_check: + name: Actions lint check + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v6 + - name: Run actionlint + uses: rhysd/actionlint@v1.7.9 + lint_check: name: Lint check uses: apify/workflows/.github/workflows/python_lint_check.yaml@main @@ -27,8 +36,12 @@ jobs: unit_tests: name: Unit tests uses: apify/workflows/.github/workflows/python_unit_tests.yaml@main + secrets: inherit with: python-versions: '["3.10", "3.11", "3.12", "3.13", "3.14"]' + operating-systems: '["ubuntu-latest", "windows-latest"]' + python-version-for-codecov: "3.14" + operating-system-for-codecov: ubuntu-latest async_docstrings: name: Async dostrings check @@ -42,6 +55,9 @@ jobs: name: Integration tests needs: [lint_check, type_check, unit_tests] uses: apify/workflows/.github/workflows/python_integration_tests.yaml@main - with: - python-versions: '["3.10", "3.11", "3.12", "3.13", "3.14"]' secrets: inherit + with: + python-versions: '["3.10", "3.14"]' + operating-systems: '["ubuntu-latest"]' + python-version-for-codecov: "3.14" + operating-system-for-codecov: ubuntu-latest diff --git a/.gitignore b/.gitignore index cfd8077f..6b3c714d 100644 --- a/.gitignore +++ b/.gitignore @@ -24,6 +24,8 @@ build/ # Coverage reports .coverage* htmlcov +coverage-unit.xml +coverage-integration.xml # IDE, editors .vscode diff --git a/Makefile b/Makefile index 0874e6d0..33975ded 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ -.PHONY: clean install-dev build publish-to-pypi lint type-check unit-tests unit-tests-cov \ - integration-tests format check-async-docstrings check-code fix-async-docstrings \ - build-api-reference build-docs run-docs +.PHONY: clean install-dev build publish-to-pypi lint type-check unit-tests unit-tests-cov integration-tests \ + integration-tests-cov format check-async-docstrings check-code fix-async-docstrings build-api-reference \ + build-docs run-docs # This is default for local testing, but GitHub workflows override it to a higher value in CI INTEGRATION_TESTS_CONCURRENCY = 1 @@ -27,13 +27,32 @@ type-check: uv run mypy unit-tests: - uv run pytest --numprocesses=auto --verbose --cov=src/apify_client tests/unit + uv run pytest \ + --numprocesses=auto \ + --verbose \ + tests/unit unit-tests-cov: - uv run pytest --numprocesses=auto --verbose --cov=src/apify_client --cov-report=html tests/unit + uv run pytest \ + --numprocesses=auto \ + --verbose \ + --cov=src/apify_client \ + --cov-report=xml:coverage-unit.xml \ + tests/unit integration-tests: - uv run pytest --numprocesses=$(INTEGRATION_TESTS_CONCURRENCY) --verbose tests/integration + uv run pytest \ + --numprocesses=$(INTEGRATION_TESTS_CONCURRENCY) \ + --verbose \ + tests/integration + +integration-tests-cov: + uv run pytest \ + --numprocesses=$(INTEGRATION_TESTS_CONCURRENCY) \ + --verbose \ + --cov=src/apify_client \ + --cov-report=xml:coverage-integration.xml \ + tests/integration format: uv run ruff check --fix diff --git a/README.md b/README.md index bdf89872..bb34dbcc 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,9 @@ PyPI - Downloads + + Code cov report + PyPI - Python version