diff --git a/.github/workflows/copilot-setup-steps.yml b/.github/workflows/copilot-setup-steps.yml new file mode 100644 index 0000000..24c7401 --- /dev/null +++ b/.github/workflows/copilot-setup-steps.yml @@ -0,0 +1,48 @@ +name: "Copilot Setup Steps" + +# Automatically run the setup steps when they are changed to allow for easy validation, and +# allow manual testing through the repository's "Actions" tab +on: + workflow_dispatch: + push: + paths: + - .github/workflows/copilot-setup-steps.yml + pull_request: + paths: + - .github/workflows/copilot-setup-steps.yml + +jobs: + # The job MUST be called `copilot-setup-steps` or it will not be picked up by Copilot. + copilot-setup-steps: + runs-on: ubuntu-latest + + # Set the permissions to the lowest permissions possible needed for your steps. + # Copilot will be given its own token for its operations. + permissions: + # If you want to clone the repository as part of your setup steps, for example to install dependencies, you'll need the `contents: read` permission. If you don't clone the repository in your setup steps, Copilot will do this for you automatically after the steps complete. + contents: read + + # You can define any steps you want, and they will run before the agent starts. + # If you do not check out your code, Copilot will do this for you. + steps: + - name: Checkout code + uses: actions/checkout@v5 + + - name: Setup Deno + uses: denoland/setup-deno@v2 + with: + deno-version: v2.x + cache: true + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: "lts/*" + + - name: Setup Bun + uses: oven-sh/setup-bun@v2 + with: + bun-version: latest + + - name: Install dependencies + run: deno install diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..06d0c3c --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,39 @@ +# Agents quick checklist + +This repo uses cross-org reusable CI for Deno, Bun, and Node. Make your changes pass the same checks locally. + +Source of truth: + +- Deno CI: https://github.com/cross-org/workflows/blob/main/.github/workflows/deno-ci.yml +- Bun CI: https://github.com/cross-org/workflows/blob/main/.github/workflows/bun-ci.yml +- Node CI: https://github.com/cross-org/workflows/blob/main/.github/workflows/node-ci.yml + +Repo CI inputs (`.github/workflows/test.yml`): + +- Deno: entrypoint=mod.ts, lint_docs=false +- Bun: jsr deps: @std/assert @std/async @cross/runtime; npm deps: sinon +- Node: test_target=*.test.ts; jsr deps: @std/assert @std/async @cross/runtime; npm deps: sinon + +Do before you commit: + +- Deno: deno fmt --check; deno lint; deno check mod.ts; deno test -A +- Bun: tests run with bun test after jsr/npm deps install +- Node (18/20/22): tests run with tsx; ESM required + +Keep in mind: + +- Don't break the public entrypoint (mod.ts). If you change it, update test.yml. +- Prefer minimal diffs and stable public APIs. +- New deps must resolve via JSR/NPM across Deno/Bun/Node. +- Keep this file (AGENTS.md) lean if requested to add stuff. +- This is a cross-runtime testing framework - changes must work identically across all three runtimes. + +Docs: + +- Keep README concise and focused on usage examples. +- Inline documentation in mod.ts should be comprehensive for JSR docs. + +Network access (Copilot workspace): + +- npmjs.org, registry.npmjs.org, deno.land, jsr.io +- github.com, raw.githubusercontent.com, bun.sh