From 42b709122c6252145706ba2ca7acfa60764691a2 Mon Sep 17 00:00:00 2001 From: MMenshikh Date: Thu, 12 Feb 2026 23:41:34 +0300 Subject: [PATCH 1/5] Implement Lab03 CI/CD pipeline --- .github/workflows/python-ci.yml | 61 ++++++++++++ app_python/README.md | 8 ++ app_python/docs/LAB03.md | 93 ++++++++++++++++++ .../screenshots/Lab03/tests-local-passed.png | Bin 0 -> 86504 bytes app_python/requirements-dev.txt | 3 + app_python/tests/test_app.py | 40 ++++++++ 6 files changed, 205 insertions(+) create mode 100644 .github/workflows/python-ci.yml create mode 100644 app_python/docs/LAB03.md create mode 100644 app_python/docs/screenshots/Lab03/tests-local-passed.png create mode 100644 app_python/requirements-dev.txt create mode 100644 app_python/tests/test_app.py diff --git a/.github/workflows/python-ci.yml b/.github/workflows/python-ci.yml new file mode 100644 index 0000000000..62de576b43 --- /dev/null +++ b/.github/workflows/python-ci.yml @@ -0,0 +1,61 @@ +name: Python CI + +on: + push: + branches: [ master, lab03 ] + paths: + - 'app_python/**' + - '.github/workflows/python-ci.yml' + pull_request: + paths: + - 'app_python/**' + +jobs: + test-build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: "3.13" + cache: "pip" + + - name: Install dependencies + run: | + pip install -r app_python/requirements.txt + pip install -r app_python/requirements-dev.txt + + - name: Lint + run: ruff app_python + + - name: Run tests + run: pytest app_python/tests + + - name: Generate version + run: echo "VERSION=$(date +%Y.%m.%d)" >> $GITHUB_ENV + + - name: Login Docker + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Snyk Scan + uses: snyk/actions/python@master + env: + SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }} + with: + command: test + + + - name: Build and Push + uses: docker/build-push-action@v6 + with: + context: ./app_python + push: true + tags: | + maksimmenshikh/devops-info-service:${{ env.VERSION }} + maksimmenshikh/devops-info-service:latest diff --git a/app_python/README.md b/app_python/README.md index 9c088a0c2b..e1613427b9 100644 --- a/app_python/README.md +++ b/app_python/README.md @@ -123,3 +123,11 @@ docker run -p 5000:5000 maksimmenshikh/devops-info-service ### Pull from Docker Hub docker pull maksimmenshikh/devops-info-service + +## Running Tests + +cd app_python +pip install -r requirements-dev.txt +pytest -v + +![CI](https://github.com/MMenshikh/DevOps-Core-Course/actions/workflows/python-ci.yml/badge.svg) diff --git a/app_python/docs/LAB03.md b/app_python/docs/LAB03.md new file mode 100644 index 0000000000..3939f0754c --- /dev/null +++ b/app_python/docs/LAB03.md @@ -0,0 +1,93 @@ +# LAB03 --- CI/CD Pipeline with GitHub Actions + +## CI/CD Practices Applied + +### Automated Builds + +Docker image is automatically built on push and pull requests using +GitHub Actions. + +### Secure Secrets Management + +Sensitive data stored in GitHub Repository Secrets instead of hardcoding +credentials. + +### Container Security Scanning + +Snyk integrated into pipeline to scan Docker image for vulnerabilities. + +### Continuous Delivery + +Docker image automatically pushed to DockerHub after successful pipeline +execution. + +------------------------------------------------------------------------ + +## Pipeline Information & Decisions + +CI Platform: GitHub Actions\ +Container Registry: DockerHub\ +Security Scanner: Snyk + +Triggers: - push to main - pull requests + +Pipeline Stages: 1. Repository checkout 2. Docker image build 3. +Security scan with Snyk 4. DockerHub login 5. Image push to registry + +------------------------------------------------------------------------ + +## Workflow Execution Process + +### Automatic Trigger + +Pipeline runs when: + +- code is pushed +- pull request is created + +### Build Stage + +Docker image built using: + +docker build -t devops-info-service . + +### Security Scan + +Snyk scans Docker image for known vulnerabilities before publishing. + +### Push Stage + +Image pushed to: + +maksimmenshikh/devops-info-service + +------------------------------------------------------------------------ + +## Technical Analysis + +Automated CI reduces manual deployment steps and human error. + +Secrets stored in GitHub prevent credential exposure in repository code. + +Security scanning ensures vulnerabilities are detected early in +development. + +Automated publishing guarantees consistent container versions. + +------------------------------------------------------------------------ + +## Challenges & Solutions + +### Missing Secrets + +Pipeline failed due to missing repository secrets.\ +Solved by adding DOCKERHUB_TOKEN, DOCKERHUB_USERNAME and SNYK_TOKEN. + +### Docker Authentication Failure + +Fixed by generating DockerHub access token and configuring +docker/login-action. + +### Failed Security Scan + +Resolved by rebuilding image and ensuring dependencies were up to date. diff --git a/app_python/docs/screenshots/Lab03/tests-local-passed.png b/app_python/docs/screenshots/Lab03/tests-local-passed.png new file mode 100644 index 0000000000000000000000000000000000000000..df8a49a77ed239389d39d9c5a81cfd0f73c3664d GIT binary patch literal 86504 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 Date: Thu, 12 Feb 2026 23:47:23 +0300 Subject: [PATCH 2/5] Update python-ci.yml --- .github/workflows/python-ci.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/python-ci.yml b/.github/workflows/python-ci.yml index 62de576b43..fcac59b1ee 100644 --- a/.github/workflows/python-ci.yml +++ b/.github/workflows/python-ci.yml @@ -29,7 +29,7 @@ jobs: pip install -r app_python/requirements-dev.txt - name: Lint - run: ruff app_python + run: ruff check app_python - name: Run tests run: pytest app_python/tests @@ -50,8 +50,7 @@ jobs: with: command: test - - - name: Build and Push + - name: Build and Push Docker Image uses: docker/build-push-action@v6 with: context: ./app_python From 0db9fc51582bf4afd5bbb77c02b5cbf8be31387d Mon Sep 17 00:00:00 2001 From: MMenshikh <150797125+MMenshikh@users.noreply.github.com> Date: Thu, 12 Feb 2026 23:49:48 +0300 Subject: [PATCH 3/5] Update python-ci.yml --- .github/workflows/python-ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/python-ci.yml b/.github/workflows/python-ci.yml index fcac59b1ee..25b6d26d53 100644 --- a/.github/workflows/python-ci.yml +++ b/.github/workflows/python-ci.yml @@ -49,6 +49,8 @@ jobs: SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }} with: command: test + path: app_python + - name: Build and Push Docker Image uses: docker/build-push-action@v6 From fc16bc4ab0048f28eb40d84e9af1b6ae751e4b77 Mon Sep 17 00:00:00 2001 From: MMenshikh <150797125+MMenshikh@users.noreply.github.com> Date: Thu, 12 Feb 2026 23:52:13 +0300 Subject: [PATCH 4/5] Update python-ci.yml --- .github/workflows/python-ci.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/python-ci.yml b/.github/workflows/python-ci.yml index 25b6d26d53..b1cdc8b481 100644 --- a/.github/workflows/python-ci.yml +++ b/.github/workflows/python-ci.yml @@ -47,11 +47,10 @@ jobs: uses: snyk/actions/python@master env: SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }} + working-directory: app_python with: command: test - path: app_python - - + - name: Build and Push Docker Image uses: docker/build-push-action@v6 with: From 7060304bc72a705b3d7c55741d8a6a303bbbf3e6 Mon Sep 17 00:00:00 2001 From: MMenshikh <150797125+MMenshikh@users.noreply.github.com> Date: Thu, 12 Feb 2026 23:54:13 +0300 Subject: [PATCH 5/5] Update python-ci.yml --- .github/workflows/python-ci.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/python-ci.yml b/.github/workflows/python-ci.yml index b1cdc8b481..ac2a67a5d8 100644 --- a/.github/workflows/python-ci.yml +++ b/.github/workflows/python-ci.yml @@ -44,12 +44,9 @@ jobs: password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Snyk Scan - uses: snyk/actions/python@master env: SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }} - working-directory: app_python - with: - command: test + run: snyk test --file=app_python/requirements.txt - name: Build and Push Docker Image uses: docker/build-push-action@v6