Description
In this course, you will learn :
- What is a pipeline.
- What is the difference between Continuous Integration (CI), Continuous Delivery (CD), and Continuous Deployment (CD)? (CD).
- With Gitlab CI, you can automate your build, testing, and deployment.
- Discover industry "best practises" for constructing CI/CD pipelines.
- To potential employers, demonstrate your understanding of developing CI/CD pipelines.
- Builds, tests, and deployments should all be automated.
- AWS-based automated deployments
- Create pipelines that include code quality checks, unit tests, and API testing.
- Hands-on assignments will help you solve problems.
- Make Merge Requests and go over the code.
- Environments that are dynamic.
Syllabus :
1. Basic CI/CD workflow with Gitlab CI
- What is CI / CD?
- Alternative if you don't want to install new software
- Short introduction to Node.js
- Creating a new project
- Building the project locally
- Short introduction to images and Docker
- Building the project using Gitlab CI
- Adding a test stage
- Running jobs in parallel
- Running jobs in the background
- Deployment using surge.sh
- Using Environment variables for managing secrets
- Deploying the project using Gitlab CI
- How does Surge.sh know the environment variables?
2. Gitlab CI Fundamentals
- Predefined environment variables
- Pipeline triggers / Retrying failed jobs / Pipeline schedules
- Using caches to optimize the build speed
- Cache vs Artifacts
- Deployment Environments
- Defining variables
- Manual deployments / Manually triggering jobs
- Merge requests - Using branches
- Merge requests - What is a Merge Request?
- Merge requests - Configuring Gitlab
- Merge requests - Your first merge request
- Dynamic environments
- Troubleshooting environment variables not being available
- Destroying environments (Clean-up after the Merge Request)
- before_script & after_script configuration
3. YAML basics
- Understanding YAML
- Disabling jobs
- Anchors
- Creating job templates
4. Using Gitlab CI to build and deploy a Java application to AWS Elastic Beanstalk31 lectures • 1hr 43min
- Introduction to the Java application
- Calling an API with Postman
- Continuous Integration (CI) pipeline overview
- Build stage: Building a Java application locally
- Build stage: Building a Java application with Gitlab CI
- Test stage: Adding a smoke test
- CI/CD pipeline recap
- Brief introduction to Amazon Web Services (AWS)
- Notice about unexpected costs while using AWS
- Serverless computing with AWS Elastic Beanstalk
- How to deploy to AWS (manual upload)
- How to deploy to AWS from GitLab CI
- Getting started with AWS S3
- GitLab Group settings
- How to upload a file to AWS S3 from GitLab CI
- How to deploy a Java application to AWS Elastic Beanstalk using the AWS CLI
- Create an application version
- Verify the application version after deployment
- Revisiting the CI pipeline
- Ensuring coding standards with tools for codestyle checking with PMD
- Assignment - Add code quality stage with PMD
- Assignment solution - Add code quality stage with PMD
- Quick introduction to unit testing in CI pipelines
- Unit test stage: Run JUnit tests with GitLab CI
- How to structure a CI/CD pipeline in GitLab CI?
- API test stage: Run Postman API tests in GitLab CI
- GitLab Pages (for publishing HTML reports or dashboards)
- Final reminder to terminate all AWS services