Keep the outer link on a parked Function-constructor environment #3020
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: PR | |
| on: | |
| # Deliberately no "branches:" filter. That filter matches a pull request's *base*, so restricting | |
| # it to main and 3.x silently skipped CI on every layer of a stacked pull request except the | |
| # bottom one - the upper layers base on the branch below them, not on main, and showed "no checks | |
| # reported" until GitHub retargeted them at merge time. Running on every pull request costs a | |
| # little more CI on the rare cross-branch PR and makes a stack reviewable. | |
| pull_request: | |
| env: | |
| DOTNET_NOLOGO: true | |
| DOTNET_CLI_TELEMETRY_OPTOUT: 1 | |
| concurrency: | |
| group: ${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.run_id }} | |
| cancel-in-progress: true | |
| jobs: | |
| test: | |
| name: ${{ matrix.os.name }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: | |
| - { name: 'linux', image: 'ubuntu-latest' } | |
| - { name: 'linux - ARM', image: 'ubuntu-24.04-arm' } | |
| - { name: 'windows', image: 'windows-latest' } | |
| - { name: 'macos', image: 'macos-latest' } | |
| runs-on: ${{ matrix.os.image }} | |
| steps: | |
| - name: Setup NET | |
| uses: actions/setup-dotnet@v6 | |
| with: | |
| dotnet-version: 10.0 | |
| - name: Checkout source code | |
| uses: actions/checkout@v7 | |
| - name: Cache Test262 generated suite | |
| uses: actions/cache@v6 | |
| with: | |
| path: Jint.Tests.Test262/Generated | |
| key: test262-generated-${{ hashFiles('Jint.Tests.Test262/Test262Harness.settings.json') }} | |
| # The generated suite is pure codegen (identical on every OS), so share one cache across | |
| # platforms. Without this, only the Build workflow (Linux) ever seeds the cache and the | |
| # Windows/macOS/ARM jobs regenerate the whole suite on every run. | |
| enableCrossOsArchive: true | |
| - name: Test | |
| run: dotnet test --configuration Release --logger "console;verbosity=quiet" --logger "GitHubActions;summary-include-passed=false;summary-include-skipped=false" | |
| # The matrix above is the shipped configuration: Release with host-contract verification off, which is what | |
| # the probe-count and no-descriptor pins in Jint.Tests.PublicInterface document as costing nothing. This leg | |
| # is the other one an embedder is told to use — the shipped Release package with | |
| # Jint.EnableHostContractVerification set — so that a verifier which misbehaves under the Release JIT, or a | |
| # gating bug, fails here rather than in someone's integration suite. One OS is enough: the verifiers are | |
| # platform-independent, and the switch is set the same way everywhere. | |
| test-release-verification: | |
| name: 'linux - host-contract verification' | |
| runs-on: ubuntu-latest | |
| env: | |
| JINT_HOST_CONTRACT_VERIFICATION: 1 | |
| steps: | |
| - name: Setup NET | |
| uses: actions/setup-dotnet@v6 | |
| with: | |
| dotnet-version: 10.0 | |
| - name: Checkout source code | |
| uses: actions/checkout@v7 | |
| - name: Test Jint.Tests | |
| run: dotnet test Jint.Tests/Jint.Tests.csproj --configuration Release --logger "console;verbosity=quiet" --logger "GitHubActions;summary-include-passed=false;summary-include-skipped=false" | |
| - name: Test Jint.Tests.PublicInterface | |
| run: dotnet test Jint.Tests.PublicInterface/Jint.Tests.PublicInterface.csproj --configuration Release --logger "console;verbosity=quiet" --logger "GitHubActions;summary-include-passed=false;summary-include-skipped=false" | |