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
8 changes: 5 additions & 3 deletions .github/workflows/bench.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ name: Benchmarks

on:
pull_request:
types: [opened, synchronize, reopened, labeled, unlabeled]
types: [opened, synchronize, reopened, ready_for_review, labeled, unlabeled]
paths:
- '.github/workflows/bench.yml'
- '.cargo/**'
Expand Down Expand Up @@ -69,8 +69,10 @@ jobs:
name: scan performance
# Labels re-trigger the workflow; only this one changes the outcome.
if: >-
(github.event.action != 'labeled' && github.event.action != 'unlabeled')
|| github.event.label.name == 'performance-regression-accepted'
github.event.pull_request.draft != true && (
(github.event.action != 'labeled' && github.event.action != 'unlabeled')
|| github.event.label.name == 'performance-regression-accepted'
)
# Job-level, so an unrelated label (skipped above) cannot cancel a run
# in progress. A newer push to the same PR supersedes the older run.
concurrency:
Expand Down
11 changes: 11 additions & 0 deletions .github/workflows/bun-compatibility.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ name: Bun patch compatibility

on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
paths:
- '.github/actions/upload-artifact/**'
- '.github/actions/pin-socket-hosts/**'
Expand Down Expand Up @@ -111,10 +112,14 @@ env:

jobs:
build:
if: github.event.pull_request.draft != true
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
exclude:
# macOS legs run on push to main (and nightly where scheduled), not per PR push.
- os: ${{ github.event_name == 'pull_request' && 'macos-latest' || '' }}
runs-on: ${{ matrix.os }}
timeout-minutes: 30
steps:
Expand Down Expand Up @@ -171,6 +176,8 @@ jobs:
- {os: windows-latest, bun: '0.8.1'}
- {os: windows-latest, bun: '1.0.0'}
- {os: windows-latest, bun: '1.0.36'}
# macOS legs run on push to main (and nightly where scheduled), not per PR push.
- os: ${{ github.event_name == 'pull_request' && 'macos-latest' || '' }}
runs-on: ${{ matrix.os }}
timeout-minutes: 30
steps:
Expand Down Expand Up @@ -363,10 +370,14 @@ jobs:


binary:
if: github.event.pull_request.draft != true
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, ubuntu-22.04, macos-latest, windows-latest]
exclude:
# macOS legs run on push to main (and nightly where scheduled), not per PR push.
- os: ${{ github.event_name == 'pull_request' && 'macos-latest' || '' }}
runs-on: ${{ matrix.os }}
timeout-minutes: 30
steps:
Expand Down
162 changes: 122 additions & 40 deletions .github/workflows/ci.yml

Large diffs are not rendered by default.

25 changes: 21 additions & 4 deletions .github/workflows/composer-compatibility.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ name: Composer patch compatibility

on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
paths:
- '.github/workflows/composer-compatibility.yml'
- 'tests/docker/Dockerfile.composer'
Expand Down Expand Up @@ -79,6 +80,7 @@ env:
jobs:
native:
name: composer ${{ matrix.composer }} / php ${{ matrix.php }} / ${{ matrix.os }}
if: github.event.pull_request.draft != true
strategy:
fail-fast: false
matrix:
Expand All @@ -96,12 +98,9 @@ jobs:
- {os: windows-latest, composer: '2.2.30', php: '8.3', sha256: 8c2b4478b64f8f7cdf1574838fdb0033b29049ca821dad452db7a3dcfcdbffc2}
- {os: windows-latest, composer: '2.9.8', php: '8.4', sha256: 59b2c50e10cafa0d8efc19ede9a326d782f096c674a26baf98cf042ce23de890}
- {os: windows-latest, composer: '2.10.3', php: '8.5', sha256: 7a2d379d5b8ffdaa028580ef26494c36d2feef4b178d3dd1473a4dbc5e17c8d6}
- {os: macos-latest, composer: '1.10.28', php: '8.1', sha256: 0915af36eb01e3f0e16cd309adff7051832b9ef014e38371756804b20425cd5a}
- {os: macos-latest, composer: '2.2.30', php: '8.3', sha256: 8c2b4478b64f8f7cdf1574838fdb0033b29049ca821dad452db7a3dcfcdbffc2}
- {os: macos-latest, composer: '2.10.3', php: '8.5', sha256: 7a2d379d5b8ffdaa028580ef26494c36d2feef4b178d3dd1473a4dbc5e17c8d6}
runs-on: ${{ matrix.os }}
timeout-minutes: 60
steps:
steps: &native-steps
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
Expand Down Expand Up @@ -167,11 +166,29 @@ jobs:
-- --ignored --nocapture
cargo test -p socket-patch-cli --test e2e_vex_lockfile -- composer:: --nocapture

