name: opencode-plugin CI on: push: branches: [main, release/v3.8.2] paths: - "@omniroute/opencode-plugin/**" pull_request: branches: [main, release/v3.8.2] paths: - "@omniroute/opencode-plugin/**" types: [opened, synchronize, reopened, ready_for_review] workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true permissions: contents: read defaults: run: working-directory: "@omniroute/opencode-plugin" jobs: test: name: Test (Node ${{ matrix.node }}) runs-on: ubuntu-latest strategy: fail-fast: false matrix: node: ["22", "24"] steps: - uses: actions/checkout@v7 with: persist-credentials: false - uses: actions/setup-node@v6 with: node-version: ${{ matrix.node }} cache: npm cache-dependency-path: "@omniroute/opencode-plugin/package-lock.json" - run: npm install --no-audit --no-fund - run: npm run build - run: npm test build: name: Build runs-on: ubuntu-latest needs: test steps: - uses: actions/checkout@v7 with: persist-credentials: false - uses: actions/setup-node@v6 with: node-version: "22" cache: npm cache-dependency-path: "@omniroute/opencode-plugin/package-lock.json" - run: npm install --no-audit --no-fund - run: npm run build - uses: actions/upload-artifact@v7 with: name: opencode-plugin-dist path: "@omniroute/opencode-plugin/dist" retention-days: 7