Builds and Dependency Management
General Structure of Programming Exercise Execution
Artemis uses docker containers to run programming exercises. This ensures that the students’ code does not have direct access to the build agents’ hardware. To reduce the time required for each test run, these docker containers already include commonly used dependencies such as JUnit.
There are currently docker containers for:
Steps for Updating the DockerBuilds used in Artemis
Updating can only be done with access to the account on Dockerhub. If you need access, contact Stephan Krusche.
Update the dependencies via a pull request in the repository of the docker container. Each docker container has its own repository as listed above
After the PR got merged, go to the build overview on Dockerhub:
Choose the correct repository on Dockerhub
Go to the “Builds” tab of that repository
Wait for a successful build of “latest”
- Click “Configure Automated Builds” and create a new build rule for a new tag, following the naming scheme:“<programming language><Version of programming language>-<Upwards counting number>”, for example “java17-20”
The “Sourcetype” should be “Tag”
This tag should be used as “Source Tag” and “Docker Tag”
Go back to the repository of the docker container in GitHub and create a new Tag
Click “Releases” on the right on the front page of that repository
Create a new release with the button called “Draft release” and give it the same name as in step 4
Wait for the build in Dockerhub of the newly created Tag
Change the docker image used in Artemis to the newly created tag: application.yml
If the used docker container should also be changed for already created exercises you have to change the build plan of that exercise
Change the docker image used by following this path: Configure Buildplan > Default Job > Docker > Docker Image