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
132 changes: 96 additions & 36 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -80,22 +80,33 @@ jobs:
with:
fetch-depth: 0
persist-credentials: false
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6
with:
python-version: '3.12'
- name: Select Ubuntu's Python 3.12
run: |
/usr/bin/python3 -I -S -c 'import sys; assert sys.version_info[:2] == (3, 12)'
echo /usr/bin >> "$GITHUB_PATH"
- name: Create isolated Composer state
run: |
state="$(mktemp -d "$RUNNER_TEMP/php-check.XXXXXX")"
mkdir -m 700 "$state/home" "$state/cache" "$state/tmp"
{
echo "COMPOSER_HOME=$state/home"
echo "COMPOSER_CACHE_DIR=$state/cache"
echo "TMPDIR=$state/tmp"
} >> "$GITHUB_ENV"
- name: Select authenticated dependency trust
uses: durable-workflow/.github/.github/actions/bootstrap-patched-pip@75587fc33ff40c34f32ef777293dad56bb6f48c7 # clean-trust
uses: durable-workflow/.github/.github/actions/bootstrap-patched-pip@242c2a7fb23459db2e1ada5f84dbee6d61d9b1e5 # clean-trust
with:
clients: pip,python,composer,curl,git
- name: Disable APT download retries (CVE-2026-109518)
run: echo 'Acquire::Retries "0";' | sudo tee /etc/apt/apt.conf.d/99-no-retries >/dev/null
- uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # v2
- uses: durable-workflow/.github/.github/actions/setup-php-linux@411a14ac07d32073eed6ab4977f2825eba4739a7 # bound-linux-php
with:
php-version: '8.3'
tools: composer:2.10.3
ini-file: production
tools: composer:2.10.3,phpunit:11.5.57
coverage: none
- name: Verify Composer trust before requests
uses: durable-workflow/.github/.github/actions/verify-composer-trust@75587fc33ff40c34f32ef777293dad56bb6f48c7 # clean-trust
uses: durable-workflow/.github/.github/actions/verify-composer-trust@242c2a7fb23459db2e1ada5f84dbee6d61d9b1e5 # clean-trust
- run: composer install --no-interaction --prefer-dist --no-progress
- name: Require durable replay and codec evidence
env:
Expand Down Expand Up @@ -492,25 +503,38 @@ jobs:
timeout-minutes: 10
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6
with:
python-version: '3.12'
persist-credentials: false
- name: Select Ubuntu's Python 3.12
run: |
/usr/bin/python3 -I -S -c 'import sys; assert sys.version_info[:2] == (3, 12)'
echo /usr/bin >> "$GITHUB_PATH"
- name: Create isolated Composer state
run: |
state="$(mktemp -d "$RUNNER_TEMP/php-check.XXXXXX")"
mkdir -m 700 "$state/home" "$state/cache" "$state/tmp"
{
echo "COMPOSER_HOME=$state/home"
echo "COMPOSER_CACHE_DIR=$state/cache"
echo "TMPDIR=$state/tmp"
} >> "$GITHUB_ENV"
- name: Select authenticated dependency trust
uses: durable-workflow/.github/.github/actions/bootstrap-patched-pip@75587fc33ff40c34f32ef777293dad56bb6f48c7 # clean-trust
uses: durable-workflow/.github/.github/actions/bootstrap-patched-pip@242c2a7fb23459db2e1ada5f84dbee6d61d9b1e5 # clean-trust
with:
clients: pip,python,composer,curl,git
- name: Disable APT download retries (CVE-2026-109518)
run: echo 'Acquire::Retries "0";' | sudo tee /etc/apt/apt.conf.d/99-no-retries >/dev/null
- uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # v2
- uses: durable-workflow/.github/.github/actions/setup-php-linux@411a14ac07d32073eed6ab4977f2825eba4739a7 # bound-linux-php
with:
php-version: '8.3'
tools: composer:2.10.3
ini-file: production
tools: composer:2.10.3,phpunit:11.5.57
coverage: none
- name: Verify Composer trust before requests
uses: durable-workflow/.github/.github/actions/verify-composer-trust@75587fc33ff40c34f32ef777293dad56bb6f48c7 # clean-trust
uses: durable-workflow/.github/.github/actions/verify-composer-trust@242c2a7fb23459db2e1ada5f84dbee6d61d9b1e5 # clean-trust
- run: composer install --no-interaction --prefer-dist
- name: Verify Composer trust before requests
uses: durable-workflow/.github/.github/actions/verify-composer-trust@75587fc33ff40c34f32ef777293dad56bb6f48c7 # clean-trust
uses: durable-workflow/.github/.github/actions/verify-composer-trust@242c2a7fb23459db2e1ada5f84dbee6d61d9b1e5 # clean-trust
- run: composer analyse

