Fed-BioMed Build test #1470
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Fed-BioMed Build test | |
run-name: Fed-BioMed Build test | |
on: | |
pull_request: | |
types: | |
- opened | |
- synchronize | |
- reopened | |
- closed | |
- review_requested | |
- ready_for_review | |
branches: | |
- master | |
- develop | |
- 'feature/479-bug-in-integration-test' # \todo To remove when merging. | |
jobs: | |
build-doc: | |
name: Test documentation build | |
runs-on: ubuntu-latest | |
# if: ${{ github.event_name == 'push' || github.event.pull_request.opened == true }} | |
if: github.event.pull_request.draft == false | |
steps: | |
- name: Checkout to repository | |
uses: actions/checkout@v3 | |
- name: Detect documentation changes | |
uses: dorny/paths-filter@master | |
id: filter | |
with: | |
filters: | | |
docs: | |
- 'fedbiomed/**' | |
- 'scripts/docs/**' | |
- 'docs/**' | |
- 'envs/development/**' | |
- 'envs/build/**' | |
- 'mkdocs.yml' | |
- 'README.md' | |
- name: Setup python | |
if: steps.filter.outputs.docs == 'true' | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.11' | |
- name: Install Dependencies | |
if: steps.filter.outputs.docs == 'true' | |
run: pip install -r envs/build/docs-requirements.txt | |
- name: Build documentation | |
if: steps.filter.outputs.docs == 'true' | |
# Version number for testing purposes should respect to standart which is vMajor.Minor.Patch | |
run: scripts/docs/fedbiomed_doc.sh --build-dir build-repo --build-main --build-current-as v1.0.1 | |
unit-test: | |
name: unit tests | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-22-04, fedora38, macosx-m1] | |
runs-on: ${{ matrix.os }} | |
if: github.event.pull_request.draft == false | |
steps: | |
- name: Checkout to commit | |
uses: actions/checkout@v3 | |
- name: Filter module related changes | |
uses: dorny/paths-filter@master | |
id: filter | |
with: | |
filters: | | |
module: | |
- 'fedbiomed/**' | |
- 'scripts/**' | |
- 'tests/**' | |
- 'envs/development/conda/**' | |
- 'envs/build/**' | |
- 'modules/**' | |
- '.github/**' | |
- name: Run unit tests | |
id: unit-test | |
uses: ./.github/actions/unit-tests | |
if: steps.filter.outputs.module == 'true' | |
with: | |
test-dir: tests | |
- name: Upload coverage reports to Codecov | |
if: steps.filter.outputs.module == 'true' && matrix.os != 'macosx-m1' | |
uses: codecov/codecov-action@v3 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
files: tests/coverage.xml | |
flags: unittests-${{ matrix.os }} # optional | |
name: codecov-umbrella # optional | |
fail_ci_if_error: true # optional (default = false) | |
verbose: true # optional (default = false) | |
- name: Notify upload impossible on m1 | |
if: steps.filter.outputs.module == 'true' && matrix.os == 'macosx-m1' | |
run: | | |
echo "No codecov-action available for macos-m1" # to check from time to time | |
mnist-test: | |
name: Test MNIST Notebook | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-22-04, fedora38, macosx-m1] | |
runs-on: ${{ matrix.os }} | |
needs: unit-test | |
if: github.event.pull_request.draft == false | |
steps: | |
- name: Checkout to commit | |
uses: actions/checkout@v3 | |
- name: Filter module related changes | |
uses: dorny/paths-filter@master | |
id: filter | |
with: | |
filters: | | |
module: | |
- 'fedbiomed/**' | |
- 'scripts/**' | |
- 'envs/development/conda/**' | |
- 'notebooks/**' | |
- '.github/**' | |
- name: Run MNIST Test - Master | |
if: steps.filter.outputs.module == 'true' | |
run: | | |
source ~/.bashrc | |
./scripts/configure_conda node | |
./scripts/run_test_mnist ../../../.. | |
shell: bash -l {0} | |