Skip to content
Open

Lab03 #2453

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
100 changes: 100 additions & 0 deletions .github/workflows/python-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
name: Python CI

on:
push:
branches: [master, lab03]
paths:
- "app_python/**"
- ".github/workflows/python-ci.yml"
pull_request:
branches: [master]
paths:
- "app_python/**"

jobs:
test:
runs-on: ubuntu-latest
defaults:
run:
working-directory: app_python
steps:
- uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.13"
cache: "pip"
cache-dependency-path: app_python/requirements.txt

- name: Install dependencies
run: pip install -r requirements.txt

- name: Lint with flake8
run: |
pip install flake8
flake8 app.py --count --select=E9,F63,F7,F82 --show-source --statistics
flake8 app.py --count --exit-zero --max-complexity=10 --statistics

- name: Test with pytest
run: pytest tests/ -v

security:
runs-on: ubuntu-latest
needs: test
if: always()
steps:
- uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.13"
cache: "pip"
cache-dependency-path: app_python/requirements.txt

- name: Install dependencies
run: pip install -r app_python/requirements.txt

- name: Install Snyk CLI
run: npm install -g snyk

- name: Run Snyk test
run: snyk test --file=app_python/requirements.txt --severity-threshold=high
env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}

docker:
needs: test
runs-on: ubuntu-latest
if: github.event_name == 'push' && github.ref == 'refs/heads/master'
defaults:
run:
working-directory: app_python
steps:
- uses: actions/checkout@v4

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_TOKEN }}

- name: Generate version (CalVer)
id: version
run: echo "version=$(date +%Y.%m.%d)" >> $GITHUB_OUTPUT

- name: Build and push
uses: docker/build-push-action@v5
with:
context: app_python
push: true
tags: |
${{ secrets.DOCKER_USERNAME }}/devops-info-service:latest
${{ secrets.DOCKER_USERNAME }}/devops-info-service:${{ steps.version.outputs.version }}
cache-from: type=gha
cache-to: type=gha,mode=max

7 changes: 6 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,6 @@
test
app_python/venv/
__pycache__/
*.py[cod]
.DS_Store
*.log
.env
271 changes: 0 additions & 271 deletions README.md

This file was deleted.

14 changes: 14 additions & 0 deletions app_python/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
venv
__pycache__
*.py[cod]
*.pyc
*.pyo
*.pyd
*.log
.env
.env.local
.git
.gitignore
docs
tests
.DS_Store
Loading