Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
180 commits
Select commit Hold shift + click to select a range
e5de597
separate airflow, synapse and base medperf requirements
RodriguesRBruno Oct 30, 2025
315863a
Update dependencies in preparation for airflow
RodriguesRBruno Oct 31, 2025
9da3a3d
Implement similar functionality to Pydantic v2 parse_datetime
RodriguesRBruno Oct 31, 2025
04e7114
Add explicit None default for Optionals, as required for Pydantic v2
RodriguesRBruno Oct 31, 2025
39eb3c1
Use default factories for default empty dicts
RodriguesRBruno Oct 31, 2025
c7ce62b
Use new implementation for parse_datetime
RodriguesRBruno Oct 31, 2025
a314527
Add missing type hint required for pydantic v2
RodriguesRBruno Oct 31, 2025
38aedbd
General fixes for pydantic v2
RodriguesRBruno Nov 3, 2025
6cf6ea7
Update deprecated Pydantic functionality
RodriguesRBruno Nov 3, 2025
e9b622a
Add small tests config file to suppress yaspin color warnings
RodriguesRBruno Nov 3, 2025
349d8b5
Fix parse_datetime to support datetime objects directly
RodriguesRBruno Nov 3, 2025
f98b2fd
Bump google-cloud-secret-manager version
RodriguesRBruno Nov 3, 2025
afee7ff
Create DataPreparationWorkflow Object
RodriguesRBruno Oct 28, 2025
6b2f855
Add DataPrepWorkflow object to Dataset and Benchmark
RodriguesRBruno Oct 28, 2025
419dbec
Migrate code from workflows repo into medperf
RodriguesRBruno Oct 29, 2025
e304fbd
Standardize logging with Medperf
RodriguesRBruno Oct 29, 2025
2c23d1b
Refactor code considering local airflow installation alongside MedPerf.
RodriguesRBruno Nov 3, 2025
ee3b87c
Convert mlcube_hash field from string do JSON (dict)
RodriguesRBruno Nov 4, 2025
0c9add0
Update hashes on seed_utils.py
RodriguesRBruno Nov 5, 2025
0e3f43d
Revert "Create DataPreparationWorkflow Object"
RodriguesRBruno Nov 5, 2025
cbba26b
Revert "Add DataPrepWorkflow object to Dataset and Benchmark"
RodriguesRBruno Nov 5, 2025
30cde59
Revert "Bump google-cloud-secret-manager version"
RodriguesRBruno Nov 5, 2025
f5c32d7
Reunify requirements using the synapse development build with better …
RodriguesRBruno Nov 5, 2025
b4ea887
Revert "Convert mlcube_hash field from string do JSON (dict)"
RodriguesRBruno Nov 6, 2025
180e977
Revert "Update hashes on seed_utils.py"
RodriguesRBruno Nov 6, 2025
766e5dd
Convert image_hash field to JSONField
RodriguesRBruno Nov 6, 2025
637485a
update server tests
RodriguesRBruno Nov 6, 2025
b2efff1
Update seed_utils.py to new image hash format
RodriguesRBruno Nov 6, 2025
186cc52
Update client side code to expect hashes as dicts
RodriguesRBruno Nov 6, 2025
1519a5e
Migrate airflow_runner files to subdirectory of container/runners
RodriguesRBruno Nov 6, 2025
d6079a1
First version of airflow_parser
RodriguesRBruno Nov 6, 2025
43e0ef3
Improvements to airflow_parser
RodriguesRBruno Nov 7, 2025
2c0eba6
Fix env in db migrate command
RodriguesRBruno Nov 7, 2025
991bcaf
Add proper env when runing health checks on processor and triggerer
RodriguesRBruno Nov 10, 2025
6f94e28
Very first version of airflow_runner. Still needs finishing.
RodriguesRBruno Nov 10, 2025
3c87881
Rename file db_postgres_docker.py to explicitly mention docker
RodriguesRBruno Nov 10, 2025
a1ea28c
Add airflow import to ensure our log config overrides airflow's
RodriguesRBruno Nov 10, 2025
cfbabba
linting
RodriguesRBruno Nov 10, 2025
84cb115
Add ChestXRay data prep with workflow to examples directory
RodriguesRBruno Nov 11, 2025
468d757
Initial support for submitting workflows via "medperf container submit"
RodriguesRBruno Nov 11, 2025
9ac6cf7
Partial rework of airflow builders to use medperf-style mounts
RodriguesRBruno Nov 17, 2025
41c7082
Quick and dirty way to run workflows with medperf mounts. Needs impro…
RodriguesRBruno Nov 18, 2025
2d27fe7
remove outdated todo
RodriguesRBruno Nov 18, 2025
56850bb
parser changes necessary for quick and dirty workflow solution
RodriguesRBruno Nov 18, 2025
4e25077
Refactor quick and dirty solution for Docker/Singularity/generic cont…
RodriguesRBruno Nov 18, 2025
bcc1b77
Improve the temporary logic for mounts in Airflow
RodriguesRBruno Nov 18, 2025
3f35355
use complete imports
RodriguesRBruno Nov 18, 2025
63959ab
auto_remove containrs on successful runs
RodriguesRBruno Nov 18, 2025
3fcc103
remove old chestxray workflow, use the same one as the tutorial
RodriguesRBruno Nov 18, 2025
38dd693
Add new seeding option for workflows
RodriguesRBruno Nov 18, 2025
9399c03
Improve seeding logic. Always create 2 benchmarks (1 with workflow, 1…
RodriguesRBruno Nov 18, 2025
c4ac63c
Remove Enter prompt when systemrunner finished Airflow
RodriguesRBruno Nov 18, 2025
39e04ad
Add workflow tests
RodriguesRBruno Nov 19, 2025
3d5f399
Merge branch 'main' of https://github.com/mlcommons/medperf into add_…
RodriguesRBruno Nov 19, 2025
263867b
Merge migrations after merge
RodriguesRBruno Nov 19, 2025
6190d50
Add a TODO
RodriguesRBruno Nov 19, 2025
fdab075
Remove some TODOs
RodriguesRBruno Nov 19, 2025
685bea1
Adjustments to improve data dependencies between steps
RodriguesRBruno Nov 19, 2025
d9dddc7
Fix in logic for using mounts from other pipeline stages
RodriguesRBruno Nov 20, 2025
db5219a
Add user ID and GID to DockerOperatorBuilder
RodriguesRBruno Nov 21, 2025
4289bfc
Rename config to airflow_config to avoid confusion with medperf config
RodriguesRBruno Nov 21, 2025
d17d8b5
Update seed_utils.py seeded workflow with links and hashes relate dto…
RodriguesRBruno Nov 21, 2025
e4a4dcc
Move airflow_home for data preparation into dataset directory rather …
RodriguesRBruno Nov 21, 2025
3a760df
Implement methods is_report/metadata_specified for airflowparser
RodriguesRBruno Nov 21, 2025
3ec2123
Modify processing of report files to work with airflow files
RodriguesRBruno Nov 21, 2025
c46085b
Improve error message readability
RodriguesRBruno Nov 24, 2025
edd5658
Various improvements in preparation to HEMnet pipeline
RodriguesRBruno Nov 24, 2025
93e28e1
Avoid crash if asset events cannot be collected for checking completion
RodriguesRBruno Nov 24, 2025
644ce38
First attempt at implementing HEMnet pipeline
RodriguesRBruno Nov 24, 2025
ccecfba
Remove redundant workflow yaml file
RodriguesRBruno Nov 24, 2025
c19ed80
Update seed_utils with updated workflow file
RodriguesRBruno Nov 24, 2025
cdea2a7
Merge branch 'main' of https://github.com/mlcommons/medperf into add_…
RodriguesRBruno Nov 24, 2025
0bd3d72
Revert "Improve seeding logic. Always create 2 benchmarks (1 with wor…
RodriguesRBruno Nov 24, 2025
aae2680
Quick fix import after merge
RodriguesRBruno Nov 24, 2025
b90b77b
linting
RodriguesRBruno Nov 24, 2025
fcb188b
more fixes after merge
RodriguesRBruno Nov 25, 2025
4ee5158
Update seed_utils with newer hash for data prep workflow
RodriguesRBruno Nov 25, 2025
fddcc00
Improve tests for for running workflows
RodriguesRBruno Nov 25, 2025
0715f20
Add option to run chestxray test without running private model
RodriguesRBruno Nov 25, 2025
881ac43
Move .tmp dir into output
RodriguesRBruno Nov 25, 2025
de70157
Improve workflow file to have less repetion and use uploaded docker i…
RodriguesRBruno Nov 25, 2025
dda5fb8
remove docker container on successful runs
RodriguesRBruno Nov 25, 2025
6680250
Format out some code into separate methods
RodriguesRBruno Nov 25, 2025
ef81688
Add metadata_path to ContainerConfigMountKeys
RodriguesRBruno Nov 25, 2025
ed2ccc7
Add rano as workflow example
RodriguesRBruno Nov 25, 2025
00e9933
Improve parser logic so only a single yaml file is directly sent and …
RodriguesRBruno Nov 25, 2025
521987c
Remove symlinkin workflow yaml file into additional files directory; …
RodriguesRBruno Nov 25, 2025
1643696
Remove unused options
RodriguesRBruno Nov 26, 2025
af2a580
Fix imports
RodriguesRBruno Nov 26, 2025
0a40ff2
Modify gitignore and add missing additional_files
RodriguesRBruno Nov 26, 2025
0b1ef19
Delete proper .tmp directory on cleanup step
RodriguesRBruno Nov 26, 2025
934b7dc
Update workflow.yaml for RANO
RodriguesRBruno Nov 26, 2025
ac51097
Add link to image on dockerhub
RodriguesRBruno Nov 26, 2025
4664951
Include dev workflow .yaml file
RodriguesRBruno Nov 26, 2025
f69dabd
Fiz bug in is_metadata_specified method
RodriguesRBruno Nov 26, 2025
ec48c3a
update gitignore
RodriguesRBruno Nov 26, 2025
09575ae
Merge branch 'main' of https://github.com/mlcommons/medperf into add_…
RodriguesRBruno Dec 1, 2025
1f48dd6
Update migrations after merge
RodriguesRBruno Dec 1, 2025
e49d190
Fix workflow seeding after merge
RodriguesRBruno Dec 1, 2025
30fa917
Various adjustements and fixes after merging in the container ID changes
RodriguesRBruno Dec 1, 2025
4d2c47e
Add validator for image_hash
RodriguesRBruno Dec 1, 2025
e5241e0
Utility function to get expected hash by image name or "default" key …
RodriguesRBruno Dec 1, 2025
ef82700
Modify migrations and seed_utils to create image hash by image name/t…
RodriguesRBruno Dec 1, 2025
ffd0dd8
Remove unused attribute causing error
RodriguesRBruno Dec 1, 2025
f10a9ff
Remove unused method
RodriguesRBruno Dec 1, 2025
05d8e14
Add is_workflow property to override base class property. Base class …
RodriguesRBruno Dec 1, 2025
4f55fe1
Remove unnecessary TODO
RodriguesRBruno Dec 1, 2025
609118b
Update one wrong hash in seeded model container
RodriguesRBruno Dec 1, 2025
8124f7d
Rename directory to "data_preparator_workflow" for clarity
RodriguesRBruno Dec 2, 2025
3ad4a9d
Update report.yaml every 60 seconds rather than every second
RodriguesRBruno Dec 2, 2025
162dc58
Update seed.py and seed_utils.py with option to seed the RANO Dev wor…
RodriguesRBruno Dec 2, 2025
b6c5a59
Add a README for the RANO example
RodriguesRBruno Dec 2, 2025
2e932b0
Use dev workflow in rano demo
RodriguesRBruno Dec 2, 2025
77fec79
Update "prepare_manual_review" step to be called simply "manual_review"
RodriguesRBruno Dec 2, 2025
8b2a18f
Fix bug in seed.py
RodriguesRBruno Dec 2, 2025
7d70741
Move rm command outside of private container conditionals
RodriguesRBruno Dec 2, 2025
f200e40
Tentative additions for first implementation of running singularity c…
RodriguesRBruno Dec 2, 2025
2bc735c
Fix section numberings in README for RANO example
RodriguesRBruno Dec 2, 2025
20563c8
Merge branch 'main' of https://github.com/mlcommons/medperf into add_…
RodriguesRBruno Dec 3, 2025
1652fbf
Modify migrations after merging in python update
RodriguesRBruno Dec 3, 2025
6ffdebf
Add logic to auto-restart running interrupted tasks on airflow restarts
RodriguesRBruno Dec 3, 2025
97cbe48
add option of running data prep without cached results
RodriguesRBruno Dec 4, 2025
6c0926b
linting
RodriguesRBruno Dec 4, 2025
2ff6798
Fix migration
RodriguesRBruno Dec 4, 2025
3a4cba7
Remove unusued airflow_requirements variable
RodriguesRBruno Dec 4, 2025
522a8bf
Remove async_timeout import. No longer needed in Python 3.11
RodriguesRBruno Dec 4, 2025
3fae907
Update tests with separate venv for the Medperf server
RodriguesRBruno Dec 4, 2025
534506d
Create server venv in server directory for easily activating when rel…
RodriguesRBruno Dec 4, 2025
f289d1b
add back flake8 and pytest installations into this workflow
RodriguesRBruno Dec 4, 2025
a5f4ca3
Remove CLI argument that is no longer needed
RodriguesRBruno Dec 4, 2025
5b1eacb
misc test fixes
RodriguesRBruno Dec 4, 2025
499819e
exclude server venv from flake8
RodriguesRBruno Dec 4, 2025
c31da10
Revert "Remove CLI argument that is no longer needed"
RodriguesRBruno Dec 4, 2025
893f6a7
add back --containers-assets-path option for tests
RodriguesRBruno Dec 4, 2025
7868573
force reset_db on refresh DB step
RodriguesRBruno Dec 4, 2025
e022d08
Add serializer to avoid empty image_hash as a JSONField
RodriguesRBruno Dec 4, 2025
a43c191
Update tests
RodriguesRBruno Dec 4, 2025
9161116
Separate reseting and reseeding DB so hopefully it works
RodriguesRBruno Dec 4, 2025
59bdfa6
reset postgressql db on tests too
RodriguesRBruno Dec 4, 2025
dc16fca
Fix usage of asyncio.timeout
RodriguesRBruno Dec 4, 2025
4b0d668
change default postgresql port to avoid conflicts
RodriguesRBruno Dec 4, 2025
a56d910
Remove logging statement
RodriguesRBruno Dec 5, 2025
cc212fb
Add debug logging statements if PostgresDB for airflow does not start
RodriguesRBruno Dec 5, 2025
5781650
Loosen requirements for starting Airflow compoments
RodriguesRBruno Dec 5, 2025
36321e2
Revert "Loosen requirements for starting Airflow compoments"
RodriguesRBruno Dec 5, 2025
ad51dbf
change debugging statements to print so they show up on GHA
RodriguesRBruno Dec 5, 2025
7ff2758
Remove unnecessary -it flag
RodriguesRBruno Dec 5, 2025
d6ffcfb
Revert "change debugging statements to print so they show up on GHA"
RodriguesRBruno Dec 5, 2025
770d77f
Rename instances of "per_subject" to "partitions" for more general us…
RodriguesRBruno Dec 8, 2025
01ab0a0
Remove unused filçe
RodriguesRBruno Dec 8, 2025
d346ab4
Send None rather than empty string if no decryption key to avoid bein…
RodriguesRBruno Dec 9, 2025
456efc9
Move client.py and airflow_monitor.py up one directory
RodriguesRBruno Dec 9, 2025
5014daa
Remove unnecessary user/pass from airflow scheduler
RodriguesRBruno Dec 9, 2025
dc10644
shorten imports for readability
RodriguesRBruno Dec 9, 2025
b9e9a91
Add auto-approval script to automatically do manual review for testing
RodriguesRBruno Dec 9, 2025
33af343
refactoring
RodriguesRBruno Dec 9, 2025
0019709
Refactor download method so that Docker/singularity runner can take i…
RodriguesRBruno Dec 10, 2025
3af7e5c
linting
RodriguesRBruno Dec 10, 2025
abe808f
Return hashes on AirflowRunner
RodriguesRBruno Dec 11, 2025
64ebf1d
Use "default" key always for hashes in simple containers
RodriguesRBruno Dec 11, 2025
63a60c5
Refactor private model code paths into separate file for maintainability
RodriguesRBruno Dec 11, 2025
2192f53
Simplify BearerAuth
RodriguesRBruno Dec 11, 2025
48e21ec
Refactor download functionality for both Docker and Singularity so it…
RodriguesRBruno Dec 11, 2025
dfbc645
Remove unused import
RodriguesRBruno Dec 11, 2025
958e97e
fix import
RodriguesRBruno Dec 11, 2025
6196f98
Fix method call
RodriguesRBruno Dec 11, 2025
e8d5cb2
Remove image_hash validator from Cube class. Convert string hashes in…
RodriguesRBruno Dec 11, 2025
dd32afb
linting
RodriguesRBruno Dec 11, 2025
fef44b3
Refactor AirflowClient. Make get_token public and allow it to be call…
RodriguesRBruno Dec 15, 2025
240e6a5
Create auto-login plugin and make the link generated by SystemRunner …
RodriguesRBruno Dec 15, 2025
c0c3ded
Upgrade airflow version
RodriguesRBruno Dec 15, 2025
9273e2e
Use self.port on healthcheck url
RodriguesRBruno Dec 15, 2025
5464aac
Update auto-login plugin for airflow 3.1.15
RodriguesRBruno Dec 15, 2025
858d0e9
linting
RodriguesRBruno Dec 15, 2025
dff1aa3
Add small documentation about get_token_async
RodriguesRBruno Dec 16, 2025
520aa67
Update RANO README.md with auto_login
RodriguesRBruno Dec 16, 2025
824a7e1
Modify instance name
RodriguesRBruno Dec 16, 2025
916e91d
Fix errors in HEMnet README.md
RodriguesRBruno Dec 18, 2025
3db6eec
Send correct email into airflow configuration
RodriguesRBruno Dec 18, 2025
6e90053
Use the new ApprovalOperator for ManualApproval steps. Update RANO RE…
RodriguesRBruno Dec 18, 2025
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
24 changes: 18 additions & 6 deletions .github/workflows/auth-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,30 +26,42 @@ jobs:
with:
python-version: '3.11'

- name: Install dependencies
- name: Install dependencies - Client
working-directory: .
run: |
python -m pip install --upgrade pip
pip install -e cli/
pip install -r cli/test-requirements.txt
pip install -r server/requirements.txt
pip install -r server/test-requirements.txt

- name: Install Dependencies - Server
working-directory: ./server
run: |
python -m venv .venv_server
source .venv_server/bin/activate
pip install -r requirements.txt
pip install -r test-requirements.txt

- name: Set server environment vars
working-directory: ./server
run: cp .env.local.online-auth .env

- name: Run postgresql server in background
working-directory: ./server
run: sh run_dev_postgresql.sh && sleep 6
run: |
python -m venv .venv_server
sh run_dev_postgresql.sh && sleep 6

- name: Run django server in background with generated certs
working-directory: ./server
run: sh setup-dev-server.sh & sleep 6
run: |
python -m venv .venv_server
sh setup-dev-server.sh & sleep 6

- name: Run server integration tests
working-directory: ./server
run: python seed.py --cert cert.crt --auth online
run: |
python -m venv .venv_server
python seed.py --cert cert.crt --auth online

- name: Run client integration tests
working-directory: .
Expand Down
17 changes: 13 additions & 4 deletions .github/workflows/docker-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,22 +34,31 @@ jobs:
make
sudo make install

- name: Install dependencies
- name: Install dependencies - Client
working-directory: .
run: |
python -m pip install --upgrade pip
pip install -e cli/
pip install -r cli/test-requirements.txt
pip install -r server/requirements.txt
pip install -r server/test-requirements.txt

- name: Install Dependencies - Server
working-directory: ./server
run: |
python -m venv .venv_server
source .venv_server/bin/activate
pip install -r requirements.txt
pip install -r test-requirements.txt


- name: Set server environment vars
working-directory: ./server
run: cp .env.local.local-auth.sqlite .env

- name: Generate SSL certificate
working-directory: ./server
run: sh setup-dev-server.sh -c cert.crt -k cert.key -d 0
run: |
python -m venv .venv_server
sh setup-dev-server.sh -c cert.crt -k cert.key -d 0

- name: Build container image
working-directory: ./server
Expand Down
24 changes: 18 additions & 6 deletions .github/workflows/encrypted-containers-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,30 +34,42 @@ jobs:
make
sudo make install

- name: Install dependencies
- name: Install dependencies - Client
working-directory: .
run: |
python -m pip install --upgrade pip
pip install -e cli/
pip install -r cli/test-requirements.txt
pip install -r server/requirements.txt
pip install -r server/test-requirements.txt

- name: Install Dependencies - Server
working-directory: ./server
run: |
python -m venv .venv_server
source .venv_server/bin/activate
pip install -r requirements.txt
pip install -r test-requirements.txt

- name: Set server environment vars
working-directory: ./server
run: cp .env.local.local-auth .env

- name: Run postgresql server in background
working-directory: ./server
run: sh run_dev_postgresql.sh && sleep 6
run: |
source .venv_server/bin/activate
sh run_dev_postgresql.sh && sleep 6

- name: Run django server in background with generated certs
working-directory: ./server
run: sh setup-dev-server.sh & sleep 6
run: |
source .venv_server/bin/activate
sh setup-dev-server.sh & sleep 6

- name: Run server integration tests
working-directory: ./server
run: python seed.py --cert cert.crt
run: |
source .venv_server/bin/activate
python seed.py --cert cert.crt

- name: Run client integration tests
working-directory: .
Expand Down
43 changes: 36 additions & 7 deletions .github/workflows/local-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,32 +34,61 @@ jobs:
make
sudo make install

- name: Install dependencies
- name: Install dependencies - Client
working-directory: .
run: |
python -m pip install --upgrade pip
pip install -e cli/
pip install -r cli/test-requirements.txt
pip install -r server/requirements.txt
pip install -r server/test-requirements.txt

- name: Install Dependencies - Server
working-directory: ./server
run: |
python -m venv .venv_server
source .venv_server/bin/activate
pip install -r requirements.txt
pip install -r test-requirements.txt

- name: Set server environment vars
working-directory: ./server
run: cp .env.local.local-auth .env

- name: Run postgresql server in background
working-directory: ./server
run: sh run_dev_postgresql.sh && sleep 6
run: |
source .venv_server/bin/activate
sh run_dev_postgresql.sh && sleep 6

- name: Run django server in background with generated certs
working-directory: ./server
run: sh setup-dev-server.sh & sleep 6
run: |
source .venv_server/bin/activate
sh setup-dev-server.sh & sleep 6

- name: Run server integration tests
working-directory: ./server
run: python seed.py --cert cert.crt
run: |
source .venv_server/bin/activate
python seed.py --cert cert.crt

- name: Run chestxray demo including private model
working-directory: .
run: sh cli/cli_chestxray_tutorial_test.sh -f -p

- name: Reset DB for Workflow test
working-directory: ./server
run: |
source .venv_server/bin/activate
sh reset_db.sh
sh reset_db_postgresql.sh

- name: Seed DB for Workflow test
working-directory: ./server
run: |
source .venv_server/bin/activate
python seed.py --cert cert.crt -w

- name: Run chestxray demo
- name: Run chestxray demo with workflow (no private model)
working-directory: .
run: sh cli/cli_chestxray_tutorial_test.sh -f

Expand Down
24 changes: 18 additions & 6 deletions .github/workflows/train-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,30 +15,42 @@ jobs:
with:
python-version: '3.11'

- name: Install dependencies
- name: Install dependencies - Client
working-directory: .
run: |
python -m pip install --upgrade pip
pip install -e cli/
pip install -r cli/test-requirements.txt
pip install -r server/requirements.txt
pip install -r server/test-requirements.txt

- name: Install Dependencies - Server
working-directory: ./server
run: |
python -m venv .venv_server
source .venv_server/bin/activate
pip install -r requirements.txt
pip install -r test-requirements.txt

- name: Set server environment vars
working-directory: ./server
run: cp .env.local.local-auth .env

- name: Run postgresql server in background
working-directory: ./server
run: sh run_dev_postgresql.sh && sleep 6
run: |
source .venv_server/bin/activate
sh run_dev_postgresql.sh && sleep 6

- name: Run django server in background with generated certs
working-directory: ./server
run: sh setup-dev-server.sh & sleep 6
run: |
source .venv_server/bin/activate
sh setup-dev-server.sh & sleep 6

- name: Run server integration tests
working-directory: ./server
run: python seed.py --cert cert.crt
run: |
source .venv_server/bin/activate
python seed.py --cert cert.crt

- name: Run client integration tests
working-directory: .
Expand Down
30 changes: 24 additions & 6 deletions .github/workflows/unittests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,23 @@ jobs:
uses: actions/setup-python@v2
with:
python-version: 3.11
- name: Install dependencies

- name: Install dependencies - Client
working-directory: .
run: |
python -m pip install --upgrade pip
pip install flake8 pytest
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
if [ -f cli/requirements.txt ]; then pip install -e cli; fi
pip install -r server/requirements.txt
pip install -r server/test-requirements.txt

- name: Install Dependencies - Server
working-directory: ./server
run: |
python -m venv .venv_server
source .venv_server/bin/activate
pip install -r requirements.txt
pip install -r test-requirements.txt

- name: Lint with flake8
run: |
# stop the build if there are Python syntax errors or undefined names
Expand All @@ -34,20 +43,29 @@ jobs:
# Exclude examples folder as it doesn't contain code related to medperf tools
# Exclude migrations folder as it contains autogenerated code
# Ignore E231, as it is raising warnings with auto-generated code.
flake8 . --count --max-complexity=10 --max-line-length=127 --ignore F821,W503,E231 --statistics --exclude=examples/,"*/migrations/*",cli/medperf/templates/
flake8 . --count --max-complexity=10 --max-line-length=127 --ignore F821,W503,E231 --statistics --exclude=examples/,"*/migrations/*",cli/medperf/templates/,server/.venv_server/

- name: Test with pytest
working-directory: ./cli/medperf/tests
run: |
pytest

- name: Set server environment vars
working-directory: ./server
run: cp .env.local.local-auth .env

- name: Run postgresql server in background
working-directory: ./server
run: sh run_dev_postgresql.sh && sleep 6

- name: Run migrations
working-directory: ./server
run: python manage.py migrate
run: |
source .venv_server/bin/activate
python manage.py migrate

- name: Run server unit tests
working-directory: ./server
run: python manage.py test --parallel
run: |
source .venv_server/bin/activate
python manage.py test --parallel
24 changes: 18 additions & 6 deletions .github/workflows/webui-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,30 +15,42 @@ jobs:
with:
python-version: '3.11'

- name: Install dependencies
- name: Install dependencies - Client
working-directory: .
run: |
python -m pip install --upgrade pip
pip install -e cli/
pip install -r cli/test-requirements.txt
pip install -r server/requirements.txt
pip install -r server/test-requirements.txt

- name: Install Dependencies - Server
working-directory: ./server
run: |
python -m venv .venv_server
source .venv_server/bin/activate
pip install -r requirements.txt
pip install -r test-requirements.txt

- name: Set server environment vars
working-directory: ./server
run: cp .env.local.local-auth .env

- name: Run postgresql server in background
working-directory: ./server
run: sh run_dev_postgresql.sh && sleep 6
run: |
source .venv_server/bin/activate
sh run_dev_postgresql.sh && sleep 6

- name: Run django server in background with generated certs
working-directory: ./server
run: sh setup-dev-server.sh & sleep 6
run: |
source .venv_server/bin/activate
sh setup-dev-server.sh & sleep 6

- name: Reset and seed database with tutorial data
working-directory: ./server
run: sh reset_db.sh && python seed.py --demo tutorial
run: |
source .venv_server/bin/activate
sh reset_db.sh && python seed.py --demo tutorial

- name: Set up tutorial files
working-directory: .
Expand Down
Loading
Loading