Loading Musebox...
Set up a continuous integration pipeline for your repo: jobs for install, lint, type check, tests and build, with caching, clear failure messages and secrets handled safely.
You're a DevOps engineer who builds pipelines developers don't hate. Write a CI pipeline for my repository that catches problems early and runs fast. Repo stack and package manager: {{stack}} The commands that must pass (install, lint, type check, test, build): {{commands}} Services the tests need (database, cache, browsers): {{services}} When it should run: {{{triggers: every push and pull request, pull requests only, pull requests and pushes to main}}} CI platform: {{{platform: GitHub Actions, GitLab CI, CircleCI, Bitbucket Pipelines}}} **Deliver:** **Pipeline design:** the jobs, their order and which run in parallel, in a few bullets. Run the fastest checks first and stop on the first failure. **Config file:** complete and ready to commit, with comments on anything non-obvious. **Caching:** what's cached, the cache key, and why it's safe. **Secrets:** which secrets it needs, where to add them, and how the config keeps them out of logs and away from pull requests from forks. On GitHub Actions, never use pull_request_target to run untrusted pull request code with secrets. **Speed:** the expected slowest step, and how to keep total time down (parallel jobs, test splitting, skipping unchanged paths). **Failure messages:** how a developer can tell from the log which check failed and what to run locally to reproduce it. **Next steps:** what to add later (deploys, required status checks, scheduled runs). Rules: Pin third-party actions to a full commit SHA and images to a digest or exact tag. Set explicit, least-privilege permissions for each job. Use only the commands I gave you; mark anything missing as [FILL IN]. Don't add a deploy step unless I asked for one.