Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| de:modul:ffit:3-jahr:cicd:learningunits:lu03:b [2026/02/02 23:10] – angelegt apeter | de:modul:ffit:3-jahr:cicd:learningunits:lu03:b [2026/02/24 10:51] (aktuell) – apeter | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== LU03b - Einführung CICD ====== | + | ====== LU03b - Linter & Formatter Best Practices |
| - | '' | + | ==== Checkliste ==== |
| - | ==== Pipelines | + | * **Encoding**: |
| + | * **Spacing/ | ||
| + | * **Anführungszeichen/ | ||
| + | * **Zeilenlänge**: | ||
| + | * **Ignorierter Code**: Unbedingt Dependencies (.venv, node_modules, | ||
| - | **Projekt-Board / Issue-Tracking** | + | ==== Beispiele Overall ==== |
| - | * 🆓 GitHub Projects (gut integriert in Commits/ | + | '' |
| - | * 🆓 GitLab Issue Boards | + | <code ini> |
| - | * 💰 Atlassian Jira (sehr mächtig; Education-Lizenz möglich, ansonsten limitiertes Free Tier) | + | # Global settings |
| - | * 🆓 Miro (Kanban/ | + | [*] |
| - | * 🆓 Trello (Limitierte Automation im Free Tier) | + | charset = utf-8 |
| - | * 🆓 Taiga (Open-Source, gutes Scrum-Board) | + | end_of_line = lf |
| - | * 🆓 YouTrack (Free für kleine Teams; sehr starkes Issue-Tracking) | + | insert_final_newline = true |
| - | * 🆓 OpenProject (Open-Source, | + | indent_style = space |
| + | indent_size = 4 | ||
| + | trim_trailing_whitespace = true | ||
| - | **Build-Pipeline / CI-Server** | + | # Python files |
| - | * 🆓 GitHub Actions (Free-Minutes begrenzt; Education meist großzügig) | + | [*.py] |
| - | * 🆓 GitLab CI/CD (Free Tier gut; self-hosted unbegrenzt) | + | indent_size = 4 |
| - | * 🆓 Jenkins (Open-Source; | + | |
| - | * 🆓 Azure Pipelines (kostenlos für Public; Private mit Limits) | + | |
| - | * 🆓 CircleCI (Free Tier limitiert) | + | |
| - | * 🆓 Travis CI (Public gratis; Private limitiert) | + | |
| - | * 🆓 Drone CI (Open-Source; | + | |
| - | * 🆓 Bitbucket Pipelines (Free Tier limitiert) | + | |
| - | **Code-Analyse | + | # JavaScript/TypeScript files |
| - | * 🆓 SonarCloud (nur Public repos) | + | [*.{js, |
| - | * 💰 SonarCloud (Private Repos) | + | indent_size = 2 |
| - | * 🆓 SonarQube (self-hosted) (Community Edition gratis; eigener Server nötig) | + | |
| - | * 🆓 ESLint / Prettier (Frontend/ | + | |
| - | * 🆓 Flake8 / Black (Python Linting & Formatting) | + | |
| - | * 🆓 Checkstyle / PMD (Java Code-Analyse) | + | |
| - | * 🆓 Bandit (Python Security Scan) | + | |
| - | * 🆓 OWASP ZAP (Sicherheitsanalyse; | + | |
| - | * 🆓 Snyk (Free Tier) (Dependency-Vulnerabilities; | + | |
| - | **Hosting | + | # HTML/CSS |
| + | [*.{html, | ||
| + | indent_size = 2 | ||
| - | Frontend | + | # JSON / YAML / config |
| - | | + | [*.{json, |
| - | | + | indent_size = 2 |
| - | | + | </ |
| - | * 🆓 Firebase Hosting | + | |
| - | * 🆓 Cloudflare Pages (statisch oder Functions; Free Tier sehr großzügig) | + | ==== Beispiele |
| + | '' | ||
| + | <code javascript> | ||
| + | export default { | ||
| + | | ||
| + | | ||
| + | | ||
| + | printWidth: 100, | ||
| + | }; | ||
| + | </ | ||
| + | |||
| + | '' | ||
| + | Für die ganze Konfigurationsdatei inklusive TSLint: https:// | ||
| + | <code javascript> | ||
| + | ... | ||
| + | ignores: [' | ||
| + | ... | ||
| + | quotes: [' | ||
| + | ... | ||
| + | prettierConfig.default, | ||
| + | ... | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Beispiele Python ==== | ||
| + | '' | ||
| + | <code ini> | ||
| + | [tool.black] | ||
| + | line-length = 100 | ||
| + | target-version = [' | ||
| + | skip-string-normalization = true | ||
| + | extend-exclude = ''' | ||
| + | /( | ||
| + | generated | ||
| + | )/ | ||
| + | ''' | ||
| + | </ | ||
| + | |||
| + | '' | ||
| + | <code ini> | ||
| + | [MASTER] | ||
| + | ignore=.venv, | ||
| + | |||
| + | [MESSAGES CONTROL] | ||
| + | |||
| + | # Disable the message, report, category or checker with the given id(s). | ||
| + | disable= | ||
| + | invalid-name, | ||
| + | C0114, | ||
| + | C0115, | ||
| + | C0116, | ||
| + | </ | ||
| - | Backend | ||
| - | * 🆓 Render (Free Tier schläft nach Inaktivität) | ||
| - | * 🆓 Railway (Free Tier begrenzt) | ||
| - | * 🆓 Fly.io (global deploy; Free Tier begrenzt) | ||
| - | * 🆓 Firebase Cloud Functions (serverless; | ||
| - | * 💰 AWS (EC2, Lambda, Elastic Beanstalk) (Free Tier 12 Monate) | ||
| - | * 💰 Azure App Service (Free Tier sehr minimal) | ||
| - | * 💰 Google Cloud Run / App Engine (Free Tier ok) | ||
| - | Datenbanken | ||
| - | * 🆓 Firebase Firestore (NoSQL; Free Tier) | ||
| - | * 🆓 Supabase (Postgres; Free Tier limitiert) | ||
| - | * 🆓 MongoDB Atlas (Shared Cluster gratis) | ||
| - | * 🆓 Neon.tech (Postgres; Free Tier sehr gut) | ||
| - | * 💰 AWS RDS / DynamoDB (Free Tier eingeschränkt/ | ||
| - | * 💰 Azure SQL / CosmosDB (Free Tier eingeschränkt) | ||
| - | '' | ||