---
# System prepended metadata

title: '[ICON4Py] Small CI improvements'
tags: [cycle 29 05/25]

---

# [ICON4Py] Small CI improvements

<!-- Add the tag for the current cycle number in the top bar -->

- Shaped by: Magdalena
- Appetite (FTEs, weeks):
- Developers: <!-- Filled in at the betting table unless someone is specifically required here -->

## Problem
<!-- The raw idea, a use case, or something we’ve seen that motivates us to work on this -->
Goal: Reduce Feedback time for developers on CI. 

## Appetite
<!-- Explain how much time we want to spend and how that constrains the solution -->

## Solution
<!-- The core elements we came up with, presented in a form that’s easy for people to immediately understand -->
- Apply the pattern for conditional session execution from gt4py ([PR-1982](https://github.com/GridTools/gt4py/pull/1982)) to icon4py.
    - copy `noxfile_utils.py` from gt4py,
    - adapt session configuration: (use `paths` and `paths_ignore` from the `tach` configuration in `icon4py` )

- Simple version of Multinode test on CI
    - [PR-692](https://github.com/C2SM/icon4py/pull/692) 
        - runs MPI test for CPU backends within the container
        - FIX the configuration issue (SLURM_NTASKS:4  needed by container openmpi, but then the mpirun task is scheduled 4 times)
        - schedule the `distributed` pipeline nightly
        
**Optional:**
    
- finish setup of github runners [Draft PR-726](https://github.com/C2SM/icon4py/pull/726)
    
## Rabbit holes
<!-- Details about the solution worth calling out to avoid problems -->

## 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 -->

## 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. -->

- [ ] Task 1: Conditional test selection for ICON4py (on hold, waiting for changes in GT4PY)

- [ ] Task 2: Multinode tests [PR-692](https://github.com/C2SM/icon4py/pull/692) 
- [ ] Task 3: Github runners [PR-726](https://github.com/C2SM/icon4py/
    - [x] setup actions for unit tests
    - [x] Make grid files available 

