What does CI/CD stand for in software development?
CI/CD stands for Continuous Integration and Continuous Delivery (or Continuous Deployment). It means automatically testing and delivering code changes to users quickly and safely.
Click to reveal answer
beginner
Why use a CI/CD pipeline for a Flask application?
A CI/CD pipeline helps catch errors early, speeds up delivery, and makes sure your Flask app updates smoothly without breaking for users.
Click to reveal answer
beginner
Name a common tool used for running automated tests in a Flask CI pipeline.
Pytest is a popular tool to run automated tests for Flask applications during the CI process.
Click to reveal answer
intermediate
What is the role of Docker in a CI/CD pipeline for Flask?
Docker packages your Flask app and its environment into a container, making it easy to test and deploy consistently across different machines.
Click to reveal answer
intermediate
Explain the difference between Continuous Delivery and Continuous Deployment.
Continuous Delivery means your code is always ready to be released but needs manual approval. Continuous Deployment means code changes are automatically released to users after passing tests.
Click to reveal answer
What is the first step in a typical CI/CD pipeline for a Flask app?
APush code to the repository
BBuild the Docker image
CRun automated tests
DDeploy to production
✗ Incorrect
The pipeline usually starts when code is pushed to the repository, triggering the next steps automatically.
Which file commonly defines the steps of a CI/CD pipeline in GitHub Actions?
Aapp.py
Brequirements.txt
CDockerfile
D.github/workflows/*.yml
✗ Incorrect
GitHub Actions workflows are defined in YAML files inside the .github/workflows directory.
What command installs dependencies listed in requirements.txt for a Flask app?
Apip install -r requirements.txt
Bpython app.py
Cdocker build .
Dpytest
✗ Incorrect
The command 'pip install -r requirements.txt' installs all Python packages needed by the app.
In a CI/CD pipeline, what does 'automated testing' help prevent?
AManual code writing
BSlow internet
CCode errors and bugs
DServer crashes unrelated to code
✗ Incorrect
Automated tests check code for errors and bugs before deployment.
Which tool can be used to deploy a Flask app to a cloud service in a CI/CD pipeline?
Anpm
BHeroku CLI
CGit
Dpytest
✗ Incorrect
Heroku CLI is used to deploy apps to the Heroku cloud platform.
Describe the main stages of a CI/CD pipeline for a Flask application.
Think about what happens from writing code to making it live.
You got /5 concepts.
Explain how Docker helps in deploying a Flask app in a CI/CD pipeline.
Imagine packing your app in a box that works anywhere.
You got /4 concepts.
Practice
(1/5)
1. What is the main purpose of a CI/CD pipeline for a Flask application?
easy
A. To automate testing and deployment whenever code changes
B. To manually deploy code after testing
C. To write Flask application code faster
D. To create user interfaces automatically
Solution
Step 1: Understand CI/CD pipeline role
A CI/CD pipeline automates the process of testing and deploying code changes to catch errors early and speed up delivery.
Step 2: Match purpose with options
To automate testing and deployment whenever code changes correctly states automation of testing and deployment on code changes, which is the main goal of CI/CD.
Final Answer:
To automate testing and deployment whenever code changes -> Option A
Quick Check:
CI/CD automates testing and deployment = C [OK]
Hint: CI/CD means automatic test and deploy on code change [OK]
Common Mistakes:
Thinking CI/CD writes code
Confusing manual deployment with CI/CD
Assuming CI/CD creates UI automatically
2. Which of the following is a correct minimal GitHub Actions workflow file name and location for a Flask CI/CD pipeline?
Why does this step fail in your Flask CI/CD pipeline?
medium
A. Because pip install cannot run in GitHub Actions
B. Because requirements.txt file is missing
C. Because the command should be 'pip install -r requirements.txt'
D. Because Python version is not specified
Solution
Step 1: Identify the pip install syntax error
The command 'pip install requirements.txt' tries to install a package named 'requirements.txt' instead of reading the file.
Step 2: Correct the command syntax
The correct command to install from a requirements file is 'pip install -r requirements.txt'. This flag tells pip to read the file.
Final Answer:
Because the command should be 'pip install -r requirements.txt' -> Option C
Quick Check:
Use '-r' flag to install from file = A [OK]
Hint: Use 'pip install -r requirements.txt' to install dependencies [OK]
Common Mistakes:
Omitting the '-r' flag
Assuming pip install can't run in CI
Blaming missing Python version
5. You want to deploy your Flask app automatically after tests pass using GitHub Actions. Which step should you add to your workflow to deploy to Heroku?
hard
A. Add a step that runs 'pip install flask-heroku'
B. Add a step that runs 'heroku login' interactively
C. Add a step that copies files to a local folder
D. Add a step using 'akhileshns/heroku-deploy@v3.12.12' action with Heroku API key and app name
Solution
Step 1: Understand automated deployment in GitHub Actions
To deploy automatically, use a GitHub Action designed for Heroku deployment that accepts API keys and app name securely.
Step 2: Identify correct deployment action
The 'akhileshns/heroku-deploy@v3.12.12' action is a popular choice for Heroku deployment in GitHub workflows.
Final Answer:
Add a step using 'akhileshns/heroku-deploy@v3.12.12' action with Heroku API key and app name -> Option D
Quick Check:
Use Heroku deploy action with API key = A [OK]
Hint: Use Heroku deploy GitHub Action with API key for auto deploy [OK]
Common Mistakes:
Trying interactive login in CI
Copying files locally instead of deploying
Installing unrelated packages
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.