You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
zanninso 620ff8fb52
docs: add '+' to the audit bonus questions (#2228)
1 year ago
..
audit
README.md

README.md

MR-Jenk

Objectives

Within this module, you will set up a Continuous Integration (CI) and Continuous Deployment (CD) pipeline using Jenkins. This pipeline will automatically build, test, and deploy your e-commerce microservices project.

Instructions

1. Setting Up Jenkins

  • Download, install, and configure Jenkins.
    • Hint: Use Jenkins official documentation or Docker to set up Jenkins.
  • Set up build agents if necessary.

2. Create a CI/CD Pipeline for Your E-commerce Platform

  • Create a Jenkins Job that fetches the source code from your Git repository (e.g., GitHub).
  • Set up build triggers to initiate a build whenever there's a new commit.

3. Automated Testing

  • Integrate automated tests within your pipeline.
    • Hint: Use JUnit for backend testing and Jasmine/Karma for Angular frontend testing.
  • Ensure that the pipeline fails when a test fails.

4. Deployment

  • Automatically deploy your application to a server or platform of your choice after successful builds. Consider platforms like AWS, Heroku, or a local server.
  • Implement a rollback strategy in case a deployment fails.

5. Notifications

  • Set up email or Slack notifications to inform team members of build status, whether it's a success or a failure.

Bonus

  • Parameterized Builds: Allow certain parameters to be customizable for each build run. For example, choose different deployment environments.
  • Distributed Builds: Use multiple build agents to carry out builds in parallel or to build for different platforms or environments.

Testing

Your CI/CD setup will be assessed on:

  • Successful and automated fetching of the latest code changes.
  • Effective implementation of automated tests and correct response to their outcomes.
  • Proper deployment strategies, ensuring new versions are smoothly transitioned into live environments.
  • The immediacy and accuracy of build and deployment notifications.
  • (Bonus) The correct and innovative use of parameterized and distributed builds.

Resources

Jenkins Official Documentation JUnit Documentation Jasmine/Karma Testing for Angular