A couple friends and I made something similar for GitHub Pages using Travis CI as our static deployment build-and-deploy host. For example, here's what our .travis.yml looks like: https://github.com/L33T-KR3W/soundcasts-web/blob/master/.tra... and here is the actual deploy command that is being run to `git push` to GitHub Pages: https://github.com/L33T-KR3W/soundcasts-web/blob/master/pack...
The GitLab approach is cleaner and requires less tooling. Nice work!