Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
627 commits
Select commit Hold shift + click to select a range
c4af568
Merge pull request #155 from KatherLab/102-implement-further-feedback…
oleschwen Nov 10, 2025
2435e4e
use git archive rather than copy source code directory and clean it u…
oleschwen Nov 11, 2025
6ec15de
extracted copying cached pretrained model weights to separate script
oleschwen Nov 13, 2025
4ca1732
refactored to split steps
oleschwen Nov 13, 2025
5612496
meaningful error message
oleschwen Nov 13, 2025
5f90178
removed removed test also from CI
oleschwen Nov 17, 2025
c5eff56
Merge branch 'main' into 147-check-if-custom-swarm-controllers-are-ne…
oleschwen Nov 17, 2025
c68e688
changed capitalization of expected output to what the NVFlare classes…
oleschwen Nov 17, 2025
233ceaf
print error message after output to keep error visible
oleschwen Nov 17, 2025
3ee494c
Merge pull request #157 from KatherLab/156-build-docker-image-using-g…
oleschwen Nov 17, 2025
df2bd48
Merge branch 'main' into 147-check-if-custom-swarm-controllers-are-ne…
oleschwen Nov 17, 2025
d319093
swarm config file for testing controller changes (should be removed a…
oleschwen Nov 18, 2025
3225a2a
Revert "swarm config file for testing controller changes (should be r…
oleschwen Nov 21, 2025
7897d4b
chore: update apt versions in Dockerfile_ODELIA
Ultimate-Storm Nov 25, 2025
efab2e8
Merge pull request #161 from KatherLab/ci/apt-update-1764043974
oleschwen Nov 25, 2025
9c4f041
Merge branch 'main' into 147-check-if-custom-swarm-controllers-are-ne…
oleschwen Nov 25, 2025
efabeec
made compatible with Docker 29.0, untested on earlier versions
oleschwen Nov 27, 2025
533f8a4
slightly restructured participant README, added hint to ping server h…
oleschwen Nov 28, 2025
d4da5f3
Merge pull request #164 from KatherLab/102-implement-further-feedback…
oleschwen Dec 1, 2025
a0cee3d
Merge branch 'main' into 147-check-if-custom-swarm-controllers-are-ne…
oleschwen Dec 1, 2025
bb69b4a
Merge branch 'main' into 162-make-image-cleanup-script-compatible-wit…
oleschwen Dec 1, 2025
76d14a7
removed python packages that were only needed for testing
oleschwen Dec 1, 2025
cceafb2
removed nvflare unit tests from "all" integration tests as it fails f…
oleschwen Dec 1, 2025
c465962
changed pip-licenses output to json format, consistent with distro2sb…
oleschwen Dec 8, 2025
8e70d08
chore: update apt versions in Dockerfile_ODELIA
Ultimate-Storm Dec 8, 2025
b0e6808
Merge pull request #167 from KatherLab/ci/apt-update-1765207035
oleschwen Dec 8, 2025
f25d097
Merge branch 'main' into 147-check-if-custom-swarm-controllers-are-ne…
oleschwen Dec 8, 2025
4cb0082
Merge branch 'main' into 162-make-image-cleanup-script-compatible-wit…
oleschwen Dec 8, 2025
6afbfd2
Merge branch 'main' into 165-list-all-packages-as-json
oleschwen Dec 8, 2025
511b7a1
Merge pull request #159 from KatherLab/147-check-if-custom-swarm-cont…
oleschwen Dec 9, 2025
807b397
Merge branch 'main' into 165-list-all-packages-as-json
oleschwen Dec 9, 2025
dea5a00
Merge branch 'main' into 162-make-image-cleanup-script-compatible-wit…
oleschwen Dec 9, 2025
2ce1978
chore: update apt versions in Dockerfile_ODELIA
Ultimate-Storm Dec 15, 2025
fd027da
Merge pull request #172 from KatherLab/ci/apt-update-1765772644
oleschwen Dec 15, 2025
5878525
Merge branch 'main' into 165-list-all-packages-as-json
oleschwen Dec 15, 2025
72bf92b
Merge pull request #166 from KatherLab/165-list-all-packages-as-json
oleschwen Dec 15, 2025
3c523d4
Merge branch 'main' into 162-make-image-cleanup-script-compatible-wit…
oleschwen Dec 15, 2025
f3ab733
script to parse AUC_ROC values from collected logs
oleschwen Dec 18, 2025
3f3990a
plot convergence for single sites
oleschwen Dec 22, 2025
86adb1d
renamed file
oleschwen Dec 22, 2025
fa5451b
refactored per-site plots, added overview plots
oleschwen Dec 22, 2025
9c0d706
write all plots per site in single image
oleschwen Dec 22, 2025
dfedf36
set limits for correct axes
oleschwen Dec 22, 2025
61c6759
changed line type for aggregated models
oleschwen Dec 22, 2025
35e461b
chore: update apt versions in Dockerfile_ODELIA
Ultimate-Storm Jan 8, 2026
3d1dcc4
Merge pull request #175 from KatherLab/ci/apt-update-1767846193
oleschwen Jan 8, 2026
1494514
Merge branch 'main' into 162-make-image-cleanup-script-compatible-wit…
oleschwen Jan 8, 2026
bfc88f4
Merge branch 'main' into 174-evaluate-first-successful-swarm-training
oleschwen Jan 8, 2026
22fa5d4
documented expected folder structure
oleschwen Jan 9, 2026
f8bd400
also parse local training output (if file exists)
oleschwen Jan 9, 2026
ed3ec1b
added local training convergence curves to plots
oleschwen Jan 9, 2026
15b5eb1
more compact check if data is present
oleschwen Jan 9, 2026
237ee83
chore: update apt versions in Dockerfile_ODELIA
Ultimate-Storm Jan 13, 2026
0b34f7e
Merge pull request #178 from KatherLab/ci/apt-update-1768278181
oleschwen Jan 13, 2026
93846e9
Merge branch 'main' into 162-make-image-cleanup-script-compatible-wit…
oleschwen Jan 13, 2026
75ef4c5
Merge branch 'main' into 174-evaluate-first-successful-swarm-training
oleschwen Jan 13, 2026
74ef4d5
compute ground truth and class probabilities for aggregated model
oleschwen Jan 14, 2026
92f60a4
output ground truth and predictions to csv
oleschwen Jan 15, 2026
5260fd9
consistent ranges of plots
oleschwen Jan 15, 2026
0b43321
notes on cloning the MediSwarm repository with submodules
oleschwen Jan 16, 2026
12ee6f1
added checkpoint to output ground truth and class probabilities after…
oleschwen Jan 16, 2026
4ae2433
output validation predictions for aggregated model only in swarm trai…
oleschwen Jan 16, 2026
b61b888
verify that csv with ground truth and class probability values is wri…
oleschwen Jan 19, 2026
6f38070
Revert "verify that csv with ground truth and class probability value…
oleschwen Jan 19, 2026
9feb604
documented user name needed when starting admin console
oleschwen Jan 19, 2026
3cb1cb8
chore: update apt versions in Dockerfile_ODELIA
Ultimate-Storm Jan 22, 2026
0ae399f
Merge pull request #183 from KatherLab/ci/apt-update-1769056049
oleschwen Jan 22, 2026
fc79c8f
Merge branch 'main' into 177-store-gt-and-class-probability-values-pe…
oleschwen Jan 22, 2026
c69403d
Merge branch 'main' into 174-evaluate-first-successful-swarm-training
oleschwen Jan 22, 2026
5f5b45a
Merge branch 'main' into 162-make-image-cleanup-script-compatible-wit…
oleschwen Jan 22, 2026
e3b63a2
Merge branch 'main' into 102-implement-further-feedback-on-readme-fil…
oleschwen Jan 22, 2026
025d097
added troubleshooting options when the disk is full
oleschwen Jan 22, 2026
31b9e2a
added note on (in our case) redundant entries for server and overseer
oleschwen Jan 23, 2026
f42f8d0
output ground truth and class probabilities also for training data
oleschwen Jan 26, 2026
93e7549
extended list of output files (included csvs written now) and updated…
oleschwen Jan 26, 2026
d452e66
fixed markdown syntax
oleschwen Jan 26, 2026
80c7747
removed oudated and thus possibly confusing README file
oleschwen Jan 26, 2026
6795846
elaborated on making application code MediSwarm-compatible
oleschwen Jan 26, 2026
1b3c727
increased version number
oleschwen Jan 27, 2026
215e8e1
draft evaluation of csv output
oleschwen Jan 27, 2026
d5dbf2c
manually upgraded apt versions
oleschwen Jan 28, 2026
5adffcf
manually upgraded apt versions
oleschwen Jan 28, 2026
eede564
manually upgraded apt versions
oleschwen Jan 28, 2026
411711e
manually upgraded apt versions
oleschwen Jan 28, 2026
f4fed22
made parsing a bit more flexible
oleschwen Jan 29, 2026
39674af
message if local training data missing
oleschwen Jan 29, 2026
fbbf24c
moved legend to top left plot
oleschwen Jan 29, 2026
f8bcaf7
call expect script via command
oleschwen Jan 29, 2026
70be233
show permissions of file failing CI
oleschwen Jan 29, 2026
dd7396e
further debugging of failing CI
oleschwen Jan 29, 2026
27a458e
temporarily removed tests from CI for faster feedback
oleschwen Jan 29, 2026
17f54b2
check folder permissions
oleschwen Jan 29, 2026
a754e06
temporarily removed another step not necessary for debugging
oleschwen Jan 29, 2026
15a1d55
fixed option
oleschwen Jan 29, 2026
f6f163c
Revert "temporarily removed tests from CI for faster feedback"
oleschwen Jan 29, 2026
09eefdf
Revert "temporarily removed another step not necessary for debugging"
oleschwen Jan 29, 2026
6fc5784
removed debugging experiments
oleschwen Jan 29, 2026
602fb26
manually upgraded apt versions
oleschwen Jan 28, 2026
6a21655
chore: update apt versions in Dockerfile_ODELIA
Ultimate-Storm Jan 30, 2026
0747a77
log hash of dataset UIDs
oleschwen Jan 30, 2026
3649a5c
extend hash to image data
oleschwen Jan 30, 2026
d528d85
Merge pull request #186 from KatherLab/ci/apt-update-1769747837
oleschwen Jan 30, 2026
cf3208a
Merge branch 'main' into 102-implement-further-feedback-on-readme-fil…
oleschwen Jan 30, 2026
a89e066
Merge branch 'main' into 162-make-image-cleanup-script-compatible-wit…
oleschwen Jan 30, 2026
0d307f7
Merge branch 'main' into 174-evaluate-first-successful-swarm-training
oleschwen Jan 30, 2026
3369941
Merge branch 'main' into 177-store-gt-and-class-probability-values-pe…
oleschwen Jan 30, 2026
a33c16d
Merge branch 'main' into 185-add-checksum-of-data-used-in-training
oleschwen Jan 30, 2026
48856ad
added note about empty plot
oleschwen Jan 30, 2026
a4bb739
Merge pull request #181 from KatherLab/177-store-gt-and-class-probabi…
oleschwen Feb 2, 2026
8a4ccfd
Merge pull request #180 from KatherLab/102-implement-further-feedback…
oleschwen Feb 2, 2026
2d06afd
Merge pull request #163 from KatherLab/162-make-image-cleanup-script-…
oleschwen Feb 2, 2026
626b066
Merge branch 'main' into 185-add-checksum-of-data-used-in-training
oleschwen Feb 2, 2026
fa51b40
Merge branch 'main' into 174-evaluate-first-successful-swarm-training
oleschwen Feb 2, 2026
5a4768f
documented output files of local training
oleschwen Feb 2, 2026
680ba6d
local training has no aggregated models
oleschwen Feb 2, 2026
c61211f
noted difference that local training results end up in startup, swarm…
oleschwen Feb 2, 2026
95232d4
chore: update apt versions in Dockerfile_ODELIA
oleschwen Feb 3, 2026
fda799e
Merge pull request #189 from KatherLab/ci/apt-update-1770108438
oleschwen Feb 3, 2026
d092a92
Merge branch 'main' into 102-fix-path-of-output-files-in-readme
oleschwen Feb 3, 2026
c7f4f2c
Merge pull request #188 from KatherLab/102-fix-path-of-output-files-i…
oleschwen Feb 3, 2026
944fac0
Merge branch 'main' into 174-evaluate-first-successful-swarm-training
oleschwen Feb 3, 2026
ce2ce05
Merge branch 'main' into 185-add-checksum-of-data-used-in-training
oleschwen Feb 3, 2026
e28e20c
Add files via upload
Ultimate-Storm Feb 3, 2026
e046100
Revise OpenVPN setup guide with additional notes
Ultimate-Storm Feb 3, 2026
b904dd7
store data as dicts
oleschwen Feb 3, 2026
3112b50
refactored
oleschwen Feb 3, 2026
1e17889
Merge branch 'main' into 185-add-checksum-of-data-used-in-training
oleschwen Feb 5, 2026
bb1bf7d
use original dataset (without augmentation) for computing hash
oleschwen Feb 5, 2026
9551874
chore: update apt versions in Dockerfile_ODELIA
Ultimate-Storm Feb 6, 2026
b42b7f6
Merge pull request #190 from KatherLab/ci/apt-update-1770352809
oleschwen Feb 6, 2026
c909e5c
Merge branch 'main' into 185-add-checksum-of-data-used-in-training
oleschwen Feb 6, 2026
a608721
Merge branch 'main' into 174-evaluate-first-successful-swarm-training
oleschwen Feb 6, 2026
7b99f5d
improve Docker build caching by installing apt packages (with version…
oleschwen Feb 6, 2026
11fc71c
use actual name of files
oleschwen Feb 6, 2026
90d315b
Merge pull request #187 from KatherLab/185-add-checksum-of-data-used-…
oleschwen Feb 9, 2026
b3e51ac
Merge pull request #192 from KatherLab/191-move-apt-installation-to-e…
oleschwen Feb 9, 2026
52e7aff
Merge branch 'main' into 174-evaluate-first-successful-swarm-training
oleschwen Feb 9, 2026
4e18a4f
chore: update apt versions in Dockerfile_ODELIA
Ultimate-Storm Feb 10, 2026
a241528
include number of training and validation images in plot
oleschwen Feb 10, 2026
a6fcd27
refactored
oleschwen Feb 10, 2026
635e428
refactored
oleschwen Feb 10, 2026
40a944b
Merge pull request #196 from KatherLab/ci/apt-update-1770699110
oleschwen Feb 10, 2026
62ce70d
Merge branch 'main' into 174-evaluate-first-successful-swarm-training
oleschwen Feb 10, 2026
4a795e0
chore: update apt versions in Dockerfile_ODELIA
Ultimate-Storm Feb 11, 2026
c80107a
Merge pull request #198 from KatherLab/ci/apt-update-1770785402
oleschwen Feb 11, 2026
4fb1624
Merge branch 'main' into 174-evaluate-first-successful-swarm-training
oleschwen Feb 11, 2026
c0796e0
only allow 1 job at a time so that we can submit multiple jobs for su…
oleschwen Feb 16, 2026
c911584
chore: update apt versions in Dockerfile_ODELIA
Ultimate-Storm Feb 18, 2026
7e9991e
Merge pull request #201 from KatherLab/ci/apt-update-1771389838
oleschwen Feb 18, 2026
ceac87b
Merge branch 'main' into 176-submit-multiple-jobs-for-subsequent-exec…
oleschwen Feb 18, 2026
8e4db18
Merge pull request #199 from KatherLab/176-submit-multiple-jobs-for-s…
oleschwen Feb 18, 2026
10eb1b5
Add log analysis plotting script
e-pet Feb 16, 2026
fe23eb4
made executable
oleschwen Feb 17, 2026
c3ad2eb
added numbers to histogram
oleschwen Feb 17, 2026
be80326
changed zipped list to dict
oleschwen Feb 18, 2026
8417212
started refactoring: split in methods
oleschwen Feb 18, 2026
b28a5bf
continued refactoring and splitting methods
oleschwen Feb 18, 2026
fd15d9c
continued refactoring and splitting plotting
oleschwen Feb 18, 2026
9915585
adapted script for cases where only local data is available (yet)
oleschwen Feb 18, 2026
63b556f
chore: update apt versions in Dockerfile_ODELIA
Ultimate-Storm Feb 19, 2026
66ac09b
plot class histograms from local rather than swarm results (assuming …
oleschwen Feb 19, 2026
6ecc31f
included absolute numbers training/validation for parity check
oleschwen Feb 19, 2026
fb53e6a
Merge pull request #203 from KatherLab/ci/apt-update-1771476153
oleschwen Feb 19, 2026
ad0d0d4
Merge branch 'main' into 174-evaluate-first-successful-swarm-training
oleschwen Feb 19, 2026
1a53f3d
Merge branch 'main' into 193-evaluate-class-distributions-per-site-fr…
oleschwen Feb 19, 2026
62e75c7
added plotting 0 vs 2 and 1 vs 2, refactored for that purpose
oleschwen Feb 23, 2026
e1ea240
chore: update apt versions in Dockerfile_ODELIA
Ultimate-Storm Feb 25, 2026
90ee604
Merge pull request #205 from KatherLab/ci/apt-update-1771994596
oleschwen Feb 25, 2026
64aaa52
Merge branch 'main' into 174-evaluate-first-successful-swarm-training
oleschwen Feb 25, 2026
87ae747
Merge branch 'main' into 193-evaluate-class-distributions-per-site-fr…
oleschwen Feb 25, 2026
237db85
output duplicate UIDs and UIDs of duplicate image data (for debugging…
oleschwen Feb 26, 2026
e3d730c
use different version number
oleschwen Feb 26, 2026
4cbb374
fixed printed hash
oleschwen Feb 26, 2026
e8b6dcb
check training and validation data separately for duplicates
oleschwen Mar 2, 2026
b40fded
made synthetic dataset contain image without table entry
oleschwen Mar 2, 2026
824000c
only include images that are present
oleschwen Mar 2, 2026
98b1811
check dataset for discrepancies between metadata and images present WIP
oleschwen Mar 3, 2026
ac57afa
write to logger instead of printing
oleschwen Mar 3, 2026
7bae4be
split output in warnings/errors that should always be logged and logg…
oleschwen Mar 4, 2026
4025a09
run complete data access preflight check
oleschwen Mar 4, 2026
45669d0
simplified bash scripts
oleschwen Mar 4, 2026
fc2f159
extended participant README
oleschwen Mar 4, 2026
262136c
increased debug version number
oleschwen Mar 4, 2026
a3e51d4
fixed formula for 0vs1/2, added 0/1vs2
oleschwen Mar 5, 2026
7f0485a
consistently use single quotes
oleschwen Mar 5, 2026
ee34cec
plot label distributions at top so that it is next to macro AUROC and…
oleschwen Mar 5, 2026
287cb35
output label distribution before training
oleschwen Mar 5, 2026
4049f64
removed redundant output, check for output in integration test
oleschwen Mar 5, 2026
cc44599
clarification in participant README
oleschwen Mar 5, 2026
7a7b29b
cleaned up evaluation script developed in a separate branch
oleschwen Mar 6, 2026
e9f4929
added README
oleschwen Mar 6, 2026
f882022
allow chosing one-vs-one and one-vs-rest ROC_AUC computation
oleschwen Mar 6, 2026
bf33c71
added README
oleschwen Mar 6, 2026
48450ea
also load test data and inlude it in the logs/plausibility checks
oleschwen Mar 6, 2026
7288966
warn if one class is not present
oleschwen Mar 6, 2026
c46ff3c
include test data in further logging/plausibility checks
oleschwen Mar 6, 2026
bc26885
increased version number
oleschwen Mar 6, 2026
ac96b4e
chore: update apt versions in Dockerfile_ODELIA
Ultimate-Storm Mar 10, 2026
220deea
Merge pull request #210 from KatherLab/ci/apt-update-1773117538
oleschwen Mar 10, 2026
c42bde0
Merge branch 'main' into 174-evaluate-first-successful-swarm-training
oleschwen Mar 10, 2026
bcd4e25
Merge branch 'main' into 193-evaluate-class-distributions-per-site-fr…
oleschwen Mar 10, 2026
0860639
Merge branch 'main' into 206-optional-output-for-dataset-debugging
oleschwen Mar 10, 2026
4231bca
Merge pull request #179 from KatherLab/174-evaluate-first-successful-…
oleschwen Mar 11, 2026
c0aa15d
Merge pull request #207 from KatherLab/206-optional-output-for-datase…
oleschwen Mar 11, 2026
707a744
Merge branch 'main' into 193-evaluate-class-distributions-per-site-fr…
oleschwen Mar 11, 2026
fd96745
chore: update apt versions in Dockerfile_ODELIA
Ultimate-Storm Mar 12, 2026
b4160be
Merge pull request #211 from KatherLab/ci/apt-update-1773290394
oleschwen Mar 12, 2026
154aac9
Merge branch 'main' into 193-evaluate-class-distributions-per-site-fr…
oleschwen Mar 12, 2026
602bf79
chore: update apt versions in Dockerfile_ODELIA
Ultimate-Storm Mar 13, 2026
8071fe0
Merge pull request #212 from KatherLab/ci/apt-update-1773376740
oleschwen Mar 13, 2026
694679f
Merge branch 'main' into 193-evaluate-class-distributions-per-site-fr…
oleschwen Mar 13, 2026
4929769
chore: update apt versions in Dockerfile_ODELIA
Ultimate-Storm Mar 16, 2026
3213097
Merge pull request #215 from KatherLab/ci/apt-update-1773637145
oleschwen Mar 16, 2026
c809aa2
Merge branch 'main' into 193-evaluate-class-distributions-per-site-fr…
oleschwen Mar 16, 2026
9739a90
chore: update apt versions in Dockerfile_ODELIA
Ultimate-Storm Mar 17, 2026
ebc29c2
Merge pull request #217 from KatherLab/ci/apt-update-1773722518
oleschwen Mar 17, 2026
02e80f5
Merge branch 'main' into 193-evaluate-class-distributions-per-site-fr…
oleschwen Mar 17, 2026
a3a8ea7
chore: update apt versions in Dockerfile_ODELIA
Ultimate-Storm Mar 19, 2026
f54c92a
Merge pull request #220 from KatherLab/ci/apt-update-1773895479
oleschwen Mar 19, 2026
cbf40a6
added check that output files are documented for participants
oleschwen Mar 18, 2026
368ad73
implemented test for failing data access preflight check if data not …
oleschwen Mar 19, 2026
372c1d6
clarified some output about test success/failure
oleschwen Mar 19, 2026
5b534c2
make success/failure clearer by symbols
oleschwen Mar 19, 2026
035726d
fixed typo in CI test name
oleschwen Mar 19, 2026
7623a51
check that CI failure is handled correctly
oleschwen Mar 19, 2026
8818d6c
Revert "check that CI failure is handled correctly"
oleschwen Mar 19, 2026
73d449a
added (non-CI) test for 3DCNN local training
oleschwen Mar 19, 2026
0321233
added test to run 3dcnn swarm training
oleschwen Mar 20, 2026
312831d
explained how to build image required for tests
oleschwen Mar 20, 2026
5edccb7
explained potential points of confusion: time zones, log.txt
oleschwen Mar 20, 2026
b31f630
extended explanation of integration test
oleschwen Mar 20, 2026
dc76edc
somewhat extended instructions for making own code swarm-ready (still…
oleschwen Mar 20, 2026
b2623b0
wait for 60 minutes before checking results, use same commands in adm…
oleschwen Mar 20, 2026
0a82523
don't check for file that is not expected
oleschwen Mar 20, 2026
e62a49b
extended explanation of integration test
oleschwen Mar 20, 2026
6bc9c3e
somewhat extended instructions for making own code swarm-ready (still…
oleschwen Mar 20, 2026
a3a3d3c
extended description of integration test
oleschwen Mar 20, 2026
4ebd55d
extended instructions on making own code swarm-compatible by tests ad…
oleschwen Mar 20, 2026
82b7ffa
Merge pull request #202 from KatherLab/193-evaluate-class-distributio…
oleschwen Mar 23, 2026
3e73f1d
Merge pull request #223 from KatherLab/216-write-guidelines-for-makin…
oleschwen Mar 23, 2026
9638163
Merge branch 'main' into 219-extend-integration-tests
oleschwen Mar 23, 2026
dc66948
Merge pull request #221 from KatherLab/219-extend-integration-tests
oleschwen Mar 23, 2026
705b74b
chore: update apt versions in Dockerfile_ODELIA
Ultimate-Storm Mar 24, 2026
64da991
Merge pull request #225 from KatherLab/ci/apt-update-1774356581
oleschwen Mar 24, 2026
aa038cd
chore: update apt versions in Dockerfile_ODELIA
Ultimate-Storm Apr 2, 2026
d165c0c
Merge pull request #233 from KatherLab/ci/apt-update-1775105426
oleschwen Apr 2, 2026
581dd70
check whether job is running and finishes
oleschwen Mar 30, 2026
5e571a2
clearer message in test: where does expected output come from
oleschwen Mar 30, 2026
bfda52a
added option to run NVFlare integration tests
oleschwen Mar 31, 2026
aee4020
run nvflare unit and integration tests in one step
oleschwen Apr 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 47 additions & 26 deletions .github/workflows/pr-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@ on:
- main
- dev

permissions:
contents: read

jobs:
validate-swarm:
runs-on: self-hosted
timeout-minutes: 45

env:
DATADIR: /mnt/swarm_alpha/Odelia_challange/ODELIA_Challenge_unilateral/
SCRATCHDIR: /mnt/scratch
SITE_NAME: UKA
PYTHONUNBUFFERED: 1


Expand Down Expand Up @@ -47,37 +47,58 @@ jobs:
- name: Build Docker image and dummy startup kits
run: ./buildDockerImageAndStartupKits.sh -p tests/provision/dummy_project_for_testing.yml --use-docker-cache

- name: Prepare dummy trainings
continue-on-error: true
- name: Run integration test checking documentation on github
continue-on-error: false
run: |
./runIntegrationTests.sh check_files_on_github

- name: Run dummy training standalone
continue-on-error: false
run: |
./runIntegrationTests.sh run_dummy_training_standalone

- name: Run dummy training in simulation mode
continue-on-error: false
run: |
./runIntegrationTests.sh run_dummy_training_simulation_mode

- name: Run dummy training in proof-of-concept mode
continue-on-error: false
run: |
./runIntegrationTests.sh run_dummy_training_poc_mode

- name: Run 3DCNN training in simulation mode
continue-on-error: false
run: |
./runTestsInDocker.sh prepare_dummy_trainings
echo "Dummy training project prepared"
./runIntegrationTests.sh run_3dcnn_simulation_mode

- name: Run dummy training
- name: Run integration test creating startup kits
continue-on-error: false
run: |
./runTestsInDocker.sh run_dummy_training
echo "Dummy training finished"
echo "=== Checking log output ==="
ls -lh workspace/*/prod_00/client_A/logs || echo "No logs found for dummy training"
./runIntegrationTests.sh create_startup_kits

- name: Run 3D CNN preflight check
- name: Run intergration test listing licenses
continue-on-error: false
run: |
./runTestsInDocker.sh preflight_check
echo "Preflight check finished"
echo "=== Checking synthetic log output ==="
ls -lh workspace/*/prod_00/client_A/logs || echo "No logs found for preflight"
./runIntegrationTests.sh run_list_licenses

- name: Run Unit Tests inside Docker
continue-on-error: true
- name: Run integration test Docker GPU preflight check
continue-on-error: false
run: |
./runTestsInDocker.sh run_tests
echo "=== [LOG CHECK] ==="
docker logs $(docker ps -a -q --latest) | grep -i "error" && echo "Error found in logs" || echo "No error found"
./runIntegrationTests.sh run_docker_gpu_preflight_check

- name: Cleanup training artifacts
continue-on-error: true
- name: Run integration test data access preflight check
continue-on-error: false
run: |
./runIntegrationTests.sh run_data_access_preflight_check

- name: Run dummy training in swarm
continue-on-error: false
run: |
./runIntegrationTests.sh run_dummy_training_in_swarm

- name: Kill orphaned containers from this run (if any)
continue-on-error: false
if: always()
run: |
./runTestsInDocker.sh cleanup
echo "Cleanup finished"
./runIntegrationTests.sh kill_server_and_clients
44 changes: 15 additions & 29 deletions .github/workflows/update-apt-versions.yml
Original file line number Diff line number Diff line change
@@ -1,67 +1,53 @@
name: Auto Update APT Versions
name: Auto Update APT Versions (Self-hosted)

on:
schedule:
- cron: '0 5 * * 0' # Every Sunday at 05:00 UTC
# run eveyday at 04:00 UTC
- cron: '0 4 * * *'
workflow_dispatch:

jobs:
update-apt:
name: Update APT Package Versions in Dockerfile
runs-on: ubuntu-latest
runs-on: self-hosted
timeout-minutes: 60

steps:
- name: Checkout repository (with submodules)
uses: actions/checkout@v3
with:
submodules: true
fetch-depth: 0

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.x'

- name: Install dependencies
run: sudo apt-get update && sudo apt-get install -y git

- name: Configure Git for CI
- name: Set up Git
run: |
git config --global user.email "ci@github.com"
git config --global user.name "GitHub CI"

- name: Create and switch to apt-update branch
run: |
git checkout -b ci/apt-update || git switch ci/apt-update

- name: Make update script executable
run: chmod +x scripts/ci/update_apt_versions.sh

- name: Run APT update script
run: scripts/ci/update_apt_versions.sh

- name: Check for changes
id: check_changes
run: |
if git diff --quiet; then
echo "NO_CHANGES=true" >> $GITHUB_ENV
echo "No changes detected."
else
echo "NO_CHANGES=false" >> $GITHUB_ENV
echo "Changes detected."
fi
chmod +x scripts/ci/update_apt_versions.sh
scripts/ci/update_apt_versions.sh
- name: Show git diff for debugging
run: git diff || true

- name: Push ci/apt-update to origin
- name: Push apt-update branch
if: env.NO_CHANGES == 'false'
run: git push origin ci/apt-update
run: git push origin ci/apt-update --force

- name: Create Pull Request
if: env.NO_CHANGES == 'false'
uses: peter-evans/create-pull-request@v5
with:
commit-message: "chore: update apt versions in Dockerfile_ODELIA"
branch: ci/apt-update
branch-suffix: timestamp
title: "chore: Update APT versions in Dockerfile"
body: |
This PR automatically updates APT package version numbers in `Dockerfile_ODELIA`
based on a rebuild and inspection of installation logs.
base: main
delete-branch: false

Check warning

Code scanning / CodeQL

Workflow does not contain permissions Medium

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -180,3 +180,6 @@ provision

# Ignore provisioned files
/workspace/

# Ignore directory for caching pre-trained models
docker_config/torch_home_cache
Loading
Loading