# The macOS rows of `native`: they run on push to main (and nightly
# where scheduled), not on every PR push, so PRs stop queueing on the
# small macOS runner pool.
native-macos:
name: composer ${{ matrix.composer }} / php ${{ matrix.php }} / ${{ matrix.os }}
if: github.event_name != 'pull_request'
strategy:
fail-fast: false
matrix:
include:
- {os: macos-latest, composer: '1.10.28', php: '8.1', sha256: 0915af36eb01e3f0e16cd309adff7051832b9ef014e38371756804b20425cd5a}
- {os: macos-latest, composer: '2.2.30', php: '8.3', sha256: 8c2b4478b64f8f7cdf1574838fdb0033b29049ca821dad452db7a3dcfcdbffc2}
- {os: macos-latest, composer: '2.10.3', php: '8.5', sha256: 7a2d379d5b8ffdaa028580ef26494c36d2feef4b178d3dd1473a4dbc5e17c8d6}
runs-on: ${{ matrix.os }}
timeout-minutes: 60
steps: *native-steps

docker:
# The vendored Docker capstone against an exact composer image. Its
# fixture resolves psr/log from packagist, which no longer serves
# Composer 1, so 1.10.28 is covered by the native legs only.
name: docker composer ${{ matrix.composer }}
if: github.event.pull_request.draft != true
runs-on: ubuntu-latest
timeout-minutes: 35
strategy:
Expand Down
25 changes: 19 additions & 6 deletions .github/workflows/go-compatibility.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ name: Go patch compatibility

on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
paths:
- '.github/workflows/go-compatibility.yml'
- 'crates/socket-patch-core/src/vendor/go*.rs'
Expand Down Expand Up @@ -38,19 +39,15 @@ env:

jobs:
go:
if: github.event.pull_request.draft != true
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
go: ['1.18.10', '1.21.13', '1.24.13', '1.26.3']
include:
# macOS-latest dyld refuses binaries without LC_UUID (Go < 1.24
# linkers; see ci.yml's vexctl step).
- {os: macos-latest, go: '1.24.13'}
- {os: macos-latest, go: '1.26.3'}
runs-on: ${{ matrix.os }}
timeout-minutes: 45
steps:
steps: &go-steps
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
Expand All @@ -75,3 +72,19 @@ jobs:
--test e2e_golang_hosted_build --test e2e_vendor_golang_build \
--test e2e_golang_build --test e2e_golang_workspace_build -- --nocapture
cargo test -p socket-patch-cli --test e2e_vex_lockfile -- golang:: --nocapture

# The macOS rows of `go`: they run on push to main (and nightly
# where scheduled), not on every PR push, so PRs stop queueing on the
# small macOS runner pool.
go-macos:
if: github.event_name != 'pull_request'
strategy:
fail-fast: false
matrix:
os: [macos-latest]
# macOS-latest dyld refuses binaries without LC_UUID (Go < 1.24
# linkers; see ci.yml's vexctl step).
go: ['1.24.13', '1.26.3']
runs-on: ${{ matrix.os }}
timeout-minutes: 45
steps: *go-steps
8 changes: 8 additions & 0 deletions .github/workflows/gradle-compatibility.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ name: Gradle patch compatibility

