3 ms·
[We're running a Gitlab instance and one CI instance with multiple CI runners in the Google Cloud.] Gitlab CI is great if you don't need dynamically provisione
by xrstf 11y ago
[We're running a Gitlab instance and one CI instance with multiple CI runners in the Google Cloud.]
Gitlab CI is great if you don't need dynamically provisioned build slaves, for which I found no integrated support. In general, Gitlab CI is much more straightforward and easy to use than Jenkins.
Jenkins wins when it comes to stuff like build artifacts (getting these out of Jenkins is easy peasy (just wget them and provide basic HTTP auth if needed), but with GitLab I have not yet found a way to automatically download say the latest build results), credentials management and other "more enterprisey" features.
Jenkins is easy to install on Debian-based systems; I have no real experience in setting up Gitlab other than via the official Docker images, which is nearly as easy as typing `apt-get install jenkins`. Setting up CI runners/instances is easy as well (apt-get install + one or two calls to gitlab-multi-runner).
Overall I'm pretty happy with Gitlab CI. Especially the fact that every developer in our company can take advantage of automated builds by just enabling CI support and putting a .gitlab-ci.yml in the repository is great. Over are the days were admins had to manage Jenkins jobs.
- halfdan 11y agoArtifacts: http://doc.gitlab.com/ce/ci/yaml/README.html#artifacts http://doc.gitlab.com/ce/ci/yaml/README.html#artifacts
- DanielDent 11y agoGetting artifacts into gitlab CI is pretty straightforward. But programatically pulling artifacts from gitlab CI does not seem to have a well-documented approach.
- stuff4ben 11y agoshouldn't your build tool do that? If your build creates artifacts, I'd imagine you'd want to store them in an artifact manager (Nexus, Artifactory, etc) or deploy them.
- sytse 11y agoWe're working on an artifact browser for 8.4. I assume an API for that will be trivial after that has landed.
- sytse 11y agoYou can follow the work in this in https://gitlab.com/gitlab-org/gitlab-ce/issues/3426 https://gitlab.com/gitlab-org/gitlab-ce/issues/3426
- mijoharas 11y agoI gotta say, this is one of the killer features (for me) of gitlab. It's very actively maintained and constantly improving. (Nice to see that Mattermost is included automatically too, gonna have to enable that later and mess about with it!)
- pliu 11y agoI sometimes have a similar issue with Travis CI, if I can't use one of their built in integrations or something. A simple workaround is to just upload an artifact to S3 after a successful build. Then on another system scan the bucket with a cron or listen for an S3 event notification for further processing. You can put a lifecycle policy on the bucket so it cleans up after a while too. It's sort of annoying to have to add on another system to the pipeline, but I think it's generally reasonable. Managing artifacts shouldn't really be part of the CI system anyway, I feel it's better to handle that stuff separately.
- hobarrera 11y agoI'm still using the old approach, which is adding a local directory as a docker volume, where all my artefacts are stored. nginx then serves them under a unique path. I would very much like to see gitlab offer the ability to get artifacts via some API so I can remove all that hackery.
- sytse 11y agoWe working on an auto scaling Runner for dynamically provisioned build secondaries. This uses docker machine so it works with most clouds. It will most likely land in 8.4 but we're not sure yet.