From 682e0c590e9a61baec623bf6a140c8cdef80631a Mon Sep 17 00:00:00 2001 From: Niko Strijbol Date: Mon, 27 May 2024 16:02:43 +0200 Subject: [PATCH 1/3] Ignore DL3008 globally --- .github/workflows/lint.yml | 1 + dodona-assembly.dockerfile | 2 +- dodona-bash.dockerfile | 1 - dodona-compilers.dockerfile | 2 +- dodona-haskell.dockerfile | 1 - dodona-python.dockerfile | 1 - dodona-r.dockerfile | 1 - 7 files changed, 3 insertions(+), 6 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 3796f87..23d615e 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -15,3 +15,4 @@ jobs: - uses: brpaz/hadolint-action@master with: dockerfile: dodona-${{ matrix.image }}.dockerfile + ignore: DL3008 diff --git a/dodona-assembly.dockerfile b/dodona-assembly.dockerfile index 2b05053..e956e1f 100644 --- a/dodona-assembly.dockerfile +++ b/dodona-assembly.dockerfile @@ -1,7 +1,7 @@ FROM python:3.12.3-slim-bullseye # Add architecture repositories for ARM32 -# hadolint ignore=DL3003,DL3008 +# hadolint ignore=DL3003 RUN dpkg --add-architecture armhf \ && apt-get update \ # Install additional dependencies for fetching and building packages diff --git a/dodona-bash.dockerfile b/dodona-bash.dockerfile index e706d7a..e1e4d15 100644 --- a/dodona-bash.dockerfile +++ b/dodona-bash.dockerfile @@ -1,6 +1,5 @@ FROM python:3.12.3-slim-bullseye -# hadolint ignore=DL3008 RUN apt-get update && \ apt-get -y install --no-install-recommends \ bc=1.07.1-2+b2 \ diff --git a/dodona-compilers.dockerfile b/dodona-compilers.dockerfile index 1f083ae..af7e997 100644 --- a/dodona-compilers.dockerfile +++ b/dodona-compilers.dockerfile @@ -4,7 +4,7 @@ ARG LLVM_VERSION="13.0.0" ARG LLVM_SHA256="9680c841b5ceffa51f21d0d2ddd7573447b659d1889b83c153b7473342b22a49" -# hadolint ignore=DL3008,DL3013,DL4006 +# hadolint ignore=DL3013,DL4006 RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \ cmake \ g++ \ diff --git a/dodona-haskell.dockerfile b/dodona-haskell.dockerfile index 7ceb298..f565209 100644 --- a/dodona-haskell.dockerfile +++ b/dodona-haskell.dockerfile @@ -1,6 +1,5 @@ FROM haskell:9.8.2 -# hadolint ignore=DL3008 RUN apt-get update \ # Install jq for json querying in bash # Install freeglut headers for gloss compilation diff --git a/dodona-python.dockerfile b/dodona-python.dockerfile index 484cc09..7102e24 100644 --- a/dodona-python.dockerfile +++ b/dodona-python.dockerfile @@ -1,6 +1,5 @@ FROM python:3.12.3-slim-bullseye -# hadolint ignore=DL3008 RUN chmod 711 /mnt && \ useradd -m runner && \ apt-get update && \ diff --git a/dodona-r.dockerfile b/dodona-r.dockerfile index def6df1..bc7c839 100644 --- a/dodona-r.dockerfile +++ b/dodona-r.dockerfile @@ -1,6 +1,5 @@ FROM r-base:4.4.0 -# hadolint ignore=DL3008 RUN apt-get update && \ apt-get install -y --no-install-recommends \ default-jdk \ From d8688c58af03936076fd7bf46c8d2b870d03b454 Mon Sep 17 00:00:00 2001 From: Niko Strijbol Date: Mon, 27 May 2024 16:43:59 +0200 Subject: [PATCH 2/3] Bump TESTed stuff --- dodona-tested.dockerfile | 42 +++++++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/dodona-tested.dockerfile b/dodona-tested.dockerfile index 1036229..0841b57 100644 --- a/dodona-tested.dockerfile +++ b/dodona-tested.dockerfile @@ -2,10 +2,13 @@ FROM python:3.12.3-slim-bullseye # Environment Kotlin ENV SDKMAN_DIR /usr/local/sdkman +ENV HASKELL_DIR /usr/local/ghcupdir ENV PATH $SDKMAN_DIR/candidates/kotlin/current/bin:$PATH +ENV PATH $SDKMAN_DIR/candidates/java/current/bin:$PATH +ENV PATH $HASKELL_DIR/ghc/bin:$PATH +ENV PATH $HASKELL_DIR/cabal:$PATH ENV NODE_PATH /usr/lib/node_modules # Add manual directory for default-jdk -# hadolint ignore=DL3008 RUN mkdir -p /usr/share/man/man1mkdir -p /usr/share/man/man1 \ && apt-get update \ # Install additional dependencies @@ -17,41 +20,44 @@ RUN mkdir -p /usr/share/man/man1mkdir -p /usr/share/man/man1 \ unzip \ # Bash language dependencies bc binutils bsdmainutils cowsay ed figlet file toilet tree vim xxd \ + # Dependencies for GHCup + autoconf build-essential zlib1g-dev libgmp-dev \ && curl https://packages.microsoft.com/config/debian/11/packages-microsoft-prod.deb --output packages-microsoft-prod.deb \ && dpkg -i packages-microsoft-prod.deb \ && rm packages-microsoft-prod.deb \ - # Add nodejs v18 - && bash -c 'set -o pipefail && curl -fsSL https://deb.nodesource.com/setup_18.x | bash -' \ - # Install programming languages \ + # JavaScript dependencies + && bash -c 'set -o pipefail && curl -fsSL https://deb.nodesource.com/setup_21.x | bash -' \ + # Haskell dependencies + && bash -c "set -o pipefail && curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | BOOTSTRAP_HASKELL_NONINTERACTIVE=1 BOOTSTRAP_HASKELL_MINIMAL=1 sh" \ + && bash -c "source /root/.ghcup/env && ghcup install ghc 9.6 --isolate $HASKELL_DIR/ghc" \ + && bash -c "source /root/.ghcup/env && ghcup install cabal --isolate $HASKELL_DIR/cabal" \ + # Install programming languages \ && apt-get install -y --no-install-recommends \ - # TESTed Java and Kotlin judge dependency - openjdk-17-jdk \ - checkstyle=8.36.1-1 \ - # TESTed Haskell judge dependency - haskell-platform=2014.2.0.0.debian8 \ - hlint=3.1.6-1 \ + # Checkstyle, other Java stuff uses SDKMAN! below + checkstyle \ + hlint \ # TESTed C judge dependency - gcc=4:10.2.1-1 \ - cppcheck=2.3-1 \ + gcc \ + cppcheck \ # TESTed Javascript judge dependency nodejs \ # TESTed bash judge dependency - shellcheck=0.7.1-1+deb11u1 \ + shellcheck \ # C# dependency - dotnet-sdk-6.0=6.0.405-1 \ + dotnet-sdk-8.0 \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* \ # TESTed Judge depencencies - && pip install --no-cache-dir --upgrade psutil==5.9.5 attrs==23.1.0 cattrs==23.1.2 jsonschema==4.19.1 typing_inspect==0.9.0 pyyaml==6.0.1 Pygments==2.16.1 python-i18n==0.3.9 pylint==3.0.1 \ + && pip install --no-cache-dir --upgrade psutil==5.9.8 attrs==23.2.0 cattrs==23.2.3 jsonschema==4.22.0 typing_inspect==0.9.0 pyyaml==6.0.1 Pygments==2.18.0 python-i18n==0.3.9 pylint==3.0.1 \ # TESTed Kotlin judge dependencies && bash -c 'set -o pipefail && curl -s "https://get.sdkman.io?rcupdate=false" | bash' \ && chmod a+x "$SDKMAN_DIR/bin/sdkman-init.sh" \ - && bash -c "source \"$SDKMAN_DIR/bin/sdkman-init.sh\" && sdk install kotlin 1.8.0" \ - && curl -sSLO https://github.com/pinterest/ktlint/releases/download/0.48.2/ktlint \ + && bash -c "source \"$SDKMAN_DIR/bin/sdkman-init.sh\" && sdk install java 21.0.3-tem && sdk install kotlin" \ + && curl -sSLO https://github.com/pinterest/ktlint/releases/download/1.2.1/ktlint \ && chmod a+x ktlint \ && mv ktlint /usr/local/bin \ # JavaScript dependencies - && npm install -g eslint@8.36 abstract-syntax-tree@2.17.6 \ + && npm install -g eslint@8.57 abstract-syntax-tree@2.22 \ # Haskell dependencies && cabal update \ && cabal v1-install --global aeson \ From 32c04c9031c807f2f0455640699d9b3c47b7f120 Mon Sep 17 00:00:00 2001 From: Niko Strijbol Date: Wed, 29 May 2024 14:59:47 +0200 Subject: [PATCH 3/3] Use Node 22 --- dodona-tested.dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dodona-tested.dockerfile b/dodona-tested.dockerfile index 0841b57..3b28edf 100644 --- a/dodona-tested.dockerfile +++ b/dodona-tested.dockerfile @@ -26,7 +26,7 @@ RUN mkdir -p /usr/share/man/man1mkdir -p /usr/share/man/man1 \ && dpkg -i packages-microsoft-prod.deb \ && rm packages-microsoft-prod.deb \ # JavaScript dependencies - && bash -c 'set -o pipefail && curl -fsSL https://deb.nodesource.com/setup_21.x | bash -' \ + && bash -c 'set -o pipefail && curl -fsSL https://deb.nodesource.com/setup_22.x | bash -' \ # Haskell dependencies && bash -c "set -o pipefail && curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | BOOTSTRAP_HASKELL_NONINTERACTIVE=1 BOOTSTRAP_HASKELL_MINIMAL=1 sh" \ && bash -c "source /root/.ghcup/env && ghcup install ghc 9.6 --isolate $HASKELL_DIR/ghc" \