name: Test CLI on: workflow_call: inputs: E2B_DOMAIN: required: false type: string default: '' secrets: E2B_API_KEY: required: true permissions: contents: read jobs: test: defaults: run: working-directory: ./packages/cli shell: bash name: CLI - Build (${{ matrix.os }}) strategy: matrix: os: [ubuntu-22.04, windows-latest] runs-on: ${{ matrix.os }} steps: - name: Checkout repository uses: actions/checkout@v4 - name: Parse .tool-versions uses: wistia/parse-tool-versions@v2.1.1 with: filename: '.tool-versions' uppercase: 'true' prefix: 'tool_version_' - name: Install pnpm uses: pnpm/action-setup@v4 with: version: '${{ env.TOOL_VERSION_PNPM }}' - name: Setup Node uses: actions/setup-node@v6 with: node-version: '${{ env.TOOL_VERSION_NODEJS }}' registry-url: 'https://registry.npmjs.org' cache: pnpm cache-dependency-path: pnpm-lock.yaml - name: Configure pnpm run: | pnpm config set auto-install-peers true - name: Install dependencies run: pnpm install --frozen-lockfile - name: Build the SDK (pre-requisite for the tests) run: pnpm build working-directory: ./packages/js-sdk - name: Build the CLI run: pnpm build working-directory: ./packages/cli - name: Run tests run: pnpm test working-directory: ./packages/cli env: E2B_API_KEY: ${{ secrets.E2B_API_KEY }} E2B_DOMAIN: ${{ inputs.E2B_DOMAIN }}