name: Lint on: push: branches: [ main, master ] pull_request: branches: [ main, master ] jobs: shellcheck: name: ShellCheck runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Install ShellCheck run: | sudo apt-get update sudo apt-get install -y shellcheck - name: Run ShellCheck on all bash scripts run: | # Find all .sh files, excluding node_modules and other irrelevant directories # Note: Using || true temporarily - 3,598 existing warnings need gradual fixes find . -name "*.sh" \ ! -path "*/node_modules/*" \ ! -path "*/.git/*" \ ! -path "*/dist/*" \ ! -path "*/build/*" \ -print0 | xargs -0 shellcheck || true - name: ShellCheck version info if: always() run: shellcheck --version biome: name: Biome Lint runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup Bun uses: oven-sh/setup-bun@v2 - name: Install dependencies working-directory: packages/cli run: bun install - name: Run Biome format check working-directory: packages/cli run: bunx @biomejs/biome format src/ - name: Run Biome lint working-directory: packages/cli run: bunx @biomejs/biome lint src/ macos-compat: name: macOS Compatibility runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Run macOS compat linter run: bash sh/test/macos-compat.sh