Files
cacti/.github/workflows/cookie-coverage.yml
Thomas Vincent e2a5f32ee9 fix(ci): [develop] harden dependency installs and Docker build boundaries (#8294)
* security(ci): constrain dependency installs and container build boundaries

Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>

* fix(docker): retain shipped runtime libraries in build context

Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>

* fix(tooling): quote gettext paths and honor Docker base selection

Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>

* test(auth): use certificate expiry truth in rendering assertions

Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>

* fix(tooling): finish Docker layer and regex scan findings

Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>

* fix(ci): preserve documentation badge anchors without alternation

Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>

* test(ci): preserve contributor badges and enforce Python coverage

Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>

* ci: share changed-code coverage contracts and enforce shell policy

Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>

* fix(ci): enforce private review files and run path regressions

Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>

* test: measure changed gettext shell coverage

Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>

* test: pin coverage to the reviewed PR revision

Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>

---------

Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
2026-10-14 22:52:37 -04:00

110 lines
3.3 KiB
YAML

name: Cookie Coverage
on:
push:
branches: [develop]
paths:
- '.github/workflows/cookie-coverage.yml'
- '.github/actions/setup-php-composer/**'
- 'auth_2fa.php'
- 'auth_changepassword.php'
- 'auth_login.php'
- 'composer.json'
- 'composer.lock'
- 'include/auth.php'
- 'include/global.php'
- 'include/js/jquery.zoom.js'
- 'include/js/js.storage.js'
- 'include/layout.js'
- 'include/themes/midwinter/main.js'
- 'lib/auth.php'
- 'lib/functions.php'
- 'logout.php'
- 'package.json'
- 'package-lock.json'
- 'tests/Helpers/AuthCookieProbe.php'
- 'tests/integration/AuthSystemRegressionIntegrationTest.php'
- 'tests/js/cookie_helpers.test.js'
- 'tests/Unit/Security/Session/CookiePolicyContractTest.php'
- 'tests/Unit/Security/Session/CookieRuntimeTest.php'
pull_request:
branches: [develop]
paths:
- '.github/workflows/cookie-coverage.yml'
- '.github/actions/setup-php-composer/**'
- 'auth_2fa.php'
- 'auth_changepassword.php'
- 'auth_login.php'
- 'composer.json'
- 'composer.lock'
- 'include/auth.php'
- 'include/global.php'
- 'include/js/jquery.zoom.js'
- 'include/js/js.storage.js'
- 'include/layout.js'
- 'include/themes/midwinter/main.js'
- 'lib/auth.php'
- 'lib/functions.php'
- 'logout.php'
- 'package.json'
- 'package-lock.json'
- 'tests/Helpers/AuthCookieProbe.php'
- 'tests/integration/AuthSystemRegressionIntegrationTest.php'
- 'tests/js/cookie_helpers.test.js'
- 'tests/Unit/Security/Session/CookiePolicyContractTest.php'
- 'tests/Unit/Security/Session/CookieRuntimeTest.php'
workflow_dispatch:
permissions:
contents: read
concurrency:
group: cookie-coverage-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
COMPOSER_ALLOW_SUPERUSER: 1
jobs:
coverage:
name: Cookie behavior matrix
runs-on: ubuntu-24.04
timeout-minutes: 15
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: false
- name: Set up PHP and Cacti test dependencies
uses: ./.github/actions/setup-php-composer
with:
php-version: '8.4'
coverage: none
extensions: intl, mysql, gd, ldap, gmp, xml, curl, json, mbstring
dependency-mode: locked-tests
install-args: --prefer-dist --no-progress --no-interaction
- name: Setup Node 22
uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # 4.4.0
with:
node-version: '22'
cache: npm
- name: Install JavaScript dependencies
run: |
set -euo pipefail
npm ci --ignore-scripts
npm run postinstall --ignore-scripts
- name: Run PHP cookie matrix
run: >-
include/vendor/bin/pest --configuration=tests/phpunit.xml
tests/Unit/Security/Session/CookiePolicyContractTest.php
tests/Unit/Security/Session/CookieRuntimeTest.php
tests/integration/AuthSystemRegressionIntegrationTest.php
- name: Run browser cookie helpers
run: node --test tests/js/cookie_helpers.test.js