Continuous Integration

Continuous Integration (CI) is a software development practice where developers frequently merge their code changes into a shared repository. Each change is automatically built and tested, which helps to:

  • Detect and address integration issues early

  • Ensure code quality and consistency

  • Streamline the development process

Artemis Local CI is our implementation of these CI principles, tailored to support the Artemis learning platform. It provides tools and views to help users build and test in programming exercises effectively.

This document will introduce you to the key components of Artemis Local CI: the Build Agent View and the Build Overview View. These tools will assist you throughout your development workflow on the Artemis platform.

Build Agent View

Artemis offers a build agent view that shows the status of all build agents in the system. This view is available only to Administrators. The build agent view consists of two parts: the Build Agent Summary View and the Build Agent Details.

The Build Agent Summary View shows a list of all build agents in the system, along with their status (idle and running), maximum number of concurrent builds, and running builds. The running builds can be canceled individually by clicking the red cancellation button next to the build. An Administrator can also cancel all running builds on a build agent by clicking the ‘Cancel All’ button.

Build Agent Summary View

Build Agent Summary View

The Build Agent Details View shows detailed information about a selected build agent. Firstly, it shows the status, maximum number of concurrent builds, and running builds for the build agent. It offers the same functionality as the Build Agent Summary View, allowing the Administrator to cancel all running builds on the build agent. Secondly, it shows the build agent’s 20 recent build jobs. This includes information such as the build job’s name, participation ID,status (success with result, failure or canceled), the submission time, start time, end time, the duration of the build job, the course ID, and the commit hash. The administrator can click on the participation ID to navigate to the participation’s submission page. The administrator can also click on the commit hash to navigate to the commits details page and the course ID to navigate to the course management page.

Build Agent Details

Build Agent Details

Build Overview View

Artemis provides a build overview view that displays all queued, running, and finished build jobs. Access to the system-wide build overview is exclusively available to Administrators through the System Administration menu.

Build Overview System Administration

Build Overview System Administration

Instructors can access the build overview for a specific course through the Build Overview button located in Course Management. This view displays only the queued, running, and finished build jobs associated with the selected course.

Build Overview Course Management

Build Overview Course Management

The build overview view is divided into three sections:

Running Build Jobs

The “Running Build Jobs” section displays all build jobs currently being executed by a build agent. Jobs are dynamically added to and removed from the queue in real-time. Users have the ability to cancel any job in progress. The table provides the following information:

Running Build Jobs

Running Build Jobs

Queued Build Jobs

The “Queued Build Jobs” section lists all build jobs currently awaiting execution. Jobs are continuously added to and removed from the queue in real-time. Users also have the option to cancel any job that is queued. The table below displays the following information:

Queued Build Jobs

Queued Build Jobs

Finished Build Jobs

The “Finished Build Jobs” section displays all build jobs that have concluded, whether successfully completed, with or without a result, failed, or cancelled. Information about finished build jobs is progressively loaded as the user navigates through the pages. Instructors can also access build logs with detailed information about the build execution by clicking on View build logs. This is particularly helpful for failed builds. The table provides the following information:

Finished Build Jobs

Finished Build Jobs