Zum Hauptinhalt springen
  1. Tags/

Pipeline

GitHub DevSecOps Teil 2: Ein einfaches Projekt und den ersten Workflow erstellen

Bevor wir Security-Tools an irgendetwas anschliessen, brauchen wir ein Repository, eine Pipeline und einen lauffähigen Build. In Teil 2 unserer GitHub DevSecOps Serie legen Patrick Steger und ich ein privates GitHub-Repo für einen kleinen Java-Spring-Boot-Service an, aktivieren GitHub Actions und verdrahten eine Pipeline aus zwei Workflows, die den Code kompiliert und die Unit Tests ausführt. Das ist das Skelett, an dem in der Serie alles Weitere hängt.

GitLab DevSecOps Teil 2: Ein einfaches Projekt und die erste Pipeline erstellen

Bevor wir irgendwelche Security-Checks nach links verschieben können, brauchen wir ein Projekt, ein Repository und eine Pipeline, die tatsächlich etwas baut. In Teil 2 unserer GitLab DevSecOps Serie loggen sich Patrick Steger und ich in GitLab ein, legen ein neues .NET-Core-Projekt aus einem Template an und schauen uns die .gitlab-ci.yml an, die GitLab automatisch für uns generiert — inklusive Build- und Test-Job, die das Fundament für alles werden, was wir später ergänzen.

Was ist Continuous Deployment (CD)?

Continuous Deployment ist der finale, aggressivste Schritt in der CI/CD-Progression. CI beweist, dass der Code baut und die Unit Tests grün sind. Continuous Delivery beweist, dass das Artefakt in einer produktionsähnlichen Umgebung funktioniert. Continuous Deployment entfernt den letzten manuellen Checkpoint: Wenn alle Tests auf dem Weg grün sind, geht die Änderung direkt in Produktion. Kein “Deploy”-Button, kein Freitagnachmittag-Release-Fenster, kein Mensch im Loop für den letzten Schritt.

Was ist Continuous Delivery (CD)?

Continuous Integration endet mit einem getesteten Artefakt. Das klingt gut, aber ein grüner Build heisst nicht, dass die Software in einer realistischen Umgebung tatsächlich funktioniert. Unit Tests laufen isoliert. Integrationstests laufen gegen Mocks. Solange man die Software nicht irgendwo hinstellt, das aussieht wie Produktion, und sie unter echten Bedingungen ausführt, hat man eigentlich noch nichts bewiesen. Continuous Delivery ist der Schritt, der diese Lücke schliesst.

Was ist Continuous Integration (CI)?

In der klassischen Softwareentwicklung war Integration ein einziges, schmerzhaftes Ereignis. Jeder Entwickler arbeitete wochen- oder monatelang isoliert, und am Ende wurde alles in einem grossen Big Bang zusammengeführt. Dieser Integrationsschritt dauerte Wochen, manchmal Monate. Konflikte häuften sich an, Bugs versteckten sich in den Nahtstellen zwischen Modulen, und niemand konnte mit Sicherheit sagen, ob das System tatsächlich funktionierte. Continuous Integration wurde erfunden, um genau diesen Schmerz aufzulösen.