Skip to content

All Bactopia Tests

All Bactopia Tests #71

name: All Bactopia Tool Tests
on: workflow_dispatch
#schedule:
# At 01:30 on Monday and Thursday
#- cron: '30 1 * * 1,4'
jobs:
bactopia-tools-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 }}"
chmod -R 777 "/data/storage/bactopia-tmp/${{ github.run_id }}"
- name: Singularity Profile
run: |
source /data/storage/bactopia-ci/miniforge/etc/profile.d/conda.sh
conda activate bactopia-ci
cd ${{ env.BACTOPIA_WORKSPACE }}
ls subworkflows/local/ | grep -v -E "teton" | xargs -I {} -P 20 \
bash -c 'BACTOPIA_ARGS="-profile singularity --singularity_cache ${{ env.BACTOPIA_SINGULARITY }} --is_ci --test_data_dir ${{ env.BACTOPIA_TESTS }}" TMPDIR=${{ env.BACTOPIA_TMP }} \
pytest --wt 5 --symlink --kwdof -o "testpaths=tests subworkflows/local/" --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 subworkflows/local/ | grep -v -E "teton" | xargs -I {} -P 20 \
bash -c 'BACTOPIA_ARGS="-profile docker --is_ci --test_data_dir ${{ env.BACTOPIA_TESTS }}" TMPDIR=${{ env.BACTOPIA_TMP }} \
pytest --wt 5 --symlink --kwdof -o "testpaths=tests subworkflows/local/" --git-aware --tag {}'
- name: Conda Profile
run: |
source /data/storage/bactopia-ci/miniforge/etc/profile.d/conda.sh
conda activate bactopia-ci
conda clean --all -y
cd ${{ env.BACTOPIA_WORKSPACE }}
ls subworkflows/local/ | grep -v -E "teton" | xargs -I {} -P 20 \
bash -c 'BACTOPIA_ARGS="--is_ci --condadir ${{ env.BACTOPIA_CONDA }} --test_data_dir ${{ env.BACTOPIA_TESTS }}" TMPDIR=${{ env.BACTOPIA_TMP }} \
pytest --wt 5 --symlink --kwdof -o "testpaths=tests subworkflows/local/" --git-aware --tag {}'
- name: Upload logs on failure
if: failure()
uses: actions/upload-artifact@v2
with:
name: logs-bactopia-tools
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
- name: Cleanup
if: always()
run: rm -rf ${GITHUB_WORKSPACE}/${{ github.run_id }} ${{ env.BACTOPIA_TMP }}