bump to 24.1 - Single-container setup #200
Workflow file for this run
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: pr-test | |
on: pull_request | |
jobs: | |
test: | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: | |
infrastructure: | |
- name: galaxy-base | |
files: -f docker-compose.yml | |
exclude_test: | |
- workflow_example1 | |
- name: galaxy-proxy-prefix | |
files: -f docker-compose.yml | |
env: GALAXY_PROXY_PREFIX=/arbitrary_Galaxy-prefix GALAXY_CONFIG_GALAXY_INFRASTRUCTURE_URL=http://localhost/arbitrary_Galaxy-prefix | |
exclude_test: | |
- workflow_example1 | |
- name: galaxy-htcondor | |
files: -f docker-compose.yml -f docker-compose.htcondor.yml | |
exclude_test: | |
- workflow_example1 | |
- name: galaxy-slurm | |
files: -f docker-compose.yml -f docker-compose.slurm.yml | |
env: SLURM_NODE_COUNT=3 | |
options: --scale slurm_node=3 | |
exclude_test: | |
- workflow_example1 | |
- name: galaxy-pulsar | |
files: -f docker-compose.yml -f docker-compose.pulsar.yml | |
exclude_test: | |
- workflow_example1 | |
- workflow_mapping_by_sequencing | |
- workflow_ard | |
- name: galaxy-pulsar-mq | |
files: -f docker-compose.yml -f docker-compose.pulsar.yml -f docker-compose.pulsar.mq.yml | |
exclude_test: | |
- workflow_example1 | |
- workflow_mapping_by_sequencing | |
- workflow_ard | |
- name: galaxy-k8s | |
files: -f docker-compose.yml -f docker-compose.k8s.yml | |
exclude_test: | |
- bioblend | |
- workflow_ard | |
- workflow_mapping_by_sequencing | |
- workflow_example1 | |
- selenium | |
- name: galaxy-singularity | |
files: -f docker-compose.yml -f docker-compose.singularity.yml | |
exclude_test: | |
- bioblend | |
- workflow_ard | |
- workflow_mapping_by_sequencing | |
- selenium | |
- name: galaxy-pulsar-mq-singularity | |
files: -f docker-compose.yml -f docker-compose.pulsar.yml -f docker-compose.pulsar.mq.yml -f docker-compose.singularity.yml | |
exclude_test: | |
- bioblend | |
- workflow_ard | |
- workflow_mapping_by_sequencing | |
- selenium | |
- name: galaxy-slurm-singularity | |
files: -f docker-compose.yml -f docker-compose.slurm.yml -f docker-compose.singularity.yml | |
exclude_test: | |
- bioblend | |
- workflow_ard | |
- workflow_mapping_by_sequencing | |
- selenium | |
- name: galaxy-htcondor-singularity | |
files: -f docker-compose.yml -f docker-compose.htcondor.yml -f docker-compose.singularity.yml | |
exclude_test: | |
- bioblend | |
- workflow_ard | |
- workflow_mapping_by_sequencing | |
- selenium | |
test: | |
- name: bioblend | |
files: -f tests/docker-compose.test.yml -f tests/docker-compose.test.bioblend.yml | |
exit-from: galaxy-bioblend-test | |
timeout: 60 | |
second_run: "true" | |
- name: workflow_ard | |
files: -f tests/docker-compose.test.yml -f tests/docker-compose.test.workflows.yml | |
exit-from: galaxy-workflow-test | |
workflow: sklearn/ard/ard.ga | |
timeout: 60 | |
second_run: "true" | |
- name: workflow_mapping_by_sequencing | |
files: -f tests/docker-compose.test.yml -f tests/docker-compose.test.workflows.yml | |
exit-from: galaxy-workflow-test | |
workflow: training/variant-analysis/mapping-by-sequencing/mapping_by_sequencing.ga | |
timeout: 60 | |
- name: workflow_example1 | |
files: -f tests/docker-compose.test.yml -f tests/docker-compose.test.workflows.yml | |
exit-from: galaxy-workflow-test | |
workflow: example1/wf3-shed-tools.ga | |
timeout: 60 | |
- name: selenium | |
files: -f tests/docker-compose.test.yml -f tests/docker-compose.test.selenium.yml | |
exit-from: galaxy-selenium-test | |
timeout: 60 | |
fail-fast: false | |
steps: | |
# Self-made `exclude` as Github Actions currently does not support | |
# exclude/including of dicts in matrices | |
- name: Check if test should be run | |
id: run_check | |
if: contains(matrix.infrastructure.exclude_test, matrix.test.name) != true | |
run: echo "run=true" >> $GITHUB_OUTPUT | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Set WORKFLOWS env for worfklows-test | |
if: matrix.test.workflow | |
run: echo "WORKFLOWS=${{ matrix.test.workflow }}" >> $GITHUB_ENV | |
- name: Build galaxy-container-base | |
env: | |
image_name: galaxy-container-base | |
run: | | |
docker buildx build \ | |
--output "type=image,name=quay.io/bgruening/$image_name:ci-testing" \ | |
--build-arg IMAGE_TAG=ci-testing \ | |
$image_name | |
working-directory: ./compose/base-images | |
- name: Build galaxy-cluster-base | |
env: | |
image_name: galaxy-cluster-base | |
run: | | |
docker buildx build \ | |
--output "type=image,name=quay.io/bgruening/$image_name:ci-testing" \ | |
--build-arg IMAGE_TAG=ci-testing \ | |
$image_name | |
working-directory: ./compose/base-images | |
- name: Install Docker Compose | |
run: | | |
sudo apt-get update -qq && sudo apt-get install docker-compose -y | |
- name: Run tests for the first time | |
if: steps.run_check.outputs.run | |
run: | | |
export IMAGE_TAG=ci-testing | |
export COMPOSE_DOCKER_CLI_BUILD=1 | |
export DOCKER_BUILDKIT=1 | |
export ${{ matrix.infrastructure.env }} | |
export TIMEOUT=${{ matrix.test.timeout }} | |
docker-compose ${{ matrix.infrastructure.files }} ${{ matrix.test.files }} config | |
env | |
for i in {1..4}; do | |
echo "Running test - try \#$i" | |
echo "Removing export directory if existent"; | |
sudo rm -rf export | |
set +e | |
docker-compose ${{ matrix.infrastructure.files }} ${{ matrix.test.files }} build --build-arg IMAGE_TAG=ci-testing --build-arg GALAXY_REPO=https://github.com/galaxyproject/galaxy | |
docker-compose ${{ matrix.infrastructure.files }} ${{ matrix.test.files }} up ${{ matrix.infrastructure.options }} --exit-code-from ${{ matrix.test.exit-from }} | |
test_exit_code=$? | |
error_exit_codes_count=$(expr $(docker ps -a --filter exited=1 | wc -l) - 1) | |
docker-compose ${{ matrix.infrastructure.files }} ${{ matrix.test.files }} down | |
if [ $error_exit_codes_count != 0 ] || [ $test_exit_code != 0 ] ; then | |
echo "Test failed.."; | |
continue; | |
else | |
exit $test_exit_code; | |
fi | |
done; | |
exit 1 | |
shell: bash | |
working-directory: ./compose | |
continue-on-error: false | |
- name: Allow upload-artifact read access | |
if: failure() | |
run: sudo chmod -R +r ./compose/export/galaxy/database | |
- name: Save artifacts for debugging a failed test | |
uses: actions/upload-artifact@v4 | |
if: failure() | |
with: | |
name: ${{ matrix.infrastructure.name }}_${{ matrix.test.name }}_first-run | |
path: ./compose/export/galaxy/database | |
- name: Clean up after first run | |
if: matrix.test.second_run == 'true' | |
run: | | |
sudo rm -rf export/postgres | |
sudo rm -rf export/galaxy/database | |
working-directory: ./compose | |
- name: Run tests a second time | |
if: matrix.test.second_run == 'true' && steps.run_check.run | |
run: | | |
export IMAGE_TAG=ci-testing | |
export COMPOSE_DOCKER_CLI_BUILD=1 | |
export DOCKER_BUILDKIT=1 | |
export ${{ matrix.infrastructure.env }} | |
export TIMEOUT=${{ matrix.test.timeout }} | |
for i in {1..4}; do | |
echo "Running test - try \#$i" | |
echo "Removing export directory if existent"; | |
sudo rm -rf export | |
set +e | |
docker-compose ${{ matrix.infrastructure.files }} ${{ matrix.test.files }} up ${{ matrix.infrastructure.options }} --exit-code-from ${{ matrix.test.exit-from }} | |
test_exit_code=$? | |
error_exit_codes_count=$(expr $(docker ps -a --filter exited=1 | wc -l) - 1) | |
if [ $error_exit_codes_count != 0 ] || [ $test_exit_code != 0 ] ; then | |
echo "Test failed.."; | |
continue; | |
else | |
exit $test_exit_code; | |
fi | |
done; | |
exit 1 | |
shell: bash | |
working-directory: ./compose | |
continue-on-error: false | |
- name: Allow upload-artifact read access | |
if: failure() | |
run: sudo chmod -R +r ./compose/export/galaxy/database | |
- name: Save artifacts for debugging a failed test | |
uses: actions/upload-artifact@v4 | |
if: failure() && matrix.test.second_run == 'true' | |
with: | |
name: ${{ matrix.infrastructure.name }}_${{ matrix.test.name }}_second-run | |
path: ./compose/export/galaxy/database |