Skip to content

Commit 126b5ed

Browse files
committed
Update VERSION to 1.1.0 for the latest release
1 parent 8ffd57c commit 126b5ed

3 files changed

Lines changed: 177 additions & 1 deletion

File tree

.github/CICD_SETUP.md

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
# 🚀 CI/CD Setup für SimpleSecCheck
2+
3+
## Übersicht
4+
5+
Dieses Projekt nutzt **GitHub Actions** für Continuous Integration und Continuous Delivery (CI/CD).
6+
7+
### Was passiert automatisch?
8+
9+
1. **Bei jedem Push auf `main`**:
10+
- Docker Image wird gebaut
11+
- Image wird auf Docker Hub gepusht
12+
- Tags werden automatisch erstellt
13+
14+
2. **Bei Pull Requests**:
15+
- Docker Image wird gebaut und getestet
16+
- Image wird NICHT gepusht (nur Validierung)
17+
18+
## 🔐 GitHub Secrets einrichten
19+
20+
Damit die Pipeline funktioniert, musst du diese **GitHub Secrets** einrichten:
21+
22+
### Schritt 1: Gehe zu deinem GitHub Repository
23+
- Navigiere zu: **Settings****Secrets and variables****Actions**
24+
25+
### Schritt 2: Erstelle die folgenden Secrets
26+
27+
#### `DOCKERHUB_USERNAME`
28+
- **Name**: `DOCKERHUB_USERNAME`
29+
- **Value**: `fr4iser` (dein Docker Hub Username)
30+
31+
#### `DOCKERHUB_TOKEN`
32+
- **Name**: `DOCKERHUB_TOKEN`
33+
- **Wert**: Dein Docker Hub Personal Access Token
34+
- **Wie erstellt man einen Token?**:
35+
1. Gehe zu https://hub.docker.com/settings/security
36+
2. Klicke auf "New Access Token"
37+
3. Gib ihm einen Namen (z.B. "github-actions")
38+
4. Kopiere den Token (wird nur einmal angezeigt!)
39+
5. Füge ihn als Secret `DOCKERHUB_TOKEN` in GitHub ein
40+
41+
## 📋 Workflow-Details
42+
43+
### Trigger
44+
Die Pipeline wird ausgelöst bei:
45+
- ✅ Pushes auf `main` branch
46+
- ✅ Pull Requests auf `main`
47+
- ✅ Manuelle Auslösung via GitHub UI
48+
49+
### Tags
50+
Das Image wird mit folgenden Tags erstellt:
51+
- `latest` (nur bei main branch)
52+
- `main-<sha>` (z.B. `main-abc1234`)
53+
- `1.1.0` (Version aus build-args)
54+
55+
### Cache-Optimierung
56+
- Docker Layer Caching wird verwendet für schnellere Builds
57+
- Verwendet: `fr4iser/simpleseccheck:buildcache`
58+
59+
## 🎯 Manuelle Ausführung
60+
61+
Du kannst die Pipeline auch manuell starten:
62+
1. Gehe zu **Actions** Tab
63+
2. Wähle "Build and Push Docker Image"
64+
3. Klicke "Run workflow"
65+
66+
## 📊 Build-Status anzeigen
67+
68+
Nach jedem Push siehst du den Build-Status:
69+
- 🟢 Grüner Checkmark = Erfolgreich
70+
- 🔴 Rotes X = Fehler
71+
- 🟡 Gelber Kreis = Läuft gerade
72+
73+
## 🔧 Fehlerbehebung
74+
75+
### "Authentication failed" Fehler
76+
- Überprüfe, ob die Docker Hub Secrets korrekt gesetzt sind
77+
- Stelle sicher, dass `DOCKERHUB_TOKEN` ein **Access Token** ist, nicht dein Passwort
78+
79+
### "Permission denied" Fehler
80+
- Überprüfe, ob der Docker Hub Username korrekt ist
81+
- Stelle sicher, dass das Repository existiert auf Docker Hub
82+
83+
## 🚀 Version hochsetzen
84+
85+
Um die Version zu ändern:
86+
1. Bearbeite die Datei `VERSION`
87+
2. Bearbeite `build-args` in `.github/workflows/docker-build-push.yml`
88+
3. Committe und pushe die Änderungen
89+
90+
```bash
91+
# Beispiel
92+
echo "1.2.0" > VERSION
93+
git add VERSION .github/workflows/docker-build-push.yml
94+
git commit -m "Bump version to 1.2.0"
95+
git push
96+
```
97+
98+
## 📚 Weitere Ressourcen
99+
100+
- [GitHub Actions Dokumentation](https://docs.github.com/en/actions)
101+
- [Docker Buildx](https://docs.docker.com/build/buildx/)
102+
- [Docker Metadata Action](https://github.com/docker/metadata-action)
103+
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
name: Build and Push Docker Image
2+
3+
# Diese Pipeline startet bei:
4+
on:
5+
push:
6+
branches:
7+
- main # Nur bei pushes auf main branch
8+
paths:
9+
- 'Dockerfile' # Oder Änderungen am Dockerfile
10+
- '.github/workflows/**' # Oder an den Workflows selbst
11+
- 'scripts/**' # Oder an den Scripts
12+
pull_request:
13+
branches:
14+
- main
15+
workflow_dispatch: # Manueller Trigger via GitHub UI
16+
17+
# Umgebungsvariablen
18+
env:
19+
DOCKER_IMAGE_NAME: simpleseccheck
20+
DOCKER_USERNAME: fr4iser
21+
22+
jobs:
23+
build-and-push:
24+
runs-on: ubuntu-latest
25+
26+
steps:
27+
# 1. Code auschecken
28+
- name: Checkout code
29+
uses: actions/checkout@v4
30+
31+
# 2. Metadaten setzen (für bessere Beschriftungen)
32+
- name: Extract metadata
33+
id: meta
34+
uses: docker/metadata-action@v5
35+
with:
36+
images: ${{ env.DOCKER_USERNAME }}/${{ env.DOCKER_IMAGE_NAME }}
37+
tags: |
38+
type=ref,event=branch
39+
type=ref,event=pr
40+
type=semver,pattern={{version}}
41+
type=semver,pattern={{major}}.{{minor}}
42+
type=sha,prefix={{branch}}-
43+
type=raw,value=latest,enable={{is_default_branch}}
44+
45+
# 3. Setup Docker Buildx (für Multi-Arch Support)
46+
- name: Set up Docker Buildx
47+
uses: docker/setup-buildx-action@v3
48+
49+
# 4. Login zu Docker Hub
50+
- name: Login to Docker Hub
51+
uses: docker/login-action@v3
52+
with:
53+
username: ${{ secrets.DOCKERHUB_USERNAME }}
54+
password: ${{ secrets.DOCKERHUB_TOKEN }}
55+
56+
# 5. Build und Push
57+
- name: Build and push Docker image
58+
uses: docker/build-push-action@v5
59+
with:
60+
context: .
61+
file: ./Dockerfile
62+
push: true
63+
tags: ${{ steps.meta.outputs.tags }}
64+
labels: ${{ steps.meta.outputs.labels }}
65+
cache-from: type=registry,ref=${{ env.DOCKER_USERNAME }}/${{ env.DOCKER_IMAGE_NAME }}:buildcache
66+
cache-to: type=registry,ref=${{ env.DOCKER_USERNAME }}/${{ env.DOCKER_IMAGE_NAME }}:buildcache,mode=max
67+
build-args: |
68+
VERSION=1.1.0
69+
70+
# 6. Image-Details anzeigen (optional)
71+
- name: Image digest
72+
run: echo ${{ steps.build.outputs.digest }}
73+

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.0.0
1+
1.1.0

0 commit comments

Comments
 (0)