À la fin de ce tutoriel, vous aurez un portfolio GitHub DevOps crédible pour un recruteur Platform/SRE en 2026 : 3–5 repos pinned, README qui convertit en 30 secondes, CI verte, IaC documentée en ca-central-1, workflow OIDC sketch, scorecard recruteur et histoires STAR prêtes pour l’entretien.

Niveau : Intermédiaire · Temps estimé : 55–75 min · Versions cibles : Git / GitHub CLI · GitHub Actions · Terraform ≥ 1.5 (validate) · Docker · Trivy (option) · Dernière vérification : 2026-09-11 · Region : ca-central-1

Slug : wow-portfolio-github-devops · Série : WOW (50/50) · Mot-clé SEO : portfolio GitHub DevOps · Publish : HOLD

← Précédent : System design DevOps · Aussi : Entretien DevOps 2026 · Homelab k3s · GitHub Actions reusable · Hubs Docker · Kubernetes · Git

Prérequis

Coût estimé : ~0 €. Lab local + minutes Actions gratuites. Si vous faites un terraform apply, Free Tier + cleanup documenté.

export AWS_PROFILE=lab
export AWS_DEFAULT_REGION=ca-central-1
git --version
gh auth status 2>/dev/null || echo "gh optionnel — UI GitHub OK"

Ce que nous allons construire

Portfolio GitHub DevOps (WOW 50/50) — ca-central-1
  ├── Pourquoi repo > CV PDF (preuve d’exécution)
  ├── Architecture DEH : 3–5 repos pinned
  ├── Lab devops-portfolio-lab (structure + README + CI)
  ├── Profil GitHub : bio, pins, Topics
  ├── Sécurité : .gitignore, OIDC, pas de secrets
  ├── Scorecard recruteur + anti-patterns
  └── Quiz + FAQ + lien entretien STAR

(Schéma — alt : « Recruteur DevOps ouvre un portfolio GitHub avec README, badges CI verts, IaC Terraform ca-central-1 et cleanup documenté ».)

Étape 1 — Pourquoi un portfolio beat un CV PDF

Un CV PDF liste des mots-clés. Un portfolio GitHub DevOps prouve que vous exécutez : README clair, pipeline verte, IaC versionnée, cleanup, ADR ou runbook. En 2026, le recruteur ouvre vos pins avant l’appel. Quarante forks vides ou un README « TODO » = 30 secondes perdues.

Signal CV Signal portfolio
« Terraform, K8s, CI/CD » Repo avec terraform validate + badge Actions
« AWS » Region ca-central-1, tags, coût & destroy
Soft skills Issues/PR propres, LICENSE, Topics

Preuve = README + CI verte + IaC + docs. Pas un monorepo de tutos copiés.

Étape 2 — Architecture portfolio DEH (3–5 repos)

Qualité > quantité. Pinner 3 à 5 repos max :

# Repo (exemple) Ce que le recruteur vérifie
1 infra-lab-aws Terraform, ca-central-1, destroy
2 app-container-oidc Dockerfile + GH Actions OIDC
3 k8s-gitops-sketch / homelab k3s Manifests + README
4 (opt.) notes IDP Golden path — Platform Engineering
5 (opt.) devops-portfolio-lab Hub + scorecard (ce lab)

Ordre des pins : impact métier d’abord (infra ou app), puis GitOps, puis notes.

Étape 3 — Lab : créer devops-portfolio-lab

Objectif : repo actionnable (placeholders) avec structure, README, workflow, LICENSE, Topics. Region ca-central-1.

3.1 — Scaffold

mkdir -p devops-portfolio-lab/{infra,app/src,docs,.github/workflows}
cd devops-portfolio-lab

cat > .gitignore <<'GI'
.terraform/
*.tfstate*
*.tfvars
.env
*.pem
credentials.json
aws-credentials.txt
GI

printf '%sn' 'MIT License' '' 'Copyright (c) 2026 YOUR_NAME' > LICENSE

3.2 — Infra placeholder

# infra/main.tf
terraform {
  required_version = ">= 1.5.0"
  required_providers {
    aws = { source = "hashicorp/aws", version = "~> 5.0" }
  }
}

