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