Best practice is to run all of your tests for the Nightly scheduled runs and before you signoff/ship to customers.
You will be running your own manual tests, or automation tests for a specific feature/code change when it is delivered to QA. Ideally, you have some kind of test plan, formal or in your head, that you can follow for testing changes related to a feature/bug fix. Running a full test pass with every build will just take too much time. You have the nightly run that will catch anything else.
If your automation is being kicked off with every build by a CI/CD system, then you want to run a kind of bare minimum of tests to ensure viability. I would say these are BVT tests, but different people have different gauges of what a BVT test is. You really just want enough to be able to tell that the software under test is minimally functional. For a website, a minimum test would be something like making sure you can deploy the site and load the homepage. A web service would be deploying it and making sure you can perform the most basic query. Optionally, if you have a robust branching system then you could have feature branches run the "BVT" test and trunk runs the full gamut. It's all really up to you, your team, and what you agree to tolerate.