This gist allows you synchronize your saltstack masters at each push (or conditionnaly based on gitlab-runners tags and commit messages), and test your salt (.sls files) and yaml (.yml files) code.
gitlab-runner needs to be installed on each master and configure to the right gitfs saltstack repository.
yamllint and salt-lint are needed on the master, but are installed in the requirements stage. It can failed in the firsts jobs/pipelines if it runs on a master where it is not installed yet (on the sync extension stage (look at .gitlab-ci-servers.yml)).
I am using it in a closed environment. Use it at your own risks.