mirror of
https://github.com/Alex38Lyon/Synthese-PSM_LARRA.git
synced 2026-09-30 07:21:55 +00:00
Refactor GitHub Actions to use Micromamba
Updated GitHub Actions workflow to use Micromamba for Python environment setup instead of traditional Python installation. Added explicit steps for checking GDAL and SFCGAL versions, and modified file handling for generated outputs.
This commit is contained in:
@@ -6,6 +6,7 @@ on:
|
||||
paths:
|
||||
- 'Outputs/SHP/*.shp'
|
||||
|
||||
# Permet de lancer l'action manuellement
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
@@ -24,116 +25,152 @@ jobs:
|
||||
uses: actions/checkout@v6
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Installation de Python
|
||||
# Installation de Micromamba
|
||||
# ------------------------------------------------------------
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v7
|
||||
- name: Setup Micromamba
|
||||
uses: mamba-org/setup-micromamba@v2
|
||||
with:
|
||||
python-version: '3.12'
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Installation de GDAL et SFCGAL
|
||||
# ------------------------------------------------------------
|
||||
- name: Install GDAL and SFCGAL
|
||||
run: |
|
||||
sudo apt-get update
|
||||
|
||||
sudo apt-get install -y \
|
||||
gdal-bin \
|
||||
libgdal-dev \
|
||||
libsfcgal-dev
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Vérification de GDAL
|
||||
# ------------------------------------------------------------
|
||||
- name: Check GDAL
|
||||
run: |
|
||||
echo "========================================"
|
||||
echo "GDAL système"
|
||||
echo "========================================"
|
||||
|
||||
gdal-config --version
|
||||
|
||||
echo
|
||||
echo "gdal-config :"
|
||||
which gdal-config
|
||||
|
||||
echo
|
||||
echo "GDAL --version :"
|
||||
gdalinfo --version
|
||||
environment-name: pyThtoQgis
|
||||
create-args: >-
|
||||
python=3.12
|
||||
gdal
|
||||
sfcgal
|
||||
numpy
|
||||
pip
|
||||
init-shell: bash
|
||||
cache-environment: true
|
||||
cache-downloads: true
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Installation des bibliothèques Python
|
||||
# ------------------------------------------------------------
|
||||
- name: Install Python dependencies
|
||||
shell: bash -el {0}
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
|
||||
pip install numpy
|
||||
pip install alive-progress
|
||||
|
||||
pip install "gdal[numpy]==$(gdal-config --version).*"
|
||||
python -m pip install alive-progress
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Vérification des bibliothèques Python
|
||||
# Vérification de l'environnement
|
||||
# ------------------------------------------------------------
|
||||
- name: Test Python dependencies
|
||||
- name: Check GDAL and SFCGAL
|
||||
shell: bash -el {0}
|
||||
run: |
|
||||
|
||||
echo "========================================"
|
||||
echo "Python"
|
||||
echo "========================================"
|
||||
|
||||
python --version
|
||||
which python
|
||||
|
||||
echo
|
||||
echo "========================================"
|
||||
echo "NumPy"
|
||||
echo "Conda"
|
||||
echo "========================================"
|
||||
|
||||
python -c "import numpy; print(numpy.__version__)"
|
||||
echo "$CONDA_PREFIX"
|
||||
|
||||
conda list | grep -E "gdal|libgdal|sfcgal|geos|numpy"
|
||||
|
||||
echo
|
||||
echo "========================================"
|
||||
echo "GDAL Python"
|
||||
echo "GDAL"
|
||||
echo "========================================"
|
||||
|
||||
python -c "from osgeo import gdal; print(gdal.__version__)"
|
||||
gdalinfo --version
|
||||
|
||||
echo
|
||||
echo "GDAL Python :"
|
||||
|
||||
python -c "
|
||||
from osgeo import gdal
|
||||
print(gdal.__version__)
|
||||
"
|
||||
|
||||
echo
|
||||
echo "========================================"
|
||||
echo "OGR"
|
||||
echo "========================================"
|
||||
|
||||
python -c "from osgeo import ogr; print('OGR OK')"
|
||||
python -c "
|
||||
from osgeo import ogr
|
||||
print('OGR OK')
|
||||
print('GEOS version:', ogr.GetGEOSVersionMajor(),
|
||||
ogr.GetGEOSVersionMinor(),
|
||||
ogr.GetGEOSVersionMicro())
|
||||
"
|
||||
|
||||
echo
|
||||
echo "========================================"
|
||||
echo "alive-progress"
|
||||
echo "SFCGAL"
|
||||
echo "========================================"
|
||||
|
||||
python -c "from alive_progress import alive_bar; print('alive-progress OK')"
|
||||
sfcgal-config --version || true
|
||||
|
||||
echo
|
||||
echo "========================================"
|
||||
echo "Test SFCGAL via OGR"
|
||||
echo "========================================"
|
||||
|
||||
python - <<'PY'
|
||||
from osgeo import ogr
|
||||
|
||||
print("Création d'une géométrie 3D...")
|
||||
|
||||
# PolyhedralSurface simple :
|
||||
# une pyramide composée de triangles
|
||||
wkt = """
|
||||
POLYHEDRALSURFACE Z (
|
||||
((0 0 0, 10 0 0, 0 10 0, 0 0 0)),
|
||||
((0 0 0, 10 0 0, 0 0 10, 0 0 0)),
|
||||
((10 0 0, 0 10 0, 0 0 10, 10 0 0)),
|
||||
((0 10 0, 0 0 0, 0 0 10, 0 10 0)),
|
||||
((0 0 10, 10 0 0, 0 0 0, 0 0 10))
|
||||
)
|
||||
"""
|
||||
|
||||
geom = ogr.CreateGeometryFromWkt(wkt)
|
||||
|
||||
if geom is None:
|
||||
raise RuntimeError("Impossible de créer la géométrie de test")
|
||||
|
||||
print("Type :", geom.GetGeometryName())
|
||||
|
||||
try:
|
||||
valid = geom.IsValid()
|
||||
print("IsValid() :", valid)
|
||||
print("SFCGAL accessible par OGR : OK")
|
||||
|
||||
except RuntimeError as e:
|
||||
print("ERREUR IsValid() :", e)
|
||||
raise
|
||||
PY
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Exécution de pyThtoQgis
|
||||
# ------------------------------------------------------------
|
||||
- name: Run pyThtoQgis
|
||||
shell: bash -el {0}
|
||||
working-directory: Scripts/pyThtoQgis
|
||||
run: |
|
||||
python pyThtoQgis.py --folder "../../Outputs/SHP/"
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Vérification des fichiers générés
|
||||
# Affichage des fichiers générés
|
||||
# ------------------------------------------------------------
|
||||
- name: Check generated files
|
||||
- name: Show generated files
|
||||
shell: bash -el {0}
|
||||
run: |
|
||||
|
||||
echo "========================================"
|
||||
echo "GPKG et logs générés"
|
||||
echo "Fichiers générés"
|
||||
echo "========================================"
|
||||
|
||||
find Outputs -type f \( \
|
||||
-name "*.gpkg" -o \
|
||||
-name "pyThtoQgis.log" \
|
||||
\) -print
|
||||
find Outputs/SHP/QGis_GPKG_Files \
|
||||
-maxdepth 1 \
|
||||
-type f \
|
||||
-print
|
||||
|
||||
echo
|
||||
echo "========================================"
|
||||
@@ -142,6 +179,26 @@ jobs:
|
||||
|
||||
git status --short
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Ajout explicite des résultats
|
||||
# ------------------------------------------------------------
|
||||
- name: Add generated files
|
||||
shell: bash -el {0}
|
||||
run: |
|
||||
|
||||
git add Outputs/SHP/QGis_GPKG_Files/*.gpkg
|
||||
|
||||
# Le log peut être ignoré par .gitignore.
|
||||
# -f force son ajout.
|
||||
git add -f Outputs/SHP/QGis_GPKG_Files/pyThtoQgis.log
|
||||
|
||||
echo
|
||||
echo "========================================"
|
||||
echo "Fichiers prêts pour le commit"
|
||||
echo "========================================"
|
||||
|
||||
git status --short
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Commit des résultats
|
||||
# ------------------------------------------------------------
|
||||
@@ -149,5 +206,6 @@ jobs:
|
||||
uses: stefanzweifel/git-auto-commit-action@v7
|
||||
with:
|
||||
commit_message: "Auto-run pyThtoQgis"
|
||||
file_pattern: 'Outputs/**/*.gpkg Outputs/**/pyThtoQgis.log'
|
||||
|
||||
file_pattern: >-
|
||||
Outputs/SHP/QGis_GPKG_Files/*.gpkg
|
||||
Outputs/SHP/QGis_GPKG_Files/pyThtoQgis.log
|
||||
|
||||
Reference in New Issue
Block a user