Practice
1. What is the main purpose of a CI/CD pipeline for a Flask application?
easy
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 AQuick 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?
easy
Solution
Step 1: Identify GitHub Actions workflow file location
GitHub Actions requires workflow files inside the repository at.github/workflows/directory.Step 2: Check file name and extension
The file should have a .yml or .yaml extension. .github/workflows/flask-ci.yml uses correct directory and file name.Final Answer:
.github/workflows/flask-ci.yml -> Option AQuick Check:
Workflow files go in .github/workflows/ = D [OK]
Hint: GitHub Actions workflows live in .github/workflows/ [OK]
Common Mistakes:
- Placing workflow files outside .github/workflows/
- Using wrong file extensions
- Misnaming the directory
3. Given this GitHub Actions snippet for a Flask app:
What will happen when this workflow runs?
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.12'
- name: Install dependencies
run: pip install -r requirements.txt
- name: Run tests
run: pytestWhat will happen when this workflow runs?
medium
Solution
Step 1: Analyze each step in the workflow
The workflow checks out the code, sets up Python 3.12, installs dependencies from requirements.txt, then runs pytest tests.Step 2: Confirm all steps are present and correct
All steps are correctly ordered and complete, so the workflow will perform all these actions successfully.Final Answer:
It checks out code, sets Python 3.12, installs dependencies, and runs tests -> Option BQuick Check:
Checkout + setup + install + test = B [OK]
Hint: Check steps order: checkout, setup, install, test [OK]
Common Mistakes:
- Assuming tests run without installing dependencies
- Thinking Python version is missing
- Ignoring the checkout step
4. You wrote this GitHub Actions step to install dependencies:
Why does this step fail in your Flask CI/CD pipeline?
- name: Install dependencies run: pip install requirements.txt
Why does this step fail in your Flask CI/CD pipeline?
medium
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 CQuick 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
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 DQuick 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
