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:
-
some of the Use cases and examples.
Complement to the slides for the MCQ
The MCQ will contain:
-
questions about the slides
-
Anything that can be found in the About GitHub Actions
-
Anything that can be found in the learning path for GitHub Actions:
-
Overview Understanding GitHub Actions
-
How-to guide Using pre-written building blocks in your workflow
-
Overview About workflows
-
How-to guide Reusing workflows
-
TODOs
Reads and Tutorials
-
Gitlab CI/CD documentation https://docs.gitlab.com/ee/ci/
-
GitHub actions documentation https://docs.github.com/en/actions
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:
|