3232 name : WF Functional Without TLS
3333 runs-on : ubuntu-22.04
3434 timeout-minutes : 15
35- strategy :
36- matrix :
37- python_version : ["3.10"]
38- fail-fast : false # do not immediately fail if one of the combinations fail
35+ env :
36+ PYTHON_VERSION : ' 3.10'
3937
4038 steps :
4139 - name : Checkout OpenFL repository
4644 submodules : " true"
4745 token : ${{ secrets.GITHUB_TOKEN }}
4846
49- - name : Set up Python
50- id : setup_python
51- uses : actions/setup-python@v5
52- with :
53- python-version : ${{ matrix.python_version }}
54-
55- - name : Install dependencies
56- id : install_dependencies
57- run : |
58- python -m pip install --upgrade pip
59- pip install .
60- pip install -r test-requirements.txt
61- pip install -r openfl-tutorials/experimental/workflow/workflow_interface_requirements.txt
47+ - name : Pre test run
48+ uses : ./.github/actions/wf_pre_test_run
49+ if : ${{ always() }}
6250
6351 - name : Run Work Flow Functional tests
6452 id : run_tests
8674 uses : actions/upload-artifact@v4
8775 if : ${{ always() }}
8876 with :
89- name : wf_func_ ${{ github.event.inputs.model_name || 'default_model' }}_python${{ matrix.python_version }}_${{ github.run_id }}
77+ name : wf_func_python ${{ env.PYTHON_VERSION }}_${{ github.run_id }}
9078 path : result.tar
79+
80+ test_wf_ray_backend_func_tests :
81+ if : github.event.pull_request.draft == false
82+ name : WF Functional Ray Backend
83+ runs-on : ubuntu-22.04
84+ needs : test_wf_functional_local_runtime
85+ timeout-minutes : 15
86+ env :
87+ PYTHON_VERSION : ' 3.11'
88+
89+ steps :
90+ - name : Checkout OpenFL repository
91+ id : checkout_openfl
92+ uses : actions/checkout@v4
93+ with :
94+ fetch-depth : 2 # needed for detecting changes
95+ submodules : " true"
96+ token : ${{ secrets.GITHUB_TOKEN }}
97+
98+ - name : Pre test run
99+ uses : ./.github/actions/wf_pre_test_run
100+ if : ${{ always() }}
101+
102+ - name : Run Work Flow Functional tests (Ray Backend)
103+ id : run_tests
104+ run : |
105+ python -m pytest -s tests/end_to_end/test_suites/wf_local_func_tests.py \
106+ --num_rounds ${{ env.NUM_ROUNDS }} --num_collaborators ${{ env.NUM_COLLABORATORS }} --workflow_backend ray
107+ echo "Work Flow Functional tests run completed"
108+
109+ - name : Print test summary
110+ id : print_test_summary
111+ if : ${{ always() }}
112+ run : |
113+ export PYTHONPATH="$PYTHONPATH:."
114+ python tests/end_to_end/utils/summary_helper.py --func_name "print_local_runtime_score"
115+ echo "Test summary printed"
116+
117+ - name : Create Tar (exclude cert and data folders)
118+ id : tar_files
119+ if : ${{ always() }}
120+ run : |
121+ tar -cvf result.tar --exclude="cert" --exclude="data" --exclude="__pycache__" $HOME/results
122+
123+ - name : Upload Artifacts
124+ id : upload_artifacts
125+ uses : actions/upload-artifact@v4
126+ if : ${{ always() }}
127+ with :
128+ name : wf_func_ray_python${{ env.PYTHON_VERSION }}_${{ github.run_id }}
129+ path : result.tar
0 commit comments