ICM – Computer Science Major – Course unit on Technological foundations of Computer Science and M1 Cyber Physical and Social Systems – Course unit on CPS2 engineering and development, Part 2: Technological foundations of software development

Institut Henri Fayol - MINES Saint-Étienne

Integrate and deploy your software continuously

This session is designed to get you familiar with methods and tools for continuous software integration and deployment. In particular, we will cover Gitlab CI/CD, and Github Actions. There are others, for example Travis, Jenkins, etc. There is no standard for configuration etc., but they compete in terms of features, and are developing very fast.

Tutorial

If CI/CD is new to you, get your hands on by reading and reproducing:

Complement to the slides for the MCQ

The MCQ will contain:

  1. questions about the slides

  2. Anything that can be found in the About GitHub Actions

  3. Anything that can be found in the learning path for GitHub Actions:

TODOs

Reads and Tutorials

TODOs (by 09/01)

submit your work for Courses 7-8 as LASTNAME.zip to https://ecampus.emse.fr/mod/assign/view.php?id=33637 (expiration date/time: 2026-01-10 01:00 )

Practice on the project of your choice:

  • 1/5 points - On every commit, build and run unit tests for a matrix of 2 or 3 [python|java|go|cmake|…​] versions

  • 1/5 points - On every commit, run some analysis (for code smells, code style, presence of secrets in commit, …​)

  • 2/5 points - When a tag is created and the tests pass: automate the creation of a release (GitHub) or a Package (Gitlab), where you will publish your build artifacts and reports. As the release message, automatically generate the changelog based on the git history since the last tag

  • 1/5 points - On the master branch only: automate the publication of your documentation with GitHub pages or Gitlab pages

Project scope:
  • The project SHOULD be the same as for TODO 4-6

  • You MUST host the project on GitHub or Gitlab. You MUST submit the link to the repository, it MUST be accessible to the professor. Note that your contribution is mostly assessed based on the commit messages and contents

  • You CANNOT work on the same project as another student (NOTE: if two students work on the same multi-component project such as for the Web Programming course, each student can work and leverage one of the modules)