Template repository for bootstrapping new Angular-based dnd-mapp repositories, with shared tooling, CI, and browser-based testing pre-configured.
- Node.js and pnpm: versions are pinned in
package.json'sdevEnginesfield. - mise (recommended): manages the Node.js and pnpm versions above automatically. Run
mise installafter installing it to pick up matching versions. - mkcert: generates the locally trusted HTTPS certificate the dev server uses (see Installation).
Click Use this template on GitHub to create a new repository from this one. In the new repository, generate the dev server's certificate, then install dependencies (this also sets up the Husky git hooks) and the Chromium browser used for tests:
mkcert -install
mkcert -cert-file .ssl/cert.pem -key-file .ssl/key.pem localhost.www.dndmapp.dev
pnpm install
pnpm playwright-install-browsersThen update package.json's name and description, and this README, to match the new repository. Also reset CHANGELOG.md: remove this template's entries and leave just the header and an empty ## [Unreleased] section, so the new repository starts its own history from scratch.
The release workflow (release-prepare.yml, release-publish.yml, release-retry-tag.yml) is scaffolded into every repository created from this template. Two grants don't carry over automatically, though, and must be set up once by an org owner before the first release:
- Grant the new repository access to the
DMA_BOT_SSH_SIGNING_KEYorganization secret (organization Settings → Secrets and variables → Actions →DMA_BOT_SSH_SIGNING_KEY→ add the repository to its access list). It's scoped to an explicit repository allowlist, currently justtemplate-app-angular. - Add the
dnd-mappGitHub App as a bypass actor on the new repository'smainbranch ruleset (repository Settings → Rules → Rulesets →main→ bypass list). Configure it the same way it's configured ontemplate-app-angular.
Everything else the workflow depends on is already organization-wide and needs no per-repository setup: the App's contents:write/packages:write/discussions:write permissions, and the Docker Hub credentials.
See Release Process for how the workflow itself works once these are in place.
- Editor setup: configuring Prettier, ESLint, and Stylelint to run in VS Code or WebStorm.
- Usage: available
pnpmscripts, the dev server's HTTPS/hosts-file setup, and what runs in CI. - Docker: building and running the app's image,
docker buildx bake, and the image lifecycle in CI.
See Creating a Pull Request for how to open a pull request in any dnd-mapp repository, and Angular & TypeScript Conventions for this repo's coding conventions.