Create a separate trigger for publishing

no, deploy-succeeded (assuming here that we are talking about the event-triggered function) should fire after the deploy succeeds, and only then. A git commit is not a successful deploy (and won’t even trigger one if you have for instance:

Put another way, only completing a deploy (one that shows success in our logs) would be expected to trigger that event-triggered function.

If you want to do something only on publish, you will indeed have to build it in the way I described - likely, run some API calls after each deploy, to determine which one is published. But, I could also imagine a workflow that caused a date-published.txt file to be included with the prod deploy, and you polling it to see when things changed if you wanted to back into it a bit rather than stitching together a system to process the notification (I’d use zapier.com myself).

If you have auto-publishing disabled, and change what is published (which you’d have to do manually), note that disabling and re-enabling publishing does send additional alerts. So perhaps if you are looking for the easiest way to build a workflow that is only triggered for published, locked deploys - you might be able to work from that specific notification, as a signal that will take less processing to be sure it is a “relevant, published” deploy: Deploy notifications | Netlify Docs