From 3a6693a4677a647d619900047f58800fa3ff85b5 Mon Sep 17 00:00:00 2001 From: "Vincent Namy (EDU_GE)" <vincent.namy@edu.ge.ch> Date: Thu, 26 Dec 2024 15:32:07 +0100 Subject: [PATCH] =?UTF-8?q?Mettre=20=C3=A0=20jour=20le=20fichier=20.gitlab?= =?UTF-8?q?-ci.yml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitlab-ci.yml | 36 +++++++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4c8eb2a..08b02c8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,21 +7,43 @@ format_files: before_script: - pip install jq nbformat script: - # Récupère les fichiers JSON et IPYNB modifiés dans le commit - - MODIFIED_JSON_FILES=$(git diff --name-only HEAD~1 HEAD | grep '\.json$' || true) - - MODIFIED_IPYNB_FILES=$(git diff --name-only HEAD~1 HEAD | grep '\.ipynb$' || true) - # Si aucun fichier n'est modifié, terminer le job - - if [ -z "$MODIFIED_JSON_FILES" ] && [ -z "$MODIFIED_IPYNB_FILES" ]; then echo "No files to format."; exit 0; fi + # Crée un script Python pour formater les fichiers .ipynb + - | + echo ' + import nbformat + import sys + + def reformat_notebook(file_path): + with open(file_path, "r", encoding="utf-8") as f: + notebook = nbformat.read(f, as_version=4) + + with open(file_path, "w", encoding="utf-8") as f: + nbformat.write(notebook, f) + + if __name__ == "__main__": + for file_path in sys.argv[1:]: + reformat_notebook(file_path) + print(f"Formatted: {file_path}") + ' > reformat_ipynb.py + # Identifier les fichiers modifiés + - MODIFIED_JSON_FILES=$(git diff --name-only $CI_COMMIT_BEFORE_SHA $CI_COMMIT_SHA | grep '\.json$' || true) + - MODIFIED_IPYNB_FILES=$(git diff --name-only $CI_COMMIT_BEFORE_SHA $CI_COMMIT_SHA | grep '\.ipynb$' || true) + - echo "Modified JSON files: $MODIFIED_JSON_FILES" + - echo "Modified IPYNB files: $MODIFIED_IPYNB_FILES" # Formatage des fichiers JSON - for file in $MODIFIED_JSON_FILES; do jq . "$file" > "$file.formatted" && mv "$file.formatted" "$file"; done # Formatage des fichiers IPYNB - for file in $MODIFIED_IPYNB_FILES; do - python -m nbformat --to notebook --input "$file" --output "$file.formatted" && mv "$file.formatted" "$file"; + python reformat_ipynb.py "$file"; done - # Ajouter les modifications pour le commit (optionnel) + # Ajouter et pousser les modifications + - git config --global user.email "ci-bot@example.com" + - git config --global user.name "CI Bot" - git add $MODIFIED_JSON_FILES $MODIFIED_IPYNB_FILES + - git commit -m "Formatted JSON and IPYNB files" || echo "No changes to commit." + - git push origin $CI_COMMIT_REF_NAME rules: - changes: - "*.json" -- GitLab