diff --git a/docs/2021/ex1.md b/docs/2021/ex1.md new file mode 100644 index 0000000000000000000000000000000000000000..826bc1b50bcf49907bf36b1201377d887e6ccf69 --- /dev/null +++ b/docs/2021/ex1.md @@ -0,0 +1,56 @@ +# Exercise 1: CI Pipeline & GitLab SAST + +You are asked to set up a CI/CD pipeline of the your group project +**individually** by forking the existing group project codebase and updating +the CI/CD configuration. As part of the exercise, you also need to prepare +your own VM on Google Cloud Platform (GCP) and explore how to use Static +Application Security Testing (SAST) on self-hosted GitLab (GitLab CSUI). + +For your information when setting up the GitLab CI/CD configuration that will +be run on GitLab CSUI, the following is the overview of the CI infrastructure +in our faculty: + +- We run GitLab CSUI using GitLab Enterprise Edition version 13.12.15. +- The CI server runs 8 instances of GitLab Runner version 13.12.0. + - Each instance is running as a container with limited resources (2 CPU per + container) and disabled the privileged mode. Hence, it is not possible to + run a Docker-in-Docker (DIND) type of CI job. + - Each instance shares the cache between CI jobs using [Minio](https://min.io/). + - Each instance is also limited to run single CI job at a time. + +At the end of the exercise, do not forget to schedule an one-on-one meeting +with a teaching assistant to demonstrate your work. + +## Tasks + +1. [ ] Create a new VM on GCP and provision it with the required dependencies + for running the group project. +2. [ ] Fork the group project codebase into your own namespace on GitLab CSUI. +3. [ ] Update the GitLab CI/CD configuration in your fork so the group project + is built and deployed to your own VM instead of the group's VM. + > Alternatively, try to work as a group to update the existing GitLab CI/CD + > configuration so that each member of the group only need to perform + > **minimal changes to the CI/CD configuration file** in their fork. + > It is also possible to have a CI/CD configuration that is so flexible + > even each member does not need to modify the configuration file at all + > on their fork. +4. [ ] Make sure the group project is successfully deployed and run on your own + VM and can be accessed publicly. +5. [ ] Add the SAST job into the CI/CD pipeline of your own fork and make sure + it runs. + > Due to [an ongoing issue on running the latest SAST image](https://gitlab.com/gitlab-org/gitlab/-/issues/344022), + > pin the version of SAST analyser image to version 2.28.5. +6. [ ] Arrange an one-on-one meeting with a teaching assistant to demonstrate + your work. You are expected to be able to: + - Explain the process of setting up the deployment environment of your group + project. + - Explain and demonstrate how to create a CI/CD pipeline on GitLab CSUI. + - Describe how to customise the SAST behaviour when running on GitLab CSUI. + - Describe and compare their experience on using SonarQube and GitLab's SAST + in performing static analysis on code quality and possible security-related + issues. + +## References + +- [GitLab CI/CD Reference on GitLab CSUI](https://gitlab.cs.ui.ac.id/help/ci/yaml/README.md) +- [SAST Documentation on GitLab CSUI](https://gitlab.cs.ui.ac.id/help/user/application_security/sast/index.md) diff --git a/docs/2021/index.md b/docs/2021/index.md new file mode 100644 index 0000000000000000000000000000000000000000..bf60a0dcff9fad7fd2874ff6de5d416a38170a2f --- /dev/null +++ b/docs/2021/index.md @@ -0,0 +1,13 @@ +# Course Information (2021) + +Course instructors: + +- [Dr. Ade Azurat](https://rse.cs.ui.ac.id/?open=staff/ade) + > Responsible for the first half of the course. +- [Daya Adianto, M.Kom.](https://me.adian.to) + > Responsible for the latter half of the course. + +Teaching assistants: + +- Adrika Novrialdi, S.Kom. +- Samuel Tupa Febrian, S.Kom. diff --git a/docs/index.md b/docs/index.md index 0c37674db825fc6a459ae42bdad9e6dcf70b19f4..d5fd601fb8cb25895ca924d98944a64c347ee0e2 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,17 +1,6 @@ -# Welcome to MkDocs - -For full documentation visit [mkdocs.org](https://www.mkdocs.org). - -## Commands - -* `mkdocs new [dir-name]` - Create a new project. -* `mkdocs serve` - Start the live-reloading docs server. -* `mkdocs build` - Build the documentation site. -* `mkdocs -h` - Print help message and exit. - -## Project layout - - mkdocs.yml # The configuration file. - docs/ - index.md # The documentation homepage. - ... # Other markdown pages, images and other files. +# Home + +Good day! Welcome to the website of Software Quality Assurance (SQA) course at +the Faculty of Computer Science Universitas Indonesia. At this moment, the site +only contains the exercises used in the lectures and the problem sets used +during the interview exam. We will add the course information in the future. diff --git a/mkdocs.yml b/mkdocs.yml index af8671b15dc14a1d8faf8ffdde247dc1a09183ac..7f56b24c84338a4fdfea3a1e3c87a6a05e0a66be 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -2,9 +2,15 @@ site_name: Software Quality Assurance site_description: >- The website of Software Quality Assurance (SQA)/Penjaminan Mutu Perangkat - Lunak (PMPL) at the Faculty of Computer Science Universitas Indonesia + Lunak (PMPL) course at the Faculty of Computer Science Universitas Indonesia. site_author: Daya Adianto copyright: Copyright © 2021 Faculty of Computer Science Universitas Indonesia repo_url: https://gitlab.cs.ui.ac.id/pmpl/course-site repo_name: GitLab @ CSUI + +nav: + - Home: index.md + - Year 2021: + - Course Page: 2021/index.md + - Exercise 1: 2021/ex1.md