We use GitLab CI to build our containers, test it, and store them in the internal registry.
These images are then pulled into the production servers.
Usage with GitHub
You can store your code inside GitHub with no problems. Just learn how to configure GitLab CIto be used with GitHub.
All configuration is done inside .gitlab-ci.yml.
We have two pipelines configured: for master and other branches. That's how it works: we only run testing for feature branches and do the whole building/testing/deploying process for the master branch.
This allows us to speed up the development process.
If some real secret variables are required, then you can use GitLab secrets. And these kinds of variables are required most of the time.
See configuration.md on how to use dump-env and gitlab-ci together.