Skip to content

Refactor workflow comments for clarity and consistency, improve GitHu… #12

Refactor workflow comments for clarity and consistency, improve GitHu…

Refactor workflow comments for clarity and consistency, improve GitHu… #12

name: Step 0 # Start Exercise
on:
# Auto-start quand le dépôt élève est créé depuis la template
# Le premier état contient .github/**, donc ce push déclenche Step 0
push:
branches: [ main ]
paths:
- '.github/**'
# Secours manuel
workflow_dispatch:
permissions:
contents: write
issues: write
pull-requests: write
actions: write
# Évite deux exécutions concurrentes sur la même ref
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
STEP_1_FILE: ".github/steps/1-step.md"
jobs:
start_exercise:
name: Start Exercise
# ✅ Corrigé, utilisation de la syntaxe d'expression GitHub
if: ${{ !github.event.repository.is_template }}
uses: skills/exercise-toolkit/.github/workflows/start-exercise.yml@v0.7.1
with:
exercise-title: "GitHub Basics"
intro-message: "Bienvenue, cette issue va te guider pas à pas dans le cours."
post_next_step_content:
name: Post next step content
needs: [start_exercise]
if: ${{ needs.start_exercise.result == 'success' }}
runs-on: ubuntu-latest
env:
ISSUE_NUMBER: ${{ needs.start_exercise.outputs.issue-number }}
ISSUE_REPOSITORY: ${{ github.repository }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
persist-credentials: true
fetch-depth: 0
# Se place explicitement sur le dernier commit distant
- name: Sync to latest remote main
run: |
git fetch origin main
git checkout -B main origin/main
- name: Create comment - add step content
uses: GrantBirki/comment@v2.1.1
with:
repository: ${{ env.ISSUE_REPOSITORY }}
issue-number: ${{ env.ISSUE_NUMBER }}
file: ${{ env.STEP_1_FILE }}
vars: |
login: ${{ github.actor }}
full_repo_name: ${{ github.repository }}
- name: Create comment - watching for progress
uses: GrantBirki/comment@v2.1.1
with:
repository: ${{ env.ISSUE_REPOSITORY }}
issue-number: ${{ env.ISSUE_NUMBER }}
file: .github/i18n/fr/watching-for-progress.md
# ÉCRASE le README EN par le README FR
- name: Construire README FR
id: build-readme-fr
uses: skills/action-text-variables@v3
with:
template-file: .github/i18n/fr/readme-start.md
template-vars: |
title: "GitHub Basics"
login: ${{ github.actor }}
issue_url: https://github.com/${{ github.repository }}/issues/${{ env.ISSUE_NUMBER }}
- name: Mettre à jour README.md (FR)
run: echo "$README_CONTENT" > README.md
env:
README_CONTENT: ${{ steps.build-readme-fr.outputs.updated-text }}
- name: Commit et push du README FR
shell: bash
env:
GIT_AUTHOR_NAME: github-actions[bot]
GIT_AUTHOR_EMAIL: 41898282+github-actions[bot]@users.noreply.github.com
GIT_COMMITTER_NAME: github-actions[bot]
GIT_COMMITTER_EMAIL: 41898282+github-actions[bot]@users.noreply.github.com
run: |
set -e
git add README.md
if git diff --cached --quiet; then
echo "Aucun changement à committer"
else
git commit -m "docs(readme): version FR pour l’intro"
fi
# On est déjà rebased sur origin/main, le push sera fast-forward
git push origin main
- name: Remplacer le corps de l’issue par la version FR
uses: actions/github-script@v7
env:
ISSUE_NUMBER: ${{ env.ISSUE_NUMBER }}
with:
script: |
const {owner, repo} = context.repo;
const number = Number(process.env.ISSUE_NUMBER);
const body = [
"👋 Salut @" + context.actor + " ! Bienvenue dans ton exercice **GitHub Skills**.",
"",
"Bienvenue, cette issue va te guider pas à pas dans le cours.",
"",
"✨ Il s'agit d'un exercice GitHub Skills interactif et pratique.",
"",
"Au fil des étapes, je publierai des mises à jour dans les commentaires :",
"",
"✅ Vérifier ton travail et t’indiquer la suite",
"💡 Partager des conseils et des ressources",
"🚀 Célébrer ta progression et la fin",
"",
"C'est parti, amuse-toi bien !",
"",
"Mona"
].join('\n');
await github.rest.issues.update({ owner, repo, issue_number: number, body });
- name: Enable next step workflow
run: gh workflow enable "Step 1"
env:
GH_TOKEN: ${{ github.token }}
# On désactive Step 0 pour empêcher tout nouveau run
- name: Disable current workflow
run: gh workflow disable "${{ github.workflow }}"
env:
GH_TOKEN: ${{ github.token }}