Skip to content

ci: cut Actions burn — scope push triggers + concurrency-cancel #448

ci: cut Actions burn — scope push triggers + concurrency-cancel

ci: cut Actions burn — scope push triggers + concurrency-cancel #448

# SPDX-License-Identifier: MPL-2.0
permissions:
contents: read
name: Deno CI
on:
push:
branches: [main, master]
pull_request:
# Estate guardrail: scope push to default branches so a PR fires once (not
# push+PR), and cancel superseded runs. Safe — read-only PR-triggered check.
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
- uses: denoland/setup-deno@667a34cdef165d8d2b2e98dde39547c9daac7282 # v2
with:
deno-version: v2.x
- name: Deno lint
run: deno task lint
- name: Deno fmt check
run: deno fmt --check tests/
- name: Deno test
run: deno test --allow-all --coverage=coverage
- name: Type check
run: deno check tests/**/*.js
security:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
- uses: denoland/setup-deno@667a34cdef165d8d2b2e98dde39547c9daac7282 # v2
- name: Check permissions
run: |
# Audit for dangerous permissions
grep -rE "allow-run|allow-write|allow-env" . || echo "No dangerous permissions"