# This CI config file is not used in this repository but instead referenced # from each student project (https://gitlab.epfl.ch/help/ci/pipelines/settings#custom-ci-configuration-path) # and used to grade them. workflow: rules: # Don't run the CI on commit messages contain "[no-ci]", used to deploy # assignments without overloading the CI. - if: $CI_COMMIT_MESSAGE !~ /\[no-ci\]/ stages: - build - grade compile: stage: build timeout: 15m image: lampepfl/dotty:2020-11-19 tags: - cs210 except: - tags - master # Caching is only allowed for directories inside the current project, so we make sure # all our caches are inside CI_PROJECT_DIR: script: - XDG_CACHE_HOME=${CI_PROJECT_DIR}/.cache sbt -Dsbt.boot.directory="${CI_PROJECT_DIR}/.sbt-boot" -Dsbt.ivy.home="${CI_PROJECT_DIR}/.ivy2" packageSubmission # Careful: using a cache on a gitlab-runner means that a cache.zip file will # be downloaded to each container, this can quickly fill up disk space on the # runner space. To mitigate this we use a `docker-prune` systemd timer that # runs `docker system prune --force --volumes -a`. cache: key: cs206-2021 paths: - .cache/ - .sbt-boot/ - .ivy2/cache/ # Output of this job that needs to be stored to be reused in the grade job below artifacts: expire_in: 1 day paths: - submission.jar grade: stage: grade timeout: 15m except: - tags - master tags: - cs210 image: name: lampepfl/moocs:cs206-2021-${CI_COMMIT_BRANCH} entrypoint: [""] allow_failure: true before_script: - mkdir -p /shared/submission/ - cp submission.jar /shared/submission/submission.jar script: - cd /grader - /grader/grade | /grader/feedback-printer