# [Blueline] CI
<!-- Add the tag for the current cycle number in the top bar -->
- Shaped by: Will, Christoph, Daniel
- Appetite (FTEs, weeks):
- Developers: <!-- Filled in at the betting table unless someone is specifically required here -->
## Problem
The blue-line is nearing production quality. In order to make this credible and reliable, it is crucial to align the continuous integration with that of the CI of the ICON community, at least for the Alps platforms, Säntis and Balfrin. The ultimate goal is to utilize CSCS-CI for icon-exclaim for normal CPU runs and GPU (OpenACC) runs, but also CPU and GPU granule runs, for all Buildbot tests currently run on Balfrin.
In this cycle we only want to make some steps in this direction.
## Appetite
<!-- Explain how much time we want to spend and how that constrains the solution -->
A full cycle (1 person-equivalent) will be needed to get three desired MCH tests to pass,
as well as at least one EXCLAIM-specific tests, for CPU-only and GPU-only (OpenACC) builders.
## Solution
<!-- The core elements we came up with, presented in a form that’s easy for people to immediately understand -->
The task is a logical extension of Daniel's currently almost completed work to merge in the latest icon.git:main into icon-exclaim. This has the latest support for Spack builds and CSCS-CI.
## Rabbit holes
<!-- Details about the solution worth calling out to avoid problems -->
While it is likely that tests in the normal ICON suite will also work for icon-exclaim (CPU and OpenACC), there might be rabbit holes when it comes to the DSL version.
Moreover,the EXCLAIM-specific tests might lead to problems which require significant
debugging.
## No-gos
<!-- Anything specifically excluded from the concept: functionality or use cases we intentionally aren’t covering to fit the ## appetite or make the problem tractable -->
* We will think about the approach for adding the granule DSL version to the CI framework, but plan to actually address it in the next cycle;
* The activation of all Balfrin BB tests will wait till the next cycle.
## Progress
<!-- Don't fill during shaping. This area is for collecting TODOs during building. As first task during building add a preliminary list of coarse-grained tasks for the project and refine them with finer-grained items when it makes sense as you work on them. -->
- [ ] Completion of merge of icon.git:main (https://github.com/C2SM/icon-exclaim/pull/332)
- [ ] Peripheral review of MR
- [ ] Definitive push to icon-exclaim.git:icon-dsl
- [ ] (Optional) Make probtest behave the same for spack build as for manual build
- [ ] Activation of access tokens for the icon-exclaim.git repository to CSCS-CI
- [ ] Clean up current status of https://cicd-ext-mw.cscs.ch/ci/setup for icon-exclaim
- [ ] Run simple tests to prove that CSCS-CI is working for the icon-exclaim project
- [ ] Preparation of test (Spack-build only)
- [ ] mch_icon_ch1
- [ ] mch_icon_ch2
- [ ] mch_kenda1
- [ ] exclaim_ape
- [ ] Construct pipelines for
- [ ] CPU build
- [ ] CPU run (3 MCH tests + 1 EXCLAIM APE)
- [ ] GPU build
- [ ] GPU run (3 MCH tests + 1 EXCLAIM APE)
- [ ] Planning for CI for the DSL version
- [ ] More experience for building manually
- [ ] Investigate options for building the python part
1. prebuild into a .venv (probably preferred option)
2. include the python stuff in the spack build (spack must resolve the whole dependency tree)