provider "aws" {
  region = "ca-central-1"
  default_tags {
    tags = {
      Project     = "devops-portfolio-lab"
      Environment = "lab"
      ManagedBy   = "terraform"
    }
  }
}
# Apply optionnel (Free Tier). Cleanup : terraform destroy
cat > infra/README.md <<'MD'
# Infra lab — ca-central-1
- CI : `terraform init -backend=false && terraform validate`
- Apply optionnel ; destroy obligatoire si apply
MD

3.3 — App + workflow CI

echo 'print("portfolio-lab ok")' > app/src/main.py
cat > app/Dockerfile <<'DF'
FROM python:3.12-slim
WORKDIR /app
COPY src/ ./src/
CMD ["python", "src/main.py"]
DF

cat > .github/workflows/ci.yml <<'YML'
name: ci
on:
  push: { branches: [main] }
  pull_request:
jobs:
  validate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: hashicorp/setup-terraform@v3
        with: { terraform_version: "1.9.0" }
      - name: fmt & validate
        working-directory: infra
        run: |
          terraform fmt -check -recursive || true
          terraform init -backend=false
          terraform validate
  docker:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: docker build -t devops-portfolio-lab:ci ./app
      # Option Trivy : docker run --rm aquasec/trivy image devops-portfolio-lab:ci
YML

3.4 — README qui recrute (hook 30s)

Créez README.md à la racine avec ce modèle :

# devops-portfolio-lab

> Preuve d’exécution DevOps — README · CI · IaC ca-central-1 · cleanup.

