name: CI # Security note for public repositories: # If this repository becomes public, configure the following in # Settings > Actions > General > "Fork pull request workflows from outside collaborators": # Set to "Require approval for all outside collaborators" on: pull_request: branches: [main] concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: astral-sh/setup-uv@v7 with: enable-cache: true - run: uv sync --dev --locked - run: uv run ruff check . - run: uv run ruff format --check . - uses: pnpm/action-setup@v4 with: version: 10.6.3 - uses: actions/setup-node@v4 with: node-version: '22' cache: 'pnpm' - run: pnpm install --frozen-lockfile - run: pnpm lint python-test: runs-on: ubuntu-latest strategy: matrix: python-version: ['3.10', '3.14'] steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 with: version: 10.6.3 - uses: actions/setup-node@v4 with: node-version: '22' cache: 'pnpm' - run: pnpm install --frozen-lockfile - run: pnpm build - uses: astral-sh/setup-uv@v7 with: enable-cache: true python-version: ${{ matrix.python-version }} - run: uv sync --dev --locked - run: uv run pytest js-test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 with: version: 10.6.3 - uses: actions/setup-node@v4 with: node-version: '22' cache: 'pnpm' - run: pnpm install --frozen-lockfile - run: pnpm test:ci build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 with: version: 10.6.3 - uses: actions/setup-node@v4 with: node-version: '22' cache: 'pnpm' - run: pnpm install --frozen-lockfile - run: pnpm build