Currently, cmucl-site generates the site on any branch.
Yes. And it deploys it on each branch.
This also means that any in-progress branch modifies the official site. I think this should only happen for the main branch (or some other official branch).
I think you want to build on every branch, but only deploy on some official site branch.
For other branches, I want it uploaded so I can see the results, but doesn't update the official site.
Any ideas on this? Will staging areas work? What about gitlab environments?
Actually, your results are already being uploaded to the GitLab server (available for browsing or download) on every job that has "artifacts" set. E.g. see
https://gitlab.common-lisp.net/cmucl/cmucl-site/-/jobs/2264 where on the right column, there's the option to "download" or "browse" the artifacts from that job.