diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 166a414..2aa75f5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -8,7 +8,7 @@ jobs: strategy: fail-fast: false matrix: - image: [assembly, bash, c, compilers, csharp, docker, haskell, html, java, java21, nodejs, postgres, prolog, python, r, scheme, sqlite, tested] + image: [assembly, bash, c, compilers, csharp, docker, haskell, html, java, java21, nextflow, nodejs, postgres, prolog, python, r, scheme, sqlite, tested] runs-on: ubuntu-latest steps: - uses: actions/checkout@master diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index bb35d77..58808c1 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -8,7 +8,7 @@ jobs: strategy: fail-fast: false matrix: - image: [assembly, bash, c, compilers, csharp, docker, haskell, html, java, java21, nodejs, postgres, prolog, python, r, scheme, sqlite, tested] + image: [assembly, bash, c, compilers, csharp, docker, haskell, html, java, java21, nextflow, nodejs, postgres, prolog, python, r, scheme, sqlite, tested] runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -16,4 +16,4 @@ jobs: with: dockerfile: dodona-${{ matrix.image }}.dockerfile error_level: 1 - config_file: hadolint.yml \ No newline at end of file + config_file: hadolint.yml diff --git a/dodona-nextflow.dockerfile b/dodona-nextflow.dockerfile new file mode 100644 index 0000000..2c8fd41 --- /dev/null +++ b/dodona-nextflow.dockerfile @@ -0,0 +1,57 @@ +FROM amazoncorretto:21-al2023-headless +ARG NXF_VER=24.10.2 +ARG FASTQC_VER=0.11.9 +ARG MULTIQC_VER=1.25.2 +ARG TRIMMOMATIC_VER=0.39 + +RUN chmod 711 /mnt \ + && dnf install -y --setopt=install_weak_deps=False --best procps-ng shadow-utils which jq perl python3-pip python3-setuptools unzip \ + && dnf clean all \ + && useradd -m runner + +USER runner + +ENV PATH="/home/runner/bin:/home/runner/.local/bin:$PATH" +ENV NXF_VER=${NXF_VER} +ENV NXF_HOME="/home/runner/.nextflow" +ENV NXF_OFFLINE="true" +ENV FASTQC_HOME="/home/runner/.fastqc" + +RUN < nextflow-linter + chmod +x nextflow-linter + popd + TMPFILE=$(mktemp) + curl -fLo "$TMPFILE" "https://www.bioinformatics.babraham.ac.uk/projects/fastqc/fastqc_v$FASTQC_VER.zip" + mkdir "$FASTQC_HOME" + ln -s "$FASTQC_HOME" "$FASTQC_HOME/FastQC" + unzip "$TMPFILE" -d "$FASTQC_HOME" + rm "$TMPFILE" "$FASTQC_HOME/FastQC" + chmod +x "$FASTQC_HOME/fastqc" + ln -s "$FASTQC_HOME/fastqc" "$HOME/bin/fastqc" + pip3 install --no-cache-dir "multiqc==$MULTIQC_VER" + curl -fLo "$TMPFILE" "http://www.usadellab.org/cms/uploads/supplementary/Trimmomatic/Trimmomatic-$TRIMMOMATIC_VER.zip" + TMPFOLDER=$(mktemp -d) + unzip "$TMPFILE" -d "$TMPFOLDER/" + mv "$TMPFOLDER/Trimmomatic-$TRIMMOMATIC_VER/trimmomatic-$TRIMMOMATIC_VER.jar" "$HOME/bin/trimmomatic-$TRIMMOMATIC_VER.jar" + mv "$TMPFOLDER/Trimmomatic-$TRIMMOMATIC_VER/adapters/"* "$HOME/workdir" + rm -r "$TMPFILE" "$TMPFOLDER" + printf "#!/bin/sh\njava -jar \"$HOME/bin/trimmomatic-$TRIMMOMATIC_VER.jar\"" > "$HOME/bin/trimmomatic" + chmod +x "$HOME/bin/trimmomatic" +EOF + +WORKDIR /home/runner/workdir + +COPY main.sh /main.sh