November 25, 2018

Debian repository hosting using Gitlab Pages

If you’re eagerly building your own software and packages (or like me, do some packaging for others), you’ll need somw sort of webspace to make them available to the public. And if you’re using Gitlab CI (and you should) to build you packages, you can easily add some steps to let Gitlab Pages take care of the repo hosting. Here’s an example project which just downloads some random packages and then create the repo. Read more

November 19, 2017

Cross linked services for Gitlab CI

Gitlab CI does a great job when used with Docker and dependencies, e.g. your app tests need a database or a webserver or whatsoever. Unfortunateley, this does not involve complex setups where you need multiple services connected to each other like Selenium Grid and it’s nodes or probably an API and it’s database. Let’s asssume you have your fancy app, which talks to an API, which itselfs needs a database to run (and you probably want to test against the same database like in production and not sqlite). Read more

March 17, 2017

Deploy to Docker Swarm using Gitlab CI

UPDATE 2017-06-07: Added info about secure connections You might have heard of awesome Gitlab and it’s builtin CI. Also, Docker might ring some bells. And Gitlab loves Docker. I’m using Gitlab CI with Docker for a long time now, even before Gitlab included the container registry. Playing around with Swarm some months ago immediately made me want to combine all of them. The whole Kubernetes thing is pretty cool but sometimes just too much. Read more

March 17, 2016

Gitlab: grab the last succesful build artifact from CI

Uo to now, we can’t just download the latest succesful build of a project (see #4768). Therefore, i’m using the API to fetch an ordered list of all project builds in state “success” and filter for the last one. Using this ID, we can download the artifact via API. For more details, check this file. It needs some vars to work: BASE_URL PRIVATE_TOKEN PROJECT, you’ll find more info in the project README. Read more