Manifest creation (external packages) #199
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: Manifest creation (external packages) | |
on: | |
push: | |
branches: ["main"] | |
pull_request: | |
branches: ["main"] | |
workflow_dispatch: | |
schedule: | |
- cron: "0 23 * * 2,3,4" | |
jobs: | |
test-manifest-creation: | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false # Do not make the whole matrix fail if one element fails | |
matrix: | |
package: [skip] | |
github_repo: [skip] | |
github_branch: [skip] | |
manifest_path: [skip] | |
cmd_install: [skip] | |
cmd_create_manifest: [skip] | |
custom_dependencies: [skip] | |
include: | |
- package: scMultipleX | |
github_repo: fmi-basel/gliberal-scMultipleX | |
github_branch: main | |
manifest_path: src/scmultiplex/__FRACTAL_MANIFEST__.json | |
cmd_install: 'python -m pip install -e .[fractal-tasks]' | |
cmd_create_manifest: 'python src/scmultiplex/dev/create_manifest.py' | |
custom_dependencies: 'image_registration' | |
- package: fractal-helper-tasks | |
github_repo: jluethi/fractal-helper-tasks | |
github_branch: main | |
manifest_path: src/fractal_helper_tasks/__FRACTAL_MANIFEST__.json | |
cmd_install: 'python -m pip install -e .' | |
cmd_create_manifest: 'python src/fractal_helper_tasks/dev/create_manifest.py' | |
custom_dependencies: '' | |
- package: APx_fractal_task_collection | |
github_repo: Apricot-Therapeutics/APx_fractal_task_collection | |
github_branch: main | |
manifest_path: src/apx_fractal_task_collection/__FRACTAL_MANIFEST__.json | |
cmd_install: 'python -m pip install -e .' | |
cmd_create_manifest: 'python src/apx_fractal_task_collection/dev/update_manifest.py' | |
custom_dependencies: '' | |
exclude: | |
- package: skip | |
github_repo: skip | |
github_branch: skip | |
manifest_path: skip | |
cmd_install: skip | |
cmd_create_manifest: skip | |
custom_dependencies: skip | |
steps: | |
- name: Print matrix-element information | |
run: echo '${{ matrix.package }}, ${{ matrix.github_repo }}, ${{ matrix.cmd_install }}, ${{ matrix.cmd_create_manifest }}, ${{ matrix.manifest_path }}' | |
- name: Get package source code | |
uses: actions/checkout@v4 | |
with: | |
repository: ${{ matrix.github_repo }} | |
ref: ${{ matrix.github_branch }} | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.10' | |
cache: 'pip' | |
- name: Update pip | |
run: python -m pip install --upgrade pip | |
- name: Install package | |
run: ${{ matrix.cmd_install }} | |
- name: Get current branch of `fractal-tasks-core` | |
uses: actions/checkout@v4 | |
with: | |
path: fractal-tasks-core | |
- name: Install current fractal-tasks-core (this may fail) | |
run: python -m pip install -e ./fractal-tasks-core | |
- name: Install custom additional dependencies (see issue 803) | |
if: ${{ matrix.custom_dependencies != '' }} | |
run: python -m pip install ${{ matrix.custom_dependencies }} | |
- name: Create manifest | |
run: ${{ matrix.cmd_create_manifest }} | |
- name: Setup friendly diff style | |
run: echo "*.json diff=json" >> .gitattributes && git config diff.json.textconv "jq --sort-keys '.' \$1" | |
- name: Run git diff for manifest | |
run: git diff ${{ matrix.manifest_path }} | |
- name: Clean up before checking repo status | |
run: rm -rf fractal-tasks-core .gitattributes | |
- name: Check repo status | |
run: if [[ -z $(git status -s) ]]; then echo "Clean status"; else echo "Dirty status"; git status; exit 1; fi |