Drone executes a pipeline for each webhook it receives from Gitea. If Drone executes multiple builds it means Gitea sent multiple webhooks. Make sure only a single webhook is registered for your repository int he Gitea settings. If you continue to receive multiple webhooks from Gitea, please raise this issue with the Gitea community.
This is not a bug, your yaml is malformed and has the steps block defined multiple times. Please correct your yaml as demonstrated in the below diff: