Closed ajm-ska closed 6 months ago
Package | Line Rate | Health |
---|---|---|
src.Cache | 63% | ➖ |
src.DataStream | 44% | ➖ |
src.FileList | 67% | ➖ |
src.Frame | 36% | ❌ |
src.HttpServer | 42% | ➖ |
src.ImageData | 28% | ❌ |
src.ImageFitter | 83% | ✔ |
src.ImageGenerators | 43% | ➖ |
src.ImageStats | 72% | ➖ |
src.Logger | 34% | ❌ |
src.Main | 52% | ➖ |
src.Region | 17% | ❌ |
src.Session | 4% | ❌ |
src.Table | 52% | ➖ |
src.ThreadingManager | 67% | ➖ |
src.Timer | 85% | ✔ |
src.Util | 30% | ❌ |
Summary | 32% (6023 / 18675) | ❌ |
@ajm-asiaa any suggestions on testing this? or it is not possible?
@kswang1029 I think the only way to test it is to merge it and see if it runs automatically tomorrow at 0800. That is the only part I'm not sure of at the moment, but it is only supposed to work when it is in the main branch ('dev' in our case). If there is a problem, I could try to issue a direct fix. It will not affect the carta-backend codebase at all. Besides that, you can see that all the ICD tests on each platform are currently capable of passing.
Description
This one took a lot of trial and error. It effectively moves the daily ICD tests from Jenkins to Github Actions.
The 3 macOS and 5 Linux platforms are combined in one workflow file called
ICD Tests
. They use local runners hosted at ASIAA. The macOS platforms run natively on the Mac hardware. The 5 Linux platforms run via Apptainer (Singularity) on three different Linux servers. It is a long story, but I found Apptainer easier to use instead of Docker and the workflow file can be a lot shorter and simpler.To reduce the length of the workflow file, we use two different actions;
run-macos/action.yml
andrun-apptainer/action/yml
that start a carta-backend and run the ICD tests for each "job" (ICD test stage) on macOS and Linux, respectively. I don't think the workflow file can be shortened much more. Each "job" requires that long matrix block. Unless we consolidate stages. But I did not do that as I was trying to keep the layout similar to the previous Jenkins ICD tests where we can visually see each test stage.I have put a list of the actual ICD tests per stage in the ICD-RxJS repo in ICD-RxJS/ICD_test_stages. The workflow file reads that list of tests. This means we can easily add or remove tests to existing stages without needing to make any commits to the carta-backend repo. However, we would need to make a commit to icd_tests.yml on the carta-backend repo if we were to add or remove test stages.
Just like on Jenkins, the ICD test stages run sequentially. e.g. Animator only runs after File-Browser. This was not necessary for Linux/Apptainer, but for some strange reason it is necessary for the macOS platforms. I was unable to figure out why. But is not really important. It still works fine running sequentially and would not be any faster because one runner only runs one job at a time.
The status of all the jobs and steps and the log files can be seen, for example, here: https://github.com/CARTAvis/carta-backend/actions/runs/7259363238
The final part that I have not been able to test is the schedule:
This should allow it to run daily at 08:00 Taiwan time. I believe 'schedule' only runs on the default branch, which is 'dev' in our case. So we can not actually test this until it is merged.
I guess this is an unusual PR. It does not affect the carta-backend code base so doesn't require much review or testing.
Checklist