![CI](https://github.com/YOUR_USER/devops-portfolio-lab/actions/workflows/ci.yml/badge.svg)

## Hook (30 s)

Lab portfolio pour recruteurs Platform : Terraform validate en **ca-central-1**,
app conteneurisée, Actions sans clés longues. Coût cible **~0 €**.

## Architecture

devops-portfolio-lab → infra/ (Terraform) · app/ (Dockerfile) · docs/ · .github/workflows/

## Quickstart

cd infra && terraform init -backend=false && terraform validate
docker build -t devops-portfolio-lab:local ./app

## Coût & cleanup

CI seule ≈ 0 €. Si apply AWS : Free Tier + `terraform destroy`. Pas de NAT/EKS.

## Sécurité

Pas de secrets dans Git. OIDC AWS (voir tutoriel OIDC DEH). Screenshots sans PII.

3.5 — Scorecard, commit, publish

cat > docs/SCORECARD.md <<'MD'
| Critère | Statut |
|---------|--------|
| README hook + architecture | OK |
| CI (validate + docker) | à confirmer après push |
| IaC ca-central-1 | OK |
| Observabilité minimale | à enrichir (/health) |
| Cleanup documenté | OK |
| ADR / runbook | stub docs/ |
MD

git init && git add . && git commit -m "feat: scaffold portfolio DevOps lab (ca-central-1)"
# gh repo create devops-portfolio-lab --public --source=. --remote=origin --push
# gh repo edit --add-topic devops --add-topic terraform --add-topic portfolio --add-topic ca-central-1

Via UI : repo public, Actions ON, Topics (devops, terraform, portfolio, ca-central-1), LICENSE, pin sur le profil.

Étape 4 — Profil GitHub qui convertit

Élément Recommandation DEH
Bio Rôle + stack + region (ex. « DevOps/Platform · Terraform · K8s · AWS ca-central-1 »)
Pins 1 infra · 2 app+OIDC · 3 GitOps/homelab · 4 hub
Graph Commits réels — pas de greenwashing
Projects Project « Portfolio 2026 » listant les pins
README profil 5 lignes + liens — pas un roman

Pas de screenshots avec emails, IPs privées ou ARNs prod.

Étape 5 — Sécurité (non négociable)

  1. Jamais de secrets dans Git — .gitignore dès le commit 0
  2. OIDC vers AWS, pas d’access keys longues — OIDC AWS
  3. Scan historique : git log -p | rg -i 'AKIA|secret|password' || true
  4. Screenshots sans PII
  5. Region ca-central-1 — pas us-east-1 « par défaut US »

Étape 6 — Scorecard recruteur & anti-patterns

Critère Attendu « wow »
README Hook 30s, ASCII, quickstart, coût, cleanup, badges
CI Verte sur main (validate et/ou build+scan)
IaC Region explicite, tags, destroy doc
Observabilité Healthcheck / logs minimaux
Cleanup Commandes destroy + vérif console
ADR / runbook ≥ 1 décision ou procédure

Anti-patterns : 40 forks vides ; tutos copiés sans apport ; clés dans l’historique ; us-east-1 au lieu de ca-central-1 ; README EN only si cible FR/CA sans version FR ; monorepo fourre-tout.

Étape 7 — Lien entretien (STAR)

Préparez 2–3 histoires STAR depuis vos repos : « CI OIDC sans clé », « destroy après alerte coût », « README qui accélère l’onboarding ». Guide : wow-interview-devops-2026. En call, montrez le badge vert + le destroy — preuve > slide.

Erreurs fréquentes

Erreur Impact Correction
20+ repos pinned Dilution 3–5 pins, ordre métier
README sans quickstart/cleanup Abandon recruteur Hook + coût + destroy
Clés / .tfstate dans Git Rejet sécu .gitignore + OIDC + rotate
Region us-east-1 Incohérence DEH Forcer ca-central-1
CI rouge ou absente Pas de preuve Workflow validate + docker
README EN only (cible FR/CA) Friction locale FR ou bilingue
Forks vides / clones Signal faible Apport + ADR

Quiz (5 questions)

1. Un portfolio GitHub DevOps convainc surtout grâce à : – A. Le nombre de stars
– B. Preuve d’exécution (README, CI, IaC, docs)
– C. Un CV PDF collé dans le repo

2. Combien de repos pinned recommande DEH ? – A. 20+
– B. 3–5 (qualité > quantité)
– C. Exactement 1

3. Region lab imposée : – A. us-east-1
– B. ca-central-1
– C. eu-west-3

4. Identité CI → AWS préférée : – A. Access keys longues dans le repo
– B. OIDC + rôle court
– C. User root AWS

5. Anti-pattern majeur : – A. LICENSE MIT
– B. Clés dans l’historique + forks vides
– C. Badge Actions

Réponses : 1‑B · 2‑B · 3‑B · 4‑B · 5‑B

FAQ

Un CV PDF suffit-il en 2026 ?

Rarement pour DevOps/Platform. Le recruteur veut voir CI, IaC et docs. Le portfolio complète le CV et tranche souvent.

Combien de repos montrer ?

3–5 pinned. Un hub excellent + deux labs solides battent quarante forks sans README.

Faut-il apply Terraform sur AWS ?

Non pour ce lab. terraform validate + Docker build suffisent (~0 €). Si apply : Free Tier + destroy en ca-central-1.

README en français ou en anglais ?

Cible FR/CA : FR (ou bilingue). Un README EN-only freine un panel québécois/FR.

Comment prouver l’OIDC sans AWS complexe ?

Documentez le sketch (trust OIDC, rôle) et liez github-actions-oidc-aws. Mieux qu’une clé longue « pour la démo ».

Lien avec l’entretien oral ?

2–3 STAR depuis vos repos (coût, OIDC, cleanup). Détail : wow-interview-devops-2026.

Pour aller plus loin

Maillage série WOW

← Précédent System design DevOps
→ Suivant — (dernier tuto WOW 50/50)
Aussi Entretien DevOps 2026 · Homelab k3s · GitHub Actions reusable · Platform Engineering

Meta publication (SEO)

  • Title SEO : Portfolio GitHub DevOps qui recrute (lab 2026 FR)
  • Meta description : Construisez un portfolio GitHub DevOps qui recrute : README, CI verte, IaC ca-central-1, OIDC, scorecard recruteur. Lab devops-portfolio-lab + FAQ DEH.
  • Focus keyword : portfolio GitHub DevOps
  • Secondary : README DevOps, portfolio recruteur, GitHub Actions OIDC, ca-central-1
  • Image : assets/web/devopelastichayway/cover-wow-portfolio-github-devops-1200x630.webp (à générer)
  • Catégorie : WOW / DevOps · Niveau : Intermédiaire
  • URL cible : https://devopelastichayway.com/tutoriels/wow-portfolio-github-devops/
  • Post live : N/A (nouveau) · slug wow-portfolio-github-devops · Publish : HOLD (draft only — feu vert Maître requis)

← Catalogue Tutoriels

Pour aller plus loin — hubs live

Retour parcours Catalogue Tutoriels — hub de la série et leçons sœurs.