From a0c3017ecae614aa3ad72d2d5c472ba6ea4d8407 Mon Sep 17 00:00:00 2001
From: Lauri Koivunen <lauri.koivunen@utu.fi>
Date: Wed, 13 Jan 2021 15:38:00 +0200
Subject: [PATCH] Add autograder image

---
 .gitlab-ci.yml        | 12 ++++++++++
 Dockerfile            |  2 +-
 Dockerfile_autograder | 56 +++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 69 insertions(+), 1 deletion(-)
 create mode 100644 Dockerfile_autograder

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index bc1fd65..e44f978 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -12,3 +12,15 @@ docker-build-master:
     - docker push "$CI_REGISTRY_IMAGE"
   only:
     - master
+
+docker-build-autograder:
+  # Official docker image.
+  image: docker:latest
+  stage: build
+  services:
+    - docker:dind
+  before_script:
+    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
+  script:
+    - docker build --pull -t "$CI_REGISTRY_IMAGE:autograder" Dockerfile_autograder
+    - docker push "$CI_REGISTRY_IMAGE:autograder"
diff --git a/Dockerfile b/Dockerfile
index 5b08ba9..facf6e9 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -26,4 +26,4 @@ RUN make
 RUN make install
 #RUN make install RELEASE=1
 
-WORKDIR /work
\ No newline at end of file
+WORKDIR /work
diff --git a/Dockerfile_autograder b/Dockerfile_autograder
new file mode 100644
index 0000000..733ea74
--- /dev/null
+++ b/Dockerfile_autograder
@@ -0,0 +1,56 @@
+FROM ubuntu:20.04
+MAINTAINER Autolab Team <autolab-dev@andrew.cmu.edu>
+
+RUN apt-get update && apt-get install -y \
+  build-essential \
+  gcc \
+  git \
+  make \    
+  freeglut3-dev \
+  gtkwave \
+  texinfo \
+  libncurses-dev \
+  elfutils \
+  swig \
+  python3-pip \
+  ctags \
+  libelf1 \
+  libelf-dev \
+  libglib2.0-dev \
+  gcc-avr \
+  gdb-avr \
+  avr-libc \
+  sudo \
+  && rm -rf /var/lib/apt/lists/*
+
+# Install autodriver
+WORKDIR /home
+RUN useradd autolab
+RUN useradd autograde
+RUN mkdir autolab autograde output
+RUN chown autolab:autolab autolab
+RUN chown autolab:autolab output
+RUN chown autograde:autograde autograde
+RUN git clone --depth 1 https://github.com/autolab/Tango.git
+WORKDIR Tango/autodriver
+RUN make clean && make
+RUN cp autodriver /usr/bin/autodriver
+RUN chmod +s /usr/bin/autodriver
+
+# Get us Simavr
+WORKDIR /tmp/
+RUN git clone https://github.com/buserror/simavr.git --single-branch --depth 1
+
+WORKDIR /tmp/simavr
+RUN make
+RUN make install
+#RUN make install RELEASE=1
+RUN pip3 install pysimavr
+
+# Clean up
+WORKDIR /home
+RUN apt-get remove -y git && apt-get -y autoremove && rm -rf Tango/
+
+# Check installation
+RUN ls -l /home
+RUN which autodriver
-- 
GitLab