Skip to content

fix(cli): Fix composite JSON #1894

fix(cli): Fix composite JSON

fix(cli): Fix composite JSON #1894

Workflow file for this run

name: CI - Run Tests
on:
pull_request:
types: [opened, synchronize, reopened]
paths-ignore:
- 'packages/*/CHANGELOG.md'
- 'packages/*/package.json'
- '.changeset/**'
env:
CI: true
permissions:
contents: read
jobs:
tests:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: pnpm/action-setup@v4
name: Install pnpm
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 24
cache: 'pnpm'
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: wasm32-wasip1
- name: Install dependencies
run: pnpm install
- name: Rebuild packages
run: pnpm rebuild --filter='...[origin/${{ github.base_ref }}]'
- name: Run lint
run: pnpm exec turbo lint --filter='...[origin/${{ github.base_ref }}]'
- name: Build packages
run: pnpm exec turbo build --filter='...[origin/${{ github.base_ref }}]' --filter='!gt-next-middleware-e2e'
- name: Run tests
run: pnpm exec turbo test --filter='...[origin/${{ github.base_ref }}]' --filter='!gt-next-middleware-e2e'
test-builds:
strategy:
matrix:
os: [windows-latest, ubuntu-latest, macos-latest]
node: [20, 24]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: pnpm/action-setup@v4
name: Install pnpm
- name: Check if gt-next changed
id: gt_next_changed
shell: bash
run: |
if git diff --name-only origin/${{ github.base_ref }}...HEAD | grep -q "^packages/next/"; then
echo "changed=true" >> $GITHUB_OUTPUT
else
echo "changed=false" >> $GITHUB_OUTPUT
fi
- name: Setup Node.js
if: steps.gt_next_changed.outputs.changed == 'true'
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
cache: 'pnpm'
- name: Setup Rust
if: steps.gt_next_changed.outputs.changed == 'true'
uses: dtolnay/rust-toolchain@stable
with:
targets: wasm32-wasip1
- name: Install dependencies
if: steps.gt_next_changed.outputs.changed == 'true'
run: pnpm install
- name: Test Builds
if: steps.gt_next_changed.outputs.changed == 'true'
run: |
pnpm exec turbo build --filter=base...
pnpm exec turbo build:turbopack --filter=base...
pnpm exec turbo build --filter=general-cases...
pnpm exec turbo build:turbopack --filter=general-cases...
test-cli-binaries:
strategy:
matrix:
include:
- os: ubuntu-latest
arch: x64
binary: gt-linux-x64
- os: ubuntu-latest
arch: arm64
binary: gt-linux-arm64
- os: macos-latest
arch: x64
binary: gt-darwin-x64
- os: macos-latest
arch: arm64
binary: gt-darwin-arm64
- os: windows-latest
arch: x64
binary: gt-win32-x64.exe
runs-on: ${{ matrix.os }}
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Check if CLI changed
id: gt_cli_changed
shell: bash
run: |
if git diff --name-only origin/${{ github.base_ref }}...HEAD | grep -q "^packages/cli/"; then
echo "changed=true" >> $GITHUB_OUTPUT
else
echo "changed=false" >> $GITHUB_OUTPUT
fi
- uses: pnpm/action-setup@v4
if: steps.gt_cli_changed.outputs.changed == 'true'
name: Install pnpm
- name: Setup Node.js
if: steps.gt_cli_changed.outputs.changed == 'true'
uses: actions/setup-node@v4
with:
node-version: 24
cache: 'pnpm'
- name: Setup Bun
if: steps.gt_cli_changed.outputs.changed == 'true'
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Setup Rust
if: steps.gt_cli_changed.outputs.changed == 'true'
uses: dtolnay/rust-toolchain@stable
with:
targets: wasm32-wasip1
- name: Install dependencies
if: steps.gt_cli_changed.outputs.changed == 'true'
run: pnpm install
- name: Build packages
if: steps.gt_cli_changed.outputs.changed == 'true'
run: pnpm exec turbo build --filter='gt...'
- name: Build CLI binaries
if: steps.gt_cli_changed.outputs.changed == 'true'
run: cd packages/cli && pnpm run build:bin:clean
- name: Test CLI in test environment
if: steps.gt_cli_changed.outputs.changed == 'true'
shell: bash
run: cd tests/apps/cli-test-app && pnpm install && pnpm gt --help
test-gtx-cli-binaries:
strategy:
matrix:
include:
- os: ubuntu-latest
arch: x64
binary: gtx-cli-linux-x64
- os: ubuntu-latest
arch: arm64
binary: gtx-cli-linux-arm64
- os: macos-latest
arch: x64
binary: gtx-cli-darwin-x64
- os: macos-latest
arch: arm64
binary: gtx-cli-darwin-arm64
- os: windows-latest
arch: x64
binary: gtx-cli-win32-x64.exe
runs-on: ${{ matrix.os }}
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Check if gtx-cli wrapper changed
id: gtx_cli_changed
shell: bash
run: |
if git diff --name-only origin/${{ github.base_ref }}...HEAD | grep -qE "^packages/(cli|gtx-cli)/"; then
echo "changed=true" >> $GITHUB_OUTPUT
else
echo "changed=false" >> $GITHUB_OUTPUT
fi
- uses: pnpm/action-setup@v4
if: steps.gtx_cli_changed.outputs.changed == 'true'
name: Install pnpm
- name: Setup Node.js
if: steps.gtx_cli_changed.outputs.changed == 'true'
uses: actions/setup-node@v4
with:
node-version: 24
cache: 'pnpm'
- name: Setup Bun
if: steps.gtx_cli_changed.outputs.changed == 'true'
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Setup Rust
if: steps.gtx_cli_changed.outputs.changed == 'true'
uses: dtolnay/rust-toolchain@stable
with:
targets: wasm32-wasip1
- name: Install dependencies
if: steps.gtx_cli_changed.outputs.changed == 'true'
run: pnpm install
- name: Build packages
if: steps.gtx_cli_changed.outputs.changed == 'true'
run: pnpm exec turbo build --filter='gtx-cli...'
- name: Build gtx-cli binaries
if: steps.gtx_cli_changed.outputs.changed == 'true'
run: cd packages/gtx-cli && pnpm run build:bin:clean
- name: Test gtx-cli in test environment
if: steps.gtx_cli_changed.outputs.changed == 'true'
shell: bash
run: cd tests/apps/cli-test-app && pnpm install && pnpm gtx-cli --help
run-tests:
needs: [tests, test-builds, test-cli-binaries, test-gtx-cli-binaries]
runs-on: ubuntu-latest
steps:
- run: echo "All tests passed"