name: Build on: push: branches: [main] pull_request: branches: [main] merge_group: workflow_dispatch: # Cancel superseded PR runs; let push/merge_group runs complete. concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: ${{ github.event_name == 'pull_request' }} # Default to no permissions; grant minimally at the job level. permissions: actions: none attestations: none checks: none contents: none deployments: none discussions: none id-token: none issues: none models: none packages: none pages: none pull-requests: none repository-projects: none security-events: none statuses: none jobs: build: runs-on: ubuntu-latest timeout-minutes: 10 permissions: contents: read steps: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - uses: jdx/mise-action@e6a8b3978addb5a52f2b4cd9d91eafa7f0ab959d # v4.2.0 - name: Lint markdown run: mise run lint:md - name: Validate manifests and skills run: mise run lint:manifests - name: Security scan (gitleaks) run: mise run security