Skip to content

Manifest creation (external packages) #263

Manifest creation (external packages)

Manifest creation (external packages) #263

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