I'm working with a Turborepo monorepo in GitHub Actions, and I've set up a full CI pipeline that includes various steps like secret scanning, installing dependencies, linting, running unit and E2E tests, building images, vulnerability scanning, and generating SBOMs. However, I'm wondering which steps are essential to run on every push to a feature branch. I want to maintain a clean master branch, but I'm concerned about the efficiency of running the entire test suite on each feature branch push. Also, should I include build validation for feature branches, or is that too time-consuming?
2 Answers
Honestly, I don't run anything on feature branch pushes. I prefer to do linting and build checks locally before I push, using a pre-push hook. We handle all the builds, validations, and tests once a PR is opened to develop, and merges are blocked until those pass. Saves a lot of hassle!
I think it's important to get as much information as possible from your feature branches. Running checks before you push can really help, but it can also become a hassle if there are a lot of artifacts piling up from frequent pushes, especially in larger teams. You need to stay organized to handle all the builds you're pushing.
But what if someone forgets something? If the tests only run when the PR opens, there could be issues if they push again without catching the previous mistakes.