on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
paths:
- '.github/workflows/gradle-compatibility.yml'
- 'scripts/ci-e2e-bundle.py'
Expand Down Expand Up @@ -98,10 +99,14 @@ env:
jobs:
build:
name: build ${{ matrix.os }}
if: github.event.pull_request.draft != true
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
exclude:
# macOS legs run on push to main (and nightly where scheduled), not per PR push.
- os: ${{ github.event_name == 'pull_request' && 'macos-latest' || '' }}
runs-on: ${{ matrix.os }}
timeout-minutes: 60
env:
Expand Down Expand Up @@ -174,6 +179,9 @@ jobs:
- {gradle: '7.6.6', java: '17', label: '', gradle_args: '', real_central: '', suites: '', test_filter: ''}
- {gradle: '8.14.3', java: '21', label: '', gradle_args: '', real_central: '', suites: '', test_filter: ''}
- {gradle: '9.8.0', java: '21', label: '', gradle_args: '', real_central: '', suites: '', test_filter: ''}
exclude:
# macOS legs run on push to main (and nightly where scheduled), not per PR push.
- os: ${{ github.event_name == 'pull_request' && 'macos-latest' || '' }}
runs-on: ${{ matrix.os }}
timeout-minutes: 60
steps: &cell-steps
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/npm-compatibility.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ on:
# compile (a later `!` pattern excludes, a later plain one re-includes).
# Main pushes stay unfiltered.
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
paths:
- '.github/actions/upload-artifact/**'
- 'Cargo.lock'
Expand Down Expand Up @@ -45,6 +46,7 @@ concurrency:

jobs:
build:
if: github.event.pull_request.draft != true
runs-on: ubuntu-latest
timeout-minutes: 25
steps:
Expand Down
30 changes: 25 additions & 5 deletions .github/workflows/pdm-compatibility.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ name: PDM patch compatibility

on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
paths:
- '.github/actions/upload-artifact/**'
- '.github/workflows/pdm-compatibility.yml'
Expand Down Expand Up @@ -60,10 +61,14 @@ env:

jobs:
build:
if: github.event.pull_request.draft != true
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
exclude:
# macOS legs run on push to main (and nightly where scheduled), not per PR push.
- os: ${{ github.event_name == 'pull_request' && 'macos-latest' || '' }}
runs-on: ${{ matrix.os }}
timeout-minutes: 30
steps:
Expand Down Expand Up @@ -107,13 +112,9 @@ jobs:
# every Windows cell skipped; backtest-pdm.py now fails such a cell.
os: [ubuntu-latest]
pdm: ['0.12.3', '1.15.5', '2.0.3', '2.1.5', '2.3.4', '2.6.1', '2.7.4', '2.8.2', '2.9.3', '2.10.4', '2.11.2', '2.17.3', '2.20.1', '2.22.4', '2.25.9', '2.29.2']
include:
- { os: macos-latest, pdm: '0.12.3' }
- { os: macos-latest, pdm: '2.8.2' }
- { os: macos-latest, pdm: '2.29.2' }
runs-on: ${{ matrix.os }}
timeout-minutes: 45
steps:
steps: &native-steps
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
Expand Down Expand Up @@ -174,6 +175,23 @@ jobs:
# formats (3.1, 4.0-4.2) must attest nothing. The cells ci.yml's `e2e`
# job runs on every PR and main push are excluded here
# (scripts/tests/test_ci_e2e_tiers.py keeps the two lists in step).

# The macOS rows of `native`: they run on push to main (and nightly
# where scheduled), not on every PR push, so PRs stop queueing on the
# small macOS runner pool.
native-macos:
if: github.event_name != 'pull_request'
needs: build
strategy:
fail-fast: false
matrix:
# The ends of the range and the 2.8 lock-format boundary.
os: [macos-latest]
pdm: ['0.12.3', '2.8.2', '2.29.2']
runs-on: ${{ matrix.os }}
timeout-minutes: 45
steps: *native-steps

