# Test a package with a CUDA dependency through GitHub Actions CI

**URL:** <https://discourse.julialang.org/t/test-a-package-with-a-cuda-dependency-through-github-actions-ci/117702>\
**Category:** GPU\
**Tags:** package, ci, github-actions\
**Created:** [July 31, 2024, 7:21pm UTC](https://discourse.julialang.org/t/test-a-package-with-a-cuda-dependency-through-github-actions-ci/117702 "2024-07-31T19:21:31Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![huiyuxie](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/huiyuxie/32/214265_2.png) [@huiyuxie](https://discourse.julialang.org/u/huiyuxie)\
**Post date:** [July 31, 2024, 7:21pm UTC](https://discourse.julialang.org/t/test-a-package-with-a-cuda-dependency-through-github-actions-ci/117702/1 "2024-07-31T19:21:31Z")

</div>

Hi all! I am developing a new package integrating CUDA.jl as a dependency. However, I encountered errors indicating `CUDA driver not found` in CI when testing. I am using [Standard GitHub-hosted runners](https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#standard-github-hosted-runners-for--private-repositories) and do not want to switch to [Larger runners](https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#larger-runners). What is the typical way to test the whole package on GitHub?

I have seen some similar packages being developed without a CI file. Does this mean that it is acceptable to test locally and push to GitHub without official CI testing?

---

<div class="post-metadata">

**Author:** ![luraess](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/luraess/32/16189_2.png) [@luraess](https://discourse.julialang.org/u/luraess)\
**Post date:** [July 31, 2024, 7:52pm UTC](https://discourse.julialang.org/t/test-a-package-with-a-cuda-dependency-through-github-actions-ci/117702/2 "2024-07-31T19:52:52Z")

</div>

For GPU testing you need GPU infrastructure, which is not available in freely accessible GH runners/CI. You can either self-host GPU runners, or use the JuliaGPU Buildkite runners (somewhat separate CI from GH actions). You can see in packages like [KernelAbstractions.jl](https://github.com/JuliaGPU/KernelAbstractions.jl) how both CPU and GPU CI is handled (via `.github` and `.buildkite` files).

One alternative could be, if your package supports both CPU and GPU backend, to for now only have CPU testing in CI, while running GPU tests locally…

---

<div class="post-metadata">

**Author:** ![huiyuxie](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/huiyuxie/32/214265_2.png) [@huiyuxie](https://discourse.julialang.org/u/huiyuxie)\
**Post date:** [July 31, 2024, 8:42pm UTC](https://discourse.julialang.org/t/test-a-package-with-a-cuda-dependency-through-github-actions-ci/117702/3 "2024-07-31T20:42:13Z")

</div>

Thanks a lot!
