# GitLab CI for Julia GPU packages

**URL:** <https://discourse.julialang.org/t/gitlab-ci-for-julia-gpu-packages/11932>\
**Category:** GPU\
**Created:** [June 25, 2018, 2:45pm UTC](https://discourse.julialang.org/t/gitlab-ci-for-julia-gpu-packages/11932 "2018-06-25T14:45:14Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![maleadt](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/maleadt/32/10097_2.png) [@maleadt](https://discourse.julialang.org/u/maleadt)\
**Post date:** [June 25, 2018, 2:45pm UTC](https://discourse.julialang.org/t/gitlab-ci-for-julia-gpu-packages/11932/1 "2018-06-25T14:45:14Z")

</div>

Hi all,

I’ve been testing GitLab CI/CD for GPU-related packages, and despite some missing features it’s been a good experience and I’ve replaced my Buildbot set-up with it. The main advantage is that there is no need for a central configuration, and packages can (much like with Travis) specify a `.gitlab-ci.yml` with all the relevant instructions to build/test/deploy packages.

As I’ve got some spare processing power, people with a need for GPUs are welcome to use my server for JuliaGPU related testing. It’s a 64-bit Linux-based server with a single GTX 1080p. I’ve documented the procedure to enable GitLab CI/CD + some basic testing template over at [GitHub - JuliaGPU/gitlab-ci: Resources related to the JuliaGPU GitLab CI.](https://github.com/JuliaGPU/gitlab-ci). For more complicated examples, look at CUDAnative.jl/CUDAdrv.jl/LLVM.jl/CuArrays.jl/ClArrays.jl/Makie.jl

---

<div class="post-metadata">

**Author:** ![sdanisch](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sdanisch/32/1406_2.png) [@sdanisch](https://discourse.julialang.org/u/sdanisch)\
**Post date:** [June 25, 2018, 2:54pm UTC](https://discourse.julialang.org/t/gitlab-ci-for-julia-gpu-packages/11932/2 "2018-06-25T14:54:07Z")

</div>

Thanks a lot for doing this @maleadt! This makes testing much easier and improves the stability of Julia’s GPU packages by quite a bit! 🙂

---

<div class="post-metadata">

**Author:** ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)\
**Post date:** [June 25, 2018, 3:16pm UTC](https://discourse.julialang.org/t/gitlab-ci-for-julia-gpu-packages/11932/3 "2018-06-25T15:16:50Z")

</div>

Is it possible to host a project on GitHub, and test it on GitLab? I have chuncks of code without test coverage because Travis CI doesn’t provide GPUs. Please let me know if you are aware of a solution.

---

<div class="post-metadata">

**Author:** ![sdanisch](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sdanisch/32/1406_2.png) [@sdanisch](https://discourse.julialang.org/u/sdanisch)\
**Post date:** [June 25, 2018, 3:17pm UTC](https://discourse.julialang.org/t/gitlab-ci-for-julia-gpu-packages/11932/4 "2018-06-25T15:17:48Z")

</div>

Tim has posted a step by step description:  
[https://github.com/JuliaGPU/gitlab-ci](https://github.com/JuliaGPU/gitlab-ci)

---

<div class="post-metadata">

**Author:** ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)\
**Post date:** [June 25, 2018, 6:30pm UTC](https://discourse.julialang.org/t/gitlab-ci-for-julia-gpu-packages/11932/5 "2018-06-25T18:30:02Z")

</div>

Thank you @sdanisch, will read it carefully. Good to know it is possible 🙂

---

<div class="post-metadata">

**Author:** ![maleadt](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/maleadt/32/10097_2.png) [@maleadt](https://discourse.julialang.org/u/maleadt)\
**Post date:** [June 26, 2018, 6:24am UTC](https://discourse.julialang.org/t/gitlab-ci-for-julia-gpu-packages/11932/6 "2018-06-26T06:24:01Z")

</div>

The README might not have been clear, but GitLab CI isn’t tied to GitLab (although that integration is obviously the smoothest). As long as your package is reachable by git repository, you can add CI.

---

<div class="post-metadata">

**Author:** ![maleadt](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/maleadt/32/10097_2.png) [@maleadt](https://discourse.julialang.org/u/maleadt)\
**Post date:** [November 5, 2018, 9:09am UTC](https://discourse.julialang.org/t/gitlab-ci-for-julia-gpu-packages/11932/7 "2018-11-05T09:09:54Z")

</div>

Update for people using this service: due to a GitLab limitation CI testing is restricted to changes on the repo (and not pull requests from forks), but with Bors we can make all changes that need to be tested part of the repo. Documentation [has been updated](https://github.com/JuliaGPU/gitlab-ci#pull-requests-from-forks), see CuArrays.jl for real-life usage (eg. [this PR](https://github.com/JuliaGPU/CuArrays.jl/pull/181)).

---

<div class="post-metadata">

**Author:** ![maleadt](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/maleadt/32/10097_2.png) [@maleadt](https://discourse.julialang.org/u/maleadt)\
**Post date:** [November 22, 2018, 7:45am UTC](https://discourse.julialang.org/t/gitlab-ci-for-julia-gpu-packages/11932/8 "2018-11-22T07:45:54Z")

</div>

Some changes:

- updated to CUDA 10
- Base images updated to Ubuntu 18.04
- new hardware: now contains a GTX 1080 and an RTX 2080 Ti

---

<div class="post-metadata">

**Author:** ![costrouc](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/costrouc/32/6506_2.png) [@costrouc](https://discourse.julialang.org/u/costrouc)\
**Post date:** [December 21, 2018, 3:49pm UTC](https://discourse.julialang.org/t/gitlab-ci-for-julia-gpu-packages/11932/9 "2018-12-21T15:49:47Z")

</div>

@maleadt we are looking at possibly using gitlab ci for gpu testing for python and c projects. Is there any special configuration that is necessary for to get the gitlab runners working? Is it documented how to setup a gitlab CI runner with gpu support? Currently I see [GitHub - JuliaGPU/gitlab-ci: Resources related to the JuliaGPU GitLab CI.](https://github.com/JuliaGPU/gitlab-ci) provides instructions for the users only

---

<div class="post-metadata">

**Author:** ![maleadt](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/maleadt/32/10097_2.png) [@maleadt](https://discourse.julialang.org/u/maleadt)\
**Post date:** [December 21, 2018, 7:25pm UTC](https://discourse.julialang.org/t/gitlab-ci-for-julia-gpu-packages/11932/10 "2018-12-21T19:25:04Z")

</div>

The last paragraph lists some details about setting up the runner for GPU, most importantly using `runtime = "nvidia"`. Feel free to contact me if you have any troubles.
