Skip to content

simonsimon006/kth_a2_continuous_integration

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

85 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Last Commit Issues Pull Requests License

Assignment #2: Continuous Integration

KTH Logo

This is the repository for Assignment #2: Continuous Integration in the course DD2480 Software Engineering Fundamentals at KTH Royal Institute of Technology, Sweden. This project is written in Java and uses Gradle as the build tool.

Table of Contents

Description of the Assignment

The goal of this assignment is to master the core of continuous integration. To achieve this goal, a small continuous integration CI server is implemented. This CI server only contains the core features of continuous integration.

How to Run Compilation and Testing

Install Gradle according to this guide and the Java JDK from here. We can only guarantee support for Gradle v7.6 and Java version 19, although it would likely work with different versions of Java.

After installing Gradle and Java download the repository and open a terminal or command prompt. Use cd to change directory to the same one where the gradlew.bat file is. Run, bundle or test the program by using the gradlew tool. Platform specific commands are listed below.

Linux/OSX:

  • Run without bundling: ./gradlew run
  • Bundle application: ./gradlew build
  • Test application: ./gradlew test

Windows:

  • Run without bundling: gradlew run
  • Bundle application: gradlew build
  • Test application: gradlew test

To use the program, set up a github webhook with a payload URL indicating the server and its associated port (default 9000). Content type should be application/json. To receive emails, you need to ensure that you do not have your email set to private when you commit. More info here.

The server will build and test the branch where your latest commit was made and send an email to your non-private email address.

Description of Implementation and Unit-Testing

Compilation

==[TO BE ADDED: how compilation has been implemented and unit-tested]==

Test Execution

==[TO BE ADDED: how test execution has been implemented and unit-tested]==

Notification

==[TO BE ADDED: how notification has been implemented and unit-tested]==

Build List

The CI server keeps the history of past builds, see build list.

Statement of Contributions

We are proud of this project and what we have accomplished in such a short amount of time. The team's creativity has been extremely useful in this project since it facilitated overcoming various predicaments that arised during the imlementation of this CI. Even though this project proved to be quite difficult, we are all convinced that it did yield profound knowledge in how CI servers are implemented.

Simon Grunwald

Simon Grunwald

  • Implementation of the handling of the webhook triggers and logging
  • Part of combining everything together
  • Server Administration
Linnéa Gustafsson

Linnéa Gustafsson

  • Managing issues that correspond to the requirements
  • Foundation for README
  • Ensuring all public classes and methods are well-documented and follow code conventions
Oscar Olsson

Oscar Olsson

  • Created project email
  • Implemented the EmailSender class
Jesper Slagarp

Jesper Slagarp

  • Code for building and testing programatically
  • Part of combining the different components together
Hans Stammler

Hans Stammler

  • Initialization of Gradle project and dependencies
  • GitInteractions.java
  • General skeleton work and bug fixing

License

Copyright 2023 Simon Grunwald, Linnéa Gustafsson, Oscar Olsson, Jesper Slagarp & Hans Stammler

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages