pandagma pan #10
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: pandagma pan | |
on: | |
workflow_dispatch: | |
inputs: | |
pandagma-conf: | |
# Glycine5_21_29_6 times out | |
default: '["Arachis3_5_2_0", "Cicer3_4_2_0", "Glycine_7_3_2", "Medicago3_8_0_15", "Vigna4_7_1_4"]' | |
description: Run pandagma pan for each config/NAME.conf file in the (JSON) array | |
required: true | |
ssh_enabled: | |
type: boolean | |
description: 'Stop after cloning repository and enable SSH access for debugging' | |
required: false | |
default: false | |
jobs: | |
pandagma: | |
strategy: | |
fail-fast: false | |
matrix: | |
PANDAGMA_CONF: ${{ fromJSON(github.event.inputs.pandagma-conf) }} | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup SSH session for debugging | |
uses: mxschmitt/action-tmate@v3 | |
if: ${{ inputs.ssh_enabled }} | |
with: | |
limit-access-to-actor: false | |
- name: Fetch data | |
run: | | |
mkdir data | |
PATH=$PWD/bin:$PATH make -C data -f "${PWD}/get_data/${{ matrix.PANDAGMA_CONF }}.mk" | |
- name: Create conda environment | |
run: conda env create && conda clean --all -y | |
# Need transparent filesystem compression for larger datasets | |
- name: Create work filesystem | |
run: | | |
sudo apt update | |
sudo apt install -y --no-install-recommends zfsutils-linux | |
sudo truncate -s $((55*2**30)) /mnt/zpool | |
sudo zpool create work -O atime=off -O compression=lz4 /mnt/zpool | |
sudo chmod 777 /work | |
- name: Run pandagma | |
env: | |
PANDAGMA_CONF: ${{ matrix.PANDAGMA_CONF }} | |
# explicitly use bash to enforce pipefail | |
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#exit-codes-and-error-action-preference | |
shell: bash | |
run: | | |
mkdir -p ${PANDAGMA_OUT:=upload-artifact/pandagma-pan-${PANDAGMA_CONF}} | |
printf 'GITHUB_REPOSITORY: %s\n\n' "${GITHUB_REPOSITORY}" > ${PANDAGMA_OUT}/VERSION | |
git show --quiet >> ${PANDAGMA_OUT}/VERSION | |
cp config/${PANDAGMA_CONF}.conf ${PANDAGMA_OUT} | |
env PATH=$PWD/bin:$PATH time -v conda run -n pandagma --no-capture-output pandagma TEfilter -d data -c "config/${PANDAGMA_CONF}.conf" -w /work 2>&1 | tee ${PANDAGMA_OUT}/pandagma.log | |
env PATH=$PWD/bin:$PATH time -v conda run -n pandagma --no-capture-output pandagma pan -d data_TEfilter -c "config/${PANDAGMA_CONF}.conf" -w /work -r -o ${PANDAGMA_OUT} 2>&1 | tee ${PANDAGMA_OUT}/pandagma.log | |
- name: Upload output artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: pandagma-pan-${{ matrix.PANDAGMA_CONF }} | |
# Need to create subdirectory to unzip as directory | |
# https://github.com/actions/upload-artifact/issues/248 | |
path: upload-artifact | |
if-no-files-found: error | |
retention-days: 90 | |
compression-level: 9 |