capstone:
needs: build
strategy:
Expand All @@ -189,6 +207,8 @@ jobs:
- {os: ubuntu-latest, pdm: '2.25.9'}
- {os: ubuntu-latest, pdm: '2.29.2'}
- {os: macos-latest, pdm: '2.29.2'}
# macOS legs run on push to main (and nightly where scheduled), not per PR push.
- os: ${{ github.event_name == 'pull_request' && 'macos-latest' || '' }}
runs-on: ${{ matrix.os }}
timeout-minutes: 30
steps:
Expand Down
23 changes: 19 additions & 4 deletions .github/workflows/pipenv-compatibility.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ name: Pipenv compatibility

on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
paths:
- '.github/actions/upload-artifact/**'
- 'crates/socket-patch-core/src/patch/redirect/pipenv.rs'
Expand Down Expand Up @@ -43,6 +44,7 @@ concurrency:

jobs:
matrix:
if: github.event.pull_request.draft != true
strategy:
fail-fast: false
matrix:
Expand All @@ -55,12 +57,9 @@ jobs:
- os: ubuntu-latest
versions: 2022.12.19 2026.8.0
shapes: crlf marker-excluded extras category
- os: macos-latest
versions: 2018.11.26 2022.12.19 2023.12.1 2026.8.0
shapes: direct
runs-on: ${{ matrix.os }}
timeout-minutes: 60
steps:
steps: &matrix-steps
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
Expand Down Expand Up @@ -111,3 +110,19 @@ jobs:
${{ runner.temp }}/pipenv-compat/summary.md
if-no-files-found: warn
retention-days: 7

# The macOS rows of `matrix`: they run on push to main (and nightly
# where scheduled), not on every PR push, so PRs stop queueing on the
# small macOS runner pool.
matrix-macos:
if: github.event_name != 'pull_request'
strategy:
fail-fast: false
matrix:
include:
- os: macos-latest
versions: 2018.11.26 2022.12.19 2023.12.1 2026.8.0
shapes: direct
runs-on: ${{ matrix.os }}
timeout-minutes: 60
steps: *matrix-steps
2 changes: 2 additions & 0 deletions .github/workflows/pnpm-compatibility.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ on:
# compile (a later `!` pattern excludes, a later plain one re-includes).
# Main pushes stay unfiltered.
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
paths:
- '.github/actions/upload-artifact/**'
- 'Cargo.lock'
Expand Down Expand Up @@ -37,6 +38,7 @@ concurrency:

jobs:
build:
if: github.event.pull_request.draft != true
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
Expand Down
8 changes: 8 additions & 0 deletions .github/workflows/poetry-compatibility.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ name: Poetry patch compatibility

on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
paths:
- '.github/actions/upload-artifact/**'
- '.github/actions/pin-socket-hosts/**'
Expand Down Expand Up @@ -52,10 +53,14 @@ env:

jobs:
build:
if: github.event.pull_request.draft != true
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
exclude:
# macOS legs run on push to main (and nightly where scheduled), not per PR push.
- os: ${{ github.event_name == 'pull_request' && 'macos-latest' || '' }}
runs-on: ${{ matrix.os }}
timeout-minutes: 30
steps:
Expand All @@ -81,6 +86,9 @@ jobs:
matrix:
os: [ubuntu-latest, macos-latest]
poetry: ['1.0.10', '1.1.15', '1.2.2', '1.3.2', '1.4.2', '1.5.1', '1.6.1', '1.7.1', '1.8.5', '2.0.1', '2.1.4', '2.2.1', '2.3.4', '2.4.3']
exclude:
# macOS legs run on push to main (and nightly where scheduled), not per PR push.
- os: ${{ github.event_name == 'pull_request' && 'macos-latest' || '' }}
runs-on: ${{ matrix.os }}
timeout-minutes: 45
steps:
Expand Down
Loading
Loading