name: CI / OpenClaw plugin on: push: branches: [main] paths: - ".github/workflows/ci-openclaw-plugin.yml" - ".github/workflows/_release-npm-plugin.yml" - ".github/workflows/release-openclaw-plugin.yml" - "integrations/openclaw/**" pull_request: branches: [main] paths: - ".github/workflows/ci-openclaw-plugin.yml" - ".github/workflows/_release-npm-plugin.yml" - ".github/workflows/release-openclaw-plugin.yml" - "integrations/openclaw/**" workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true permissions: contents: read jobs: package: name: Validate OpenClaw plugin runs-on: ubuntu-latest timeout-minutes: 20 defaults: run: working-directory: integrations/openclaw steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: node-version: "24.16.0" cache: npm cache-dependency-path: integrations/openclaw/package-lock.json - run: npm ci - run: npm run format:check - run: npm run lint - run: npm run typecheck - run: npm test - run: npm run test:package - name: Validate ClawHub contract run: npx --yes clawhub@0.23.3 package validate . --json