Skip to content

All Bactopia Tests

All Bactopia Tests #59

name: All Bactopia Tests
on: workflow_dispatch
jobs:
bactopia-tests:
runs-on: self-hosted
defaults:
run:
shell: bash -l {0}
steps:
- name: Checkout bactopia/bactopia
uses: actions/checkout@v4
with:
path: ${{ github.run_id }}/bactopia
- name: Setup ENV variables
run: |
echo "BACTOPIA_CI=/data/storage/bactopia-ci" >> $GITHUB_ENV
echo "BACTOPIA_CONDA=/data/storage/bactopia-ci/envs/conda" >> $GITHUB_ENV
echo "BACTOPIA_SINGULARITY=/data/storage/bactopia-ci/envs/singularity" >> $GITHUB_ENV
echo "BACTOPIA_TESTS=/data/storage/bactopia-ci/bactopia-tests/data" >> $GITHUB_ENV
echo "BACTOPIA_WORKSPACE=${GITHUB_WORKSPACE}/${{ github.run_id }}/bactopia" >> $GITHUB_ENV
echo "BACTOPIA_TMP=/data/storage/bactopia-tmp/${{ github.run_id }}" >> $GITHUB_ENV
mkdir "/data/storage/bactopia-tmp/${{ github.run_id }}"
- name: Conda Profile
run: |
source /data/storage/bactopia-ci/miniforge/etc/profile.d/conda.sh
conda activate bactopia-ci
cd ${{ env.BACTOPIA_WORKSPACE }}
ls modules/local/bactopia | xargs -I {} -P 10 -n 1\
bash -c 'BACTOPIA_ARGS="-profile test --condadir ${{ env.BACTOPIA_CONDA }} --test_data_dir ${{ env.BACTOPIA_TESTS }}" TMPDIR=${{ env.BACTOPIA_TMP }} \
pytest --wt 10 --symlink --kwdof -o "testpaths=tests modules/local/bactopia" --git-aware --tag {}'
- name: Docker Profile
run: |
source /data/storage/bactopia-ci/miniforge/etc/profile.d/conda.sh
conda activate bactopia-ci
cd ${{ env.BACTOPIA_WORKSPACE }}
ls modules/local/bactopia | xargs -I {} -P 10 -n 1\
bash -c 'BACTOPIA_ARGS="-profile test,docker --test_data_dir ${{ env.BACTOPIA_TESTS }}" TMPDIR=${{ env.BACTOPIA_TMP }} \
pytest --wt 10 --symlink --kwdof -o "testpaths=tests modules/local/bactopia" --git-aware --tag {}'
- name: Singularity Profile
run: |
source /data/storage/bactopia-ci/miniforge/etc/profile.d/conda.sh
conda activate bactopia-ci
cd ${{ env.BACTOPIA_WORKSPACE }}
ls modules/local/bactopia | xargs -I {} -P 10 -n 1\
bash -c 'BACTOPIA_ARGS="-profile test,singularity --singularity_cache ${{ env.BACTOPIA_SINGULARITY }} --test_data_dir ${{ env.BACTOPIA_TESTS }}" TMPDIR=${{ env.BACTOPIA_TMP }} \
pytest --wt 10 --symlink --kwdof -o "testpaths=tests modules/local/bactopia" --git-aware --tag {}'
- name: Upload logs on failure
if: failure()
uses: actions/upload-artifact@v2
with:
name: logs-bactopia
path: |
${{ env.BACTOPIA_TMP }}/pytest_workflow_*/*/log.out
${{ env.BACTOPIA_TMP }}/pytest_workflow_*/*/log.err
${{ env.BACTOPIA_TMP }}/pytest_workflow_*/*/.nextflow.log
${{ env.BACTOPIA_TMP }}/pytest_workflow_*/*/work/**/*.log
${{ env.BACTOPIA_TMP }}/pytest_workflow_*/*/work/**/*.err
${{ env.BACTOPIA_TMP }}/pytest_workflow_*/*/work/**/*.out
${{ env.BACTOPIA_TMP }}/pytest_workflow_*/*/work/**/*stderr.txt
${{ env.BACTOPIA_TMP }}/pytest_workflow_*/*/work/**/*stdout.txt
${{ env.BACTOPIA_TMP }}/pytest_workflow_*/*/work/**/*versions.yml
- name: Cleanup
if: always()
run: rm -rf ${GITHUB_WORKSPACE}/${{ github.run_id }} ${{ env.BACTOPIA_TMP }}