diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..5f55e8e --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,48 @@ +name: CI + +on: + push: + branches: [main] + pull_request: + branches: [main] + +# Cancel superseded runs on the same ref. +concurrency: + group: ci-${{ github.ref }} + cancel-in-progress: true + +jobs: + build-test: + name: build · typecheck · test + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + node-version: [20, 22] + steps: + - uses: actions/checkout@v4 + + # Version comes from package.json "packageManager" — do NOT also + # set `version:` here, or action-setup errors on the conflict. + - name: Install pnpm + uses: pnpm/action-setup@v4 + + - name: Set up Node ${{ matrix.node-version }} + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node-version }} + cache: pnpm + + - name: Install dependencies + run: pnpm install --frozen-lockfile + + # build before typecheck/test: cross-package imports resolve from + # each package's built dist/ (tsup output). + - name: Build + run: pnpm -r build + + - name: Typecheck + run: pnpm -r typecheck + + - name: Test + run: pnpm -r test diff --git a/README.md b/README.md index 77159d1..b41be8f 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # ASIL — Autonomous Software Improvement Loop +[![CI](https://github.com/telivity-otaip/asil/actions/workflows/ci.yml/badge.svg)](https://github.com/telivity-otaip/asil/actions/workflows/ci.yml) + > Scan a codebase. Find issues. Generate fixes. Review them three times. Stop when domain expertise is required. Open a PR only when every gate passes. ASIL is the open-source extract of a production autonomous coding pipeline. It is the first publicly-available system that pairs autonomous code generation with **multi-gate review, cost control, and a domain-expertise boundary** — so the loop knows when to keep working and when to stop and ask a human.