Files
cacti/.github/workflows/pr-php-coverage.yml
dependabot[bot] 064c4d0e4b ci(deps): bump the github-actions group with 4 updates (#8466)
Bumps the github-actions group with 4 updates: [github/codeql-action/init](https://github.com/github/codeql-action), [github/codeql-action/analyze](https://github.com/github/codeql-action), [jdx/mise-action](https://github.com/jdx/mise-action) and [github/codeql-action/upload-sarif](https://github.com/github/codeql-action).


Updates `github/codeql-action/init` from 4.38.3 to 4.39.0
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/24c54180a607b1449ed407dd24f251e4e9147c8d...6f2ac81f5cd81fe351a197ba0b00d91d03cd2aee)

Updates `github/codeql-action/analyze` from 4.38.3 to 4.39.0
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/24c54180a607b1449ed407dd24f251e4e9147c8d...6f2ac81f5cd81fe351a197ba0b00d91d03cd2aee)

Updates `jdx/mise-action` from 5.1.1 to 5.2.0
- [Release notes](https://github.com/jdx/mise-action/releases)
- [Changelog](https://github.com/jdx/mise-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jdx/mise-action/compare/2d8d4cafcbd33be2ea37d2b6f5ad595363d1f1ca...9b200bcecbfd6303e69a4a261b2e09e3757440a7)

Updates `github/codeql-action/upload-sarif` from 4.38.3 to 4.39.0
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/24c54180a607b1449ed407dd24f251e4e9147c8d...6f2ac81f5cd81fe351a197ba0b00d91d03cd2aee)

---
updated-dependencies:
- dependency-name: github/codeql-action/init
  dependency-version: 4.39.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
- dependency-name: github/codeql-action/analyze
  dependency-version: 4.39.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
- dependency-name: jdx/mise-action
  dependency-version: 5.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
- dependency-name: github/codeql-action/upload-sarif
  dependency-version: 4.39.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-23 09:33:28 -04:00

88 lines
3.4 KiB
YAML

name: Changed PHP Coverage
on:
pull_request:
paths:
- '**.php'
- 'tests/phpunit.xml'
- 'tests/e2e/**'
- 'tests/Helpers/RequestCoverage.php'
- 'tests/tools/check_changed_php_coverage.py'
- 'tests/tools/test_check_changed_php_coverage.py'
- 'tests/tools/run_request_coverage.sh'
- 'tests/tools/test_request_coverage_dispatch.py'
- '.github/workflows/pr-php-coverage.yml'
permissions:
contents: read
concurrency:
group: changed-php-coverage-${{ github.event.pull_request.number }}
cancel-in-progress: true
jobs:
coverage:
name: Changed PHP lines >= 80%
runs-on: ubuntu-24.04
timeout-minutes: 30
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 0
persist-credentials: false
- uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
with:
tool_versions: node 22.22.2
install_args: node
- uses: ./.github/actions/setup-php-composer
with:
php-version: '8.3'
coverage: xdebug
extensions: intl, mysql, gd, ldap, gmp, xml, curl, json, mbstring
ini-values: memory_limit=2G
dependency-mode: locked-pr-coverage
install-args: --prefer-dist --no-progress --no-interaction
- name: Validate the coverage gate and include every changed PHP file
env:
BASE_COMMIT: ${{ github.event.pull_request.base.sha }}
run: |
set -euo pipefail
python3 tests/tools/test_check_changed_php_coverage.py
python3 tests/tools/test_request_coverage_dispatch.py
python3 tests/tools/check_changed_php_coverage.py --base "$BASE_COMMIT" \
--prepare-config tests/phpunit.xml --output-config phpunit-changed.xml
- name: Exercise unit and integration contracts with statement coverage
env:
XDEBUG_MODE: coverage
run: include/vendor/bin/pest --configuration=phpunit-changed.xml --testsuite=Unit,Integration --coverage-clover=coverage-changed.xml
- name: Exercise applicable browser and database contracts
env:
BASE_COMMIT: ${{ github.event.pull_request.base.sha }}
CACTI_TEST_COVERAGE: '1'
CACTI_PR_RAW_COVERAGE: /tmp/cacti-pr-coverage
CACTI_PR_COVERAGE_OUTPUT: ${{ runner.temp }}/request-coverage
run: bash tests/tools/run_request_coverage.sh
- name: Require at least 80 percent of changed executable PHP lines
env:
BASE_COMMIT: ${{ github.event.pull_request.base.sha }}
run: |
set -euo pipefail
request_args=()
if compgen -G "${{ runner.temp }}/request-coverage/*.json" > /dev/null; then
request_args=(--request-reports "${{ runner.temp }}/request-coverage")
fi
python3 tests/tools/check_changed_php_coverage.py --base "$BASE_COMMIT" \
--report coverage-changed.xml "${request_args[@]}" \
--minimum 80 --json-output coverage-changed.json
- name: Preserve coverage evidence
if: always()
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9
with:
name: changed-php-coverage
path: |
coverage-changed.xml
coverage-changed.json
${{ runner.temp }}/request-coverage
if-no-files-found: warn