Questions related to Tagging

Have some questions on Tagging. Can anyone please help?

  1. Tagging is done on builds or only on source code? Please confirm.
  2. When to create tag - before, during or after build?
  3. Will tagging trigger another build, since it involves push? If so, how to prevent tagging from triggering a build (say, GitHub action / workflow)
  4. Can tagging be done in a GitHub Action? If so, how?
  5. What are the tagging best practices in GitHub?

I either create tags locally and then push it to the remote repo or I use releases (either manually created releases or with an Action, e.g. GitHub - semantic-release/semantic-release: Fully automated version management and package publishing)