Skip to content

Commit

Permalink
Set up GitHub Actions Workflow for Testing Parsl with Flux (#3159)
Browse files Browse the repository at this point in the history
This pull request introduces a new GitHub Actions workflow aimed at testing Parsl's integration with Flux.
  • Loading branch information
mercybassey authored Jun 10, 2024
1 parent b9aa3dd commit 5973f39
Show file tree
Hide file tree
Showing 3 changed files with 63 additions and 0 deletions.
47 changes: 47 additions & 0 deletions .github/workflows/parsl+flux.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: Test Flux Scheduler
on:
pull_request: []

jobs:
build:
runs-on: ubuntu-22.04
permissions:
packages: read
strategy:
fail-fast: false
matrix:
container: ['fluxrm/flux-sched:jammy']
timeout-minutes: 30

container:
image: ${{ matrix.container }}
options: "--platform=linux/amd64 --user root -it --init"

name: ${{ matrix.container }}
steps:
- name: Make Space
run: |
rm -rf /usr/share/dotnet
rm -rf /opt/ghc
- name: Checkout
uses: actions/checkout@v3

- name: Install Dependencies and Parsl
run: |
apt-get update && apt-get install -y python3-pip curl
pip3 install . -r test-requirements.txt
- name: Verify Parsl Installation
run: |
pytest parsl/tests/ -k "not cleannet and not unix_filesystem_permissions_required" --config parsl/tests/configs/local_threads.py --random-order --durations 10
- name: Start Flux and Test Parsl with Flux
run: |
flux start pytest parsl/tests/test_flux.py --config local --random-order
- name: Test Parsl with Flux Config
run: |
flux start pytest parsl/tests/ -k "not cleannet and not unix_filesystem_permissions_required" --config parsl/tests/configs/flux_local.py --random-order --durations 10
5 changes: 5 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -127,3 +127,8 @@ coverage: ## show the coverage report
.PHONY: clean
clean: ## clean up the environment by deleting the .venv, dist, eggs, mypy caches, coverage info, etc
rm -rf .venv $(DEPS) dist *.egg-info .mypy_cache build .pytest_cache .coverage runinfo $(WORKQUEUE_INSTALL)

.PHONY: flux_local_test
flux_local_test: ## Test Parsl with Flux Executor
pip3 install .
pytest parsl/tests/ -k "not cleannet" --config parsl/tests/configs/flux_local.py --random-order --durations 10
11 changes: 11 additions & 0 deletions parsl/tests/configs/flux_local.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
from parsl.config import Config
from parsl.executors import FluxExecutor


def fresh_config():
return Config(
executors=[FluxExecutor()],
)


config = fresh_config()

0 comments on commit 5973f39

Please sign in to comment.