latest is only a name
A tag is a label on an image, nothing more. latest does not mean "the newest"; it means "the image someone last pushed under the name latest". If anything other than main ever pushed latest, the server would pull that, which is why dockerize runs only for main.
That is why every build is pushed twice. The commit tag is the honest one: supax/iti0302-ci-test:93c82ab8 is the build of commit 93c82ab8, today and in a year. latest is the convenience the server pulls by default.
The commit tag gives you a way back. If the deploy of 11d55df0 turns out to be broken, on the server:
cd /opt/app
sed -i 's/:latest/:93c82ab8/' compose.yaml # or edit the tag with nano
docker compose up -d
The previous build runs again within seconds, from Docker Hub, with no rebuild. Fix the code, push, and the next deploy replaces it with a new latest. Change the tag back afterwards, or the deploy job will keep replacing your compose.yaml with the one from git, which says latest.