docs:
Expand All @@ -527,11 +551,13 @@ jobs:
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
with:
persist-credentials: false
ref: ${{ matrix.source == 'current' && github.sha || matrix.source }}
fetch-depth: 0
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6
with:
python-version: '3.12'
- name: Select Ubuntu's Python 3.12
run: |
/usr/bin/python3 -I -S -c 'import sys; assert sys.version_info[:2] == (3, 12)'
echo /usr/bin >> "$GITHUB_PATH"
- name: Select the temporary tooling directory
run: echo "DOCS_TOOLING_DIRECTORY=$RUNNER_TEMP/docs-tooling" >> "$GITHUB_ENV"
- name: Prepare exact current tooling against the selected source
Expand All @@ -546,22 +572,32 @@ jobs:
run: python "$DOCS_TOOLING_DIRECTORY/scripts/test-docs-release-channel.py"
- name: Test presentation and published SDK source isolation
run: python "$DOCS_TOOLING_DIRECTORY/scripts/prepare-docs-presentation.test.py"
- name: Create isolated Composer state
run: |
state="$(mktemp -d "$RUNNER_TEMP/php-check.XXXXXX")"
mkdir -m 700 "$state/home" "$state/cache" "$state/tmp"
{
echo "COMPOSER_HOME=$state/home"
echo "COMPOSER_CACHE_DIR=$state/cache"
echo "TMPDIR=$state/tmp"
} >> "$GITHUB_ENV"
- name: Select authenticated dependency trust
uses: durable-workflow/.github/.github/actions/bootstrap-patched-pip@75587fc33ff40c34f32ef777293dad56bb6f48c7 # clean-trust
uses: durable-workflow/.github/.github/actions/bootstrap-patched-pip@242c2a7fb23459db2e1ada5f84dbee6d61d9b1e5 # clean-trust
with:
clients: pip,python,composer,curl,git,npm
- name: Disable APT download retries (CVE-2026-109518)
run: echo 'Acquire::Retries "0";' | sudo tee /etc/apt/apt.conf.d/99-no-retries >/dev/null
- uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # v2
- uses: durable-workflow/.github/.github/actions/setup-php-linux@411a14ac07d32073eed6ab4977f2825eba4739a7 # bound-linux-php
with:
php-version: '8.3'
tools: composer:2.10.3
ini-file: production
tools: composer:2.10.3,phpunit:11.5.57
coverage: none
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6
with:
node-version: '24'
- name: Verify Composer trust before requests
uses: durable-workflow/.github/.github/actions/verify-composer-trust@75587fc33ff40c34f32ef777293dad56bb6f48c7 # clean-trust
uses: durable-workflow/.github/.github/actions/verify-composer-trust@242c2a7fb23459db2e1ada5f84dbee6d61d9b1e5 # clean-trust
- run: composer --working-dir="$DOCS_TOOLING_DIRECTORY" install --no-interaction --prefer-dist
- run: npm --prefix "$DOCS_TOOLING_DIRECTORY" ci --ignore-scripts
- run: npm --prefix "$DOCS_TOOLING_DIRECTORY" audit --audit-level=moderate
Expand All @@ -571,7 +607,7 @@ jobs:
- name: Test selected presentation asset validation
run: python "$DOCS_TOOLING_DIRECTORY/scripts/check-docs-analytics.test.py"
- name: Verify Composer trust before requests
uses: durable-workflow/.github/.github/actions/verify-composer-trust@75587fc33ff40c34f32ef777293dad56bb6f48c7 # clean-trust
uses: durable-workflow/.github/.github/actions/verify-composer-trust@242c2a7fb23459db2e1ada5f84dbee6d61d9b1e5 # clean-trust
- run: bash "$DOCS_TOOLING_DIRECTORY/scripts/build-docs.sh"
- run: node "$DOCS_TOOLING_DIRECTORY/scripts/check-docs-portal.mjs" build/site
- run: php "$DOCS_TOOLING_DIRECTORY/scripts/check-docs-analytics.php" build/site
Expand Down Expand Up @@ -637,22 +673,35 @@ jobs:
timeout-minutes: 10
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6
with:
python-version: '3.12'
persist-credentials: false
- name: Select Ubuntu's Python 3.12
run: |
/usr/bin/python3 -I -S -c 'import sys; assert sys.version_info[:2] == (3, 12)'
echo /usr/bin >> "$GITHUB_PATH"
- name: Create isolated Composer state
run: |
state="$(mktemp -d "$RUNNER_TEMP/php-check.XXXXXX")"
mkdir -m 700 "$state/home" "$state/cache" "$state/tmp"
{
echo "COMPOSER_HOME=$state/home"
echo "COMPOSER_CACHE_DIR=$state/cache"
echo "TMPDIR=$state/tmp"
} >> "$GITHUB_ENV"
- name: Select authenticated dependency trust
uses: durable-workflow/.github/.github/actions/bootstrap-patched-pip@75587fc33ff40c34f32ef777293dad56bb6f48c7 # clean-trust
uses: durable-workflow/.github/.github/actions/bootstrap-patched-pip@242c2a7fb23459db2e1ada5f84dbee6d61d9b1e5 # clean-trust
with:
clients: pip,python,composer,curl,git
- name: Disable APT download retries (CVE-2026-109518)
run: echo 'Acquire::Retries "0";' | sudo tee /etc/apt/apt.conf.d/99-no-retries >/dev/null
- uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # v2
- uses: durable-workflow/.github/.github/actions/setup-php-linux@411a14ac07d32073eed6ab4977f2825eba4739a7 # bound-linux-php
with:
php-version: '8.3'
tools: composer:2.10.3
ini-file: production
tools: composer:2.10.3,phpunit:11.5.57
coverage: none
- name: Verify Composer trust before requests
uses: durable-workflow/.github/.github/actions/verify-composer-trust@75587fc33ff40c34f32ef777293dad56bb6f48c7 # clean-trust
uses: durable-workflow/.github/.github/actions/verify-composer-trust@242c2a7fb23459db2e1ada5f84dbee6d61d9b1e5 # clean-trust
- name: Install into a clean consumer project
run: |
consumer="$(mktemp -d)"
Expand All @@ -666,7 +715,7 @@ jobs:
"$consumer/vendor/autoload.php" \
source-development
- name: Verify Composer trust before requests
uses: durable-workflow/.github/.github/actions/verify-composer-trust@75587fc33ff40c34f32ef777293dad56bb6f48c7 # clean-trust
uses: durable-workflow/.github/.github/actions/verify-composer-trust@242c2a7fb23459db2e1ada5f84dbee6d61d9b1e5 # clean-trust
- name: Verify release identity and reject stale package metadata
run: |
release_tag=$(php -r '$manifest = json_decode(file_get_contents("composer.json"), true, flags: JSON_THROW_ON_ERROR); echo $manifest["extra"]["durable-workflow"]["product-train"];')
Expand All @@ -685,22 +734,33 @@ jobs:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
with:
persist-credentials: false
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6
with:
python-version: '3.12'
- name: Select Ubuntu's Python 3.12
run: |
/usr/bin/python3 -I -S -c 'import sys; assert sys.version_info[:2] == (3, 12)'
echo /usr/bin >> "$GITHUB_PATH"
- name: Create isolated Composer state
run: |
state="$(mktemp -d "$RUNNER_TEMP/php-check.XXXXXX")"
mkdir -m 700 "$state/home" "$state/cache" "$state/tmp"
{
echo "COMPOSER_HOME=$state/home"
echo "COMPOSER_CACHE_DIR=$state/cache"
echo "TMPDIR=$state/tmp"
} >> "$GITHUB_ENV"
- name: Select authenticated dependency trust
uses: durable-workflow/.github/.github/actions/bootstrap-patched-pip@75587fc33ff40c34f32ef777293dad56bb6f48c7 # clean-trust
uses: durable-workflow/.github/.github/actions/bootstrap-patched-pip@242c2a7fb23459db2e1ada5f84dbee6d61d9b1e5 # clean-trust
with:
clients: pip,python,composer,curl,git
- name: Disable APT download retries (CVE-2026-109518)
run: echo 'Acquire::Retries "0";' | sudo tee /etc/apt/apt.conf.d/99-no-retries >/dev/null
- uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # v2
- uses: durable-workflow/.github/.github/actions/setup-php-linux@411a14ac07d32073eed6ab4977f2825eba4739a7 # bound-linux-php
with:
php-version: '8.3'
tools: composer:2.10.3
ini-file: production
tools: composer:2.10.3,phpunit:11.5.57
coverage: none
- name: Verify Composer trust before requests
uses: durable-workflow/.github/.github/actions/verify-composer-trust@75587fc33ff40c34f32ef777293dad56bb6f48c7 # clean-trust
uses: durable-workflow/.github/.github/actions/verify-composer-trust@242c2a7fb23459db2e1ada5f84dbee6d61d9b1e5 # clean-trust
with:
working-directory: examples/laravel-http
# Audits the committed lock only: no install, plugins or scripts. Composer's
Expand Down
25 changes: 18 additions & 7 deletions .github/workflows/example-lock-audit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,22 +24,33 @@ jobs:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
with:
persist-credentials: false
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6
with:
python-version: '3.12'
- name: Select Ubuntu's Python 3.12
run: |
/usr/bin/python3 -I -S -c 'import sys; assert sys.version_info[:2] == (3, 12)'
echo /usr/bin >> "$GITHUB_PATH"
- name: Create isolated Composer state
run: |
state="$(mktemp -d "$RUNNER_TEMP/php-check.XXXXXX")"
mkdir -m 700 "$state/home" "$state/cache" "$state/tmp"
{
echo "COMPOSER_HOME=$state/home"
echo "COMPOSER_CACHE_DIR=$state/cache"
echo "TMPDIR=$state/tmp"
} >> "$GITHUB_ENV"
- name: Select authenticated dependency trust
uses: durable-workflow/.github/.github/actions/bootstrap-patched-pip@75587fc33ff40c34f32ef777293dad56bb6f48c7 # clean-trust
uses: durable-workflow/.github/.github/actions/bootstrap-patched-pip@242c2a7fb23459db2e1ada5f84dbee6d61d9b1e5 # clean-trust
with:
clients: pip,python,composer,curl,git
- name: Disable APT download retries (CVE-2026-109518)
run: echo 'Acquire::Retries "0";' | sudo tee /etc/apt/apt.conf.d/99-no-retries >/dev/null
- uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # v2
- uses: durable-workflow/.github/.github/actions/setup-php-linux@411a14ac07d32073eed6ab4977f2825eba4739a7 # bound-linux-php
with:
php-version: '8.3'
tools: composer:2.10.3
ini-file: production
tools: composer:2.10.3,phpunit:11.5.57
coverage: none
- name: Verify Composer trust before requests
uses: durable-workflow/.github/.github/actions/verify-composer-trust@75587fc33ff40c34f32ef777293dad56bb6f48c7 # clean-trust
uses: durable-workflow/.github/.github/actions/verify-composer-trust@242c2a7fb23459db2e1ada5f84dbee6d61d9b1e5 # clean-trust
with:
working-directory: examples/laravel-http
- name: Audit the committed example lock
Expand Down
Loading