From be2c587ecf54669bb65406173794f5595a8e8c34 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 8 Dec 2025 10:59:43 +0000 Subject: [PATCH 1/3] Initial plan From 422b52c44aef3d9f8b6f8afe4474254456cf63d3 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 8 Dec 2025 11:11:08 +0000 Subject: [PATCH 2/3] Update all workflows to use GitHub larger cloud runners Co-authored-by: clemensv <542030+clemensv@users.noreply.github.com> --- .github/workflows/c.yml | 4 ++-- .github/workflows/dotnet.yml | 6 ++--- .github/workflows/go.yml | 4 ++-- .github/workflows/java-sdk.yml | 18 +++++++------- .github/workflows/jstruct-cli.yml | 36 ++++++++++++++-------------- .github/workflows/perl.yml | 16 ++++++------- .github/workflows/php.yml | 2 +- .github/workflows/publish-vscode.yml | 4 ++-- .github/workflows/python.yml | 6 ++--- .github/workflows/rust.yml | 8 +++---- .github/workflows/swift.yml | 6 ++--- .github/workflows/typescript.yml | 4 ++-- 12 files changed, 57 insertions(+), 57 deletions(-) diff --git a/.github/workflows/c.yml b/.github/workflows/c.yml index b2e2d33..fe2ead7 100644 --- a/.github/workflows/c.yml +++ b/.github/workflows/c.yml @@ -21,7 +21,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-latest, macos-latest, windows-latest] + os: [ubuntu-latest-4-cores, macos-latest-xlarge, windows-latest-8-cores] steps: - uses: actions/checkout@v4 @@ -59,7 +59,7 @@ jobs: memory-check: name: Memory Check (Valgrind) - runs-on: ubuntu-latest + runs-on: ubuntu-latest-4-cores steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index 2f83e01..6b6ec7e 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -28,7 +28,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-latest, windows-latest, macos-latest] + os: [ubuntu-latest-4-cores, windows-latest-8-cores, macos-latest-xlarge] steps: - uses: actions/checkout@v4 @@ -61,7 +61,7 @@ jobs: build: name: Build package - runs-on: ubuntu-latest + runs-on: ubuntu-latest-4-cores needs: test steps: @@ -94,7 +94,7 @@ jobs: publish: name: Publish to NuGet - runs-on: ubuntu-latest + runs-on: ubuntu-latest-4-cores needs: build if: startsWith(github.ref, 'refs/tags/v') permissions: diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index 94f16fc..9aee1d8 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -19,7 +19,7 @@ on: jobs: test: name: Test Go ${{ matrix.go-version }} - runs-on: ubuntu-latest + runs-on: ubuntu-latest-4-cores strategy: fail-fast: false matrix: @@ -57,7 +57,7 @@ jobs: lint: name: Lint - runs-on: ubuntu-latest + runs-on: ubuntu-latest-4-cores steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/java-sdk.yml b/.github/workflows/java-sdk.yml index 447eedf..8be4a0c 100644 --- a/.github/workflows/java-sdk.yml +++ b/.github/workflows/java-sdk.yml @@ -27,13 +27,13 @@ jobs: # Test on multiple JDK versions for compatibility java-version: ['21', '25'] # Primary OS is Linux, optionally test on Windows/macOS - os: [ubuntu-latest] + os: [ubuntu-latest-4-cores] include: # Also test on Windows with baseline JDK - - os: windows-latest + - os: windows-latest-8-cores java-version: '21' # Also test on macOS with baseline JDK - - os: macos-latest + - os: macos-latest-xlarge java-version: '21' defaults: @@ -63,11 +63,11 @@ jobs: run: mvn -B package -DskipTests - name: Generate JaCoCo report - if: matrix.java-version == '21' && matrix.os == 'ubuntu-latest' + if: matrix.java-version == '21' && matrix.os == 'ubuntu-latest-4-cores' run: mvn -B jacoco:report - name: Upload coverage to Codecov - if: matrix.java-version == '21' && matrix.os == 'ubuntu-latest' + if: matrix.java-version == '21' && matrix.os == 'ubuntu-latest-4-cores' uses: codecov/codecov-action@v4 with: files: java/target/site/jacoco/jacoco.xml @@ -86,7 +86,7 @@ jobs: # Upload JAR only once (from baseline JDK build on Linux) # Java's "build once, run anywhere" means one JAR works on all JVMs - name: Upload JAR artifact - if: matrix.java-version == '21' && matrix.os == 'ubuntu-latest' + if: matrix.java-version == '21' && matrix.os == 'ubuntu-latest-4-cores' uses: actions/upload-artifact@v4 with: name: json-structure-java-sdk @@ -97,7 +97,7 @@ jobs: retention-days: 30 - name: Upload sources JAR - if: matrix.java-version == '21' && matrix.os == 'ubuntu-latest' + if: matrix.java-version == '21' && matrix.os == 'ubuntu-latest-4-cores' uses: actions/upload-artifact@v4 with: name: json-structure-java-sdk-sources @@ -106,7 +106,7 @@ jobs: if-no-files-found: ignore lint: - runs-on: ubuntu-latest + runs-on: ubuntu-latest-4-cores defaults: run: @@ -133,7 +133,7 @@ jobs: publish: name: Publish to Maven Central - runs-on: ubuntu-latest + runs-on: ubuntu-latest-4-cores needs: [build, lint] if: startsWith(github.ref, 'refs/tags/v') diff --git a/.github/workflows/jstruct-cli.yml b/.github/workflows/jstruct-cli.yml index 4b61aa2..a59e018 100644 --- a/.github/workflows/jstruct-cli.yml +++ b/.github/workflows/jstruct-cli.yml @@ -30,28 +30,28 @@ jobs: include: # Linux x86_64 - target: x86_64-unknown-linux-gnu - os: ubuntu-latest + os: ubuntu-latest-4-cores artifact: jstruct # Linux ARM64 - target: aarch64-unknown-linux-gnu - os: ubuntu-latest + os: ubuntu-latest-4-cores artifact: jstruct cross: true # Windows x86_64 - target: x86_64-pc-windows-msvc - os: windows-latest + os: windows-latest-8-cores artifact: jstruct.exe # Windows ARM64 - target: aarch64-pc-windows-msvc - os: windows-latest + os: windows-latest-8-cores artifact: jstruct.exe # macOS x86_64 (Intel) - target: x86_64-apple-darwin - os: macos-latest + os: macos-latest-xlarge artifact: jstruct # macOS ARM64 (Apple Silicon) - target: aarch64-apple-darwin - os: macos-latest + os: macos-latest-xlarge artifact: jstruct steps: @@ -106,7 +106,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-latest, windows-latest, macos-latest] + os: [ubuntu-latest-4-cores, windows-latest-8-cores, macos-latest-xlarge] steps: - uses: actions/checkout@v4 with: @@ -130,16 +130,16 @@ jobs: include: # Native tests (can run directly) - target: x86_64-unknown-linux-gnu - os: ubuntu-latest + os: ubuntu-latest-4-cores artifact: jstruct - target: x86_64-pc-windows-msvc - os: windows-latest + os: windows-latest-8-cores artifact: jstruct.exe - target: x86_64-apple-darwin os: macos-13 artifact: jstruct - target: aarch64-apple-darwin - os: macos-latest + os: macos-latest-xlarge artifact: jstruct steps: @@ -216,7 +216,7 @@ jobs: package-deb: name: Package DEB needs: build - runs-on: ubuntu-latest + runs-on: ubuntu-latest-4-cores strategy: matrix: arch: [amd64, arm64] @@ -299,7 +299,7 @@ jobs: package-rpm: name: Package RPM needs: build - runs-on: ubuntu-latest + runs-on: ubuntu-latest-4-cores strategy: matrix: arch: [x86_64, aarch64] @@ -378,7 +378,7 @@ jobs: package-msix: name: Package MSIX needs: build - runs-on: windows-latest + runs-on: windows-latest-8-cores strategy: matrix: arch: [x64, arm64] @@ -514,7 +514,7 @@ jobs: package-macos: name: Package macOS needs: build - runs-on: macos-latest + runs-on: macos-latest-xlarge strategy: matrix: arch: [x86_64, arm64] @@ -603,7 +603,7 @@ jobs: package-macos-universal: name: Package macOS Universal needs: build - runs-on: macos-latest + runs-on: macos-latest-xlarge steps: - uses: actions/checkout@v4 @@ -670,7 +670,7 @@ jobs: package-linux-tarball: name: Package Linux tarball needs: build - runs-on: ubuntu-latest + runs-on: ubuntu-latest-4-cores strategy: matrix: arch: [x86_64, aarch64] @@ -716,7 +716,7 @@ jobs: package-windows-zip: name: Package Windows ZIP needs: build - runs-on: windows-latest + runs-on: windows-latest-8-cores strategy: matrix: arch: [x64, arm64] @@ -770,7 +770,7 @@ jobs: - package-macos-universal - package-linux-tarball - package-windows-zip - runs-on: ubuntu-latest + runs-on: ubuntu-latest-4-cores if: startsWith(github.ref, 'refs/tags/jstruct-v') permissions: contents: write diff --git a/.github/workflows/perl.yml b/.github/workflows/perl.yml index 7edc4ec..9187070 100644 --- a/.github/workflows/perl.yml +++ b/.github/workflows/perl.yml @@ -25,17 +25,17 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-latest, macos-latest, windows-latest] + os: [ubuntu-latest-4-cores, macos-latest-xlarge, windows-latest-8-cores] perl-version: ['5.20', '5.26', '5.32', '5.38'] json-backend: ['JSON::PP', 'Cpanel::JSON::XS'] exclude: # Windows perl setup can be slow, test fewer versions - - os: windows-latest + - os: windows-latest-8-cores perl-version: '5.20' - - os: windows-latest + - os: windows-latest-8-cores perl-version: '5.26' # XS modules can be tricky on Windows, test only with PP - - os: windows-latest + - os: windows-latest-8-cores json-backend: 'Cpanel::JSON::XS' steps: @@ -64,7 +64,7 @@ jobs: prove -l -v t/ - name: Run tests with coverage - if: matrix.perl-version == '5.38' && matrix.os == 'ubuntu-latest' + if: matrix.perl-version == '5.38' && matrix.os == 'ubuntu-latest-4-cores' working-directory: perl run: | cpanm --notest Devel::Cover Devel::Cover::Report::Clover @@ -74,7 +74,7 @@ jobs: lint: name: Perl Critic - runs-on: ubuntu-latest + runs-on: ubuntu-latest-4-cores steps: - uses: actions/checkout@v4 @@ -97,7 +97,7 @@ jobs: build: name: Build distribution - runs-on: ubuntu-latest + runs-on: ubuntu-latest-4-cores needs: test steps: @@ -147,7 +147,7 @@ jobs: # This job prepares the distribution for upload prepare-cpan: name: Prepare for CPAN - runs-on: ubuntu-latest + runs-on: ubuntu-latest-4-cores needs: build if: startsWith(github.ref, 'refs/tags/v') diff --git a/.github/workflows/php.yml b/.github/workflows/php.yml index 9dafd06..8eb1a20 100644 --- a/.github/workflows/php.yml +++ b/.github/workflows/php.yml @@ -20,7 +20,7 @@ permissions: jobs: test: name: Test PHP ${{ matrix.php-version }} - runs-on: ubuntu-latest + runs-on: ubuntu-latest-4-cores strategy: fail-fast: false matrix: diff --git a/.github/workflows/publish-vscode.yml b/.github/workflows/publish-vscode.yml index cc5cabf..97a1fe1 100644 --- a/.github/workflows/publish-vscode.yml +++ b/.github/workflows/publish-vscode.yml @@ -30,7 +30,7 @@ permissions: jobs: # Build and test job build-and-test: - runs-on: ubuntu-latest + runs-on: ubuntu-latest-4-cores # Only run if: # - manually triggered (workflow_dispatch) # - TypeScript SDK workflow succeeded (workflow_run) @@ -135,7 +135,7 @@ jobs: # Publish job - runs after successful build for tag-triggered events or manual dispatch publish: - runs-on: ubuntu-latest + runs-on: ubuntu-latest-4-cores needs: [build-and-test] # Publish on workflow_run (TypeScript SDK completed), direct tag push, or manual dispatch (unless dry-run) if: | diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index e5ea935..c07fc31 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -19,7 +19,7 @@ on: jobs: test: name: Test Python ${{ matrix.python-version }} - runs-on: ubuntu-latest + runs-on: ubuntu-latest-4-cores strategy: fail-fast: false matrix: @@ -56,7 +56,7 @@ jobs: build: name: Build package - runs-on: ubuntu-latest + runs-on: ubuntu-latest-4-cores needs: test steps: @@ -86,7 +86,7 @@ jobs: publish: name: Publish to PyPI - runs-on: ubuntu-latest + runs-on: ubuntu-latest-4-cores needs: build if: startsWith(github.ref, 'refs/tags/v') diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index a218bf5..9bb0199 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -28,10 +28,10 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-latest, windows-latest, macos-latest] + os: [ubuntu-latest-4-cores, windows-latest-8-cores, macos-latest-xlarge] rust: [stable, beta] include: - - os: ubuntu-latest + - os: ubuntu-latest-4-cores rust: nightly steps: @@ -77,7 +77,7 @@ jobs: build: name: Build package - runs-on: ubuntu-latest + runs-on: ubuntu-latest-4-cores needs: test steps: @@ -104,7 +104,7 @@ jobs: publish: name: Publish to crates.io - runs-on: ubuntu-latest + runs-on: ubuntu-latest-4-cores needs: build if: startsWith(github.ref, 'refs/tags/v') diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml index 8158cbc..0c4971a 100644 --- a/.github/workflows/swift.yml +++ b/.github/workflows/swift.yml @@ -26,7 +26,7 @@ permissions: jobs: test-macos: name: Test Swift on macOS - runs-on: macos-14 + runs-on: macos-latest-xlarge steps: - uses: actions/checkout@v4 @@ -46,7 +46,7 @@ jobs: test-linux: name: Test Swift on Linux - runs-on: ubuntu-latest + runs-on: ubuntu-latest-4-cores container: image: swift:5.10 @@ -69,7 +69,7 @@ jobs: lint: name: Lint - runs-on: macos-14 + runs-on: macos-latest-xlarge steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/typescript.yml b/.github/workflows/typescript.yml index b964514..895e9ed 100644 --- a/.github/workflows/typescript.yml +++ b/.github/workflows/typescript.yml @@ -18,7 +18,7 @@ on: jobs: build: - runs-on: ubuntu-latest + runs-on: ubuntu-latest-4-cores strategy: matrix: @@ -64,7 +64,7 @@ jobs: publish: name: Publish to npm - runs-on: ubuntu-latest + runs-on: ubuntu-latest-4-cores needs: build if: startsWith(github.ref, 'refs/tags/v') permissions: From c6b404f092fa73dc146d082d29e4d0b438a4ba2e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 8 Dec 2025 11:13:20 +0000 Subject: [PATCH 3/3] Fix conditional checks to reference updated runner names Co-authored-by: clemensv <542030+clemensv@users.noreply.github.com> --- .github/workflows/perl.yml | 2 +- .github/workflows/rust.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/perl.yml b/.github/workflows/perl.yml index 9187070..8b933ff 100644 --- a/.github/workflows/perl.yml +++ b/.github/workflows/perl.yml @@ -218,7 +218,7 @@ jobs: # Requires PAUSE_USERNAME and PAUSE_PASSWORD secrets to be set publish-cpan: name: Publish to CPAN - runs-on: ubuntu-latest + runs-on: ubuntu-latest-4-cores needs: prepare-cpan if: startsWith(github.ref, 'refs/tags/v') environment: cpan # Use a protected environment for secrets diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 9bb0199..8771206 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -65,12 +65,12 @@ jobs: run: cargo test --verbose - name: Run clippy - if: matrix.rust == 'stable' && matrix.os == 'ubuntu-latest' + if: matrix.rust == 'stable' && matrix.os == 'ubuntu-latest-4-cores' working-directory: rust run: cargo clippy -- -D warnings - name: Check formatting - if: matrix.rust == 'stable' && matrix.os == 'ubuntu-latest' + if: matrix.rust == 'stable' && matrix.os == 'ubuntu-latest-4-cores' working-directory: rust continue-on-error: true run: cargo fmt -- --check