mirror of
https://github.com/Alex38Lyon/Synthese-PSM_LARRA.git
synced 2026-09-30 07:21:55 +00:00
Rename ScriptPython.yml to ScriptPythonOld.yml
This commit is contained in:
@@ -1,463 +0,0 @@
|
||||
name: ScriptPython
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- 'Outputs/SHP/*.shp'
|
||||
workflow_dispatch:
|
||||
permissions:
|
||||
contents: write
|
||||
concurrency:
|
||||
group: pyThtoQgis
|
||||
cancel-in-progress: false
|
||||
jobs:
|
||||
ScriptPython:
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
# ============================================================
|
||||
# 1. Checkout
|
||||
# ============================================================
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
# ============================================================
|
||||
# 2. Vérification SHP
|
||||
# ============================================================
|
||||
- name: Check SHP changes
|
||||
id: changed
|
||||
shell: bash
|
||||
run: |
|
||||
SHP_FILES=$(git diff-tree \
|
||||
--no-commit-id \
|
||||
--name-only \
|
||||
--diff-filter=AM \
|
||||
-r \
|
||||
"$GITHUB_SHA" \
|
||||
-- 'Outputs/SHP/*.shp')
|
||||
|
||||
echo "SHP ajoutés/modifiés :"
|
||||
echo "$SHP_FILES"
|
||||
|
||||
if [ -n "$SHP_FILES" ]; then
|
||||
echo "shp=true" >> "$GITHUB_OUTPUT"
|
||||
else
|
||||
echo "shp=false" >> "$GITHUB_OUTPUT"
|
||||
fi
|
||||
|
||||
# ============================================================
|
||||
# 3. Arrêt si suppression uniquement
|
||||
# ============================================================
|
||||
- name: Stop if no SHP added or modified
|
||||
if: steps.changed.outputs.shp != 'true'
|
||||
shell: bash
|
||||
run: |
|
||||
echo "Aucun SHP ajouté ou modifié."
|
||||
echo "Arrêt du workflow."
|
||||
|
||||
# ============================================================
|
||||
# 4. Micromamba
|
||||
# IMPORTANT :
|
||||
# PAS de GDAL ici.
|
||||
# GDAL sera fourni par notre package précompilé.
|
||||
# ============================================================
|
||||
- name: Setup Micromamba
|
||||
if: steps.changed.outputs.shp == 'true'
|
||||
uses: mamba-org/setup-micromamba@v3.2.1
|
||||
with:
|
||||
environment-name: pyThtoQgis
|
||||
create-args: >-
|
||||
python=3.12
|
||||
numpy
|
||||
sfcgal=2.2
|
||||
geos
|
||||
proj
|
||||
sqlite
|
||||
libtiff
|
||||
libjpeg-turbo
|
||||
libpng
|
||||
zlib
|
||||
curl
|
||||
openssl
|
||||
init-shell: bash
|
||||
cache-environment: true
|
||||
cache-downloads: true
|
||||
|
||||
# ============================================================
|
||||
# 5. Informations environnement
|
||||
# ============================================================
|
||||
- name: Environment information
|
||||
if: steps.changed.outputs.shp == 'true'
|
||||
shell: bash -el {0}
|
||||
run: |
|
||||
echo "========================================"
|
||||
echo "ENVIRONMENT"
|
||||
echo "========================================"
|
||||
echo "CONDA_PREFIX=$CONDA_PREFIX"
|
||||
python --version
|
||||
echo ""
|
||||
conda list | grep -E \
|
||||
"python|numpy|sfcgal|geos|proj|sqlite"
|
||||
|
||||
# ============================================================
|
||||
# 6. Téléchargement package GDAL
|
||||
# ============================================================
|
||||
- name: Download GDAL + SFCGAL package
|
||||
if: steps.changed.outputs.shp == 'true'
|
||||
shell: bash -el {0}
|
||||
env:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
run: |
|
||||
set -e
|
||||
GDAL_VERSION=3.13.3
|
||||
PACKAGE_NAME="gdal-${GDAL_VERSION}-sfcgal-2.2-geos-3.14.1-ubuntu-24.04"
|
||||
TAG="gdal-sfcgal-${GDAL_VERSION}"
|
||||
|
||||
echo "========================================"
|
||||
echo "GDAL PACKAGE"
|
||||
echo "========================================"
|
||||
echo "Release : $TAG"
|
||||
echo "Package : $PACKAGE_NAME"
|
||||
gh release download "$TAG" \
|
||||
--repo "$GITHUB_REPOSITORY" \
|
||||
--pattern "${PACKAGE_NAME}.tar.gz" \
|
||||
--dir "$RUNNER_TEMP"
|
||||
echo ""
|
||||
echo "Package téléchargé :"
|
||||
ls -lh \
|
||||
"$RUNNER_TEMP/${PACKAGE_NAME}.tar.gz"
|
||||
|
||||
# ============================================================
|
||||
# 7. Installation package GDAL
|
||||
# ============================================================
|
||||
- name: Installation GDAL package
|
||||
if: steps.changed.outputs.shp == 'true'
|
||||
shell: bash -el {0}
|
||||
run: |
|
||||
set -e
|
||||
GDAL_VERSION=3.13.3
|
||||
PACKAGE_NAME="gdal-${GDAL_VERSION}-sfcgal-2.2-geos-3.14.1-ubuntu-24.04"
|
||||
PACKAGE="$RUNNER_TEMP/${PACKAGE_NAME}.tar.gz"
|
||||
EXTRACT_DIR="$RUNNER_TEMP/gdal-extract"
|
||||
|
||||
echo "========================================"
|
||||
echo "INSTALLATION GDAL"
|
||||
echo "========================================"
|
||||
|
||||
# ========================================================
|
||||
# Vérification du package
|
||||
# ========================================================
|
||||
if [ ! -f "$PACKAGE" ]; then
|
||||
echo "ERREUR : package introuvable :"
|
||||
echo "$PACKAGE"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# ========================================================
|
||||
# Extraction
|
||||
# ========================================================
|
||||
rm -rf "$EXTRACT_DIR"
|
||||
mkdir -p "$EXTRACT_DIR"
|
||||
tar \
|
||||
-xzf \
|
||||
"$PACKAGE" \
|
||||
-C "$EXTRACT_DIR"
|
||||
|
||||
# ========================================================
|
||||
# Affichage STRUCTURE REELLE
|
||||
# ========================================================
|
||||
echo ""
|
||||
echo "========================================"
|
||||
echo "STRUCTURE DU PACKAGE"
|
||||
echo "========================================"
|
||||
find "$EXTRACT_DIR" \
|
||||
-maxdepth 6 \
|
||||
-print \
|
||||
| sort
|
||||
|
||||
# ========================================================
|
||||
# Répertoire racine
|
||||
# ========================================================
|
||||
GDAL_DIR="$EXTRACT_DIR/$PACKAGE_NAME"
|
||||
|
||||
if [ ! -d "$GDAL_DIR" ]; then
|
||||
echo ""
|
||||
echo "ERREUR : répertoire package absent :"
|
||||
echo "$GDAL_DIR"
|
||||
exit 1
|
||||
fi
|
||||
echo ""
|
||||
echo "GDAL_DIR :"
|
||||
echo "$GDAL_DIR"
|
||||
|
||||
# ========================================================
|
||||
# Vérification structure attendue
|
||||
# ========================================================
|
||||
echo ""
|
||||
echo "========================================"
|
||||
echo "VERIFICATION"
|
||||
echo "========================================"
|
||||
if [ ! -d "$GDAL_DIR/bin" ]; then
|
||||
echo "ERREUR : bin/ absent"
|
||||
exit 1
|
||||
fi
|
||||
if [ ! -d "$GDAL_DIR/lib" ]; then
|
||||
echo "ERREUR : lib/ absent"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# ========================================================
|
||||
# Installation BIN
|
||||
# ========================================================
|
||||
echo ""
|
||||
echo "Installation bin/..."
|
||||
cp -av \
|
||||
"$GDAL_DIR/bin/." \
|
||||
"$CONDA_PREFIX/bin/"
|
||||
|
||||
# ========================================================
|
||||
# Installation LIB
|
||||
# ========================================================
|
||||
echo ""
|
||||
echo "Installation lib/..."
|
||||
cp -av \
|
||||
"$GDAL_DIR/lib/." \
|
||||
"$CONDA_PREFIX/lib/"
|
||||
# ========================================================
|
||||
# Installation SHARE
|
||||
# ========================================================
|
||||
if [ -d "$GDAL_DIR/share" ]; then
|
||||
echo ""
|
||||
echo "Installation share/..."
|
||||
cp -av \
|
||||
"$GDAL_DIR/share/." \
|
||||
"$CONDA_PREFIX/share/"
|
||||
fi
|
||||
|
||||
# ========================================================
|
||||
# Vérification GDAL
|
||||
# ========================================================
|
||||
echo ""
|
||||
echo "========================================"
|
||||
echo "VERIFICATION GDAL"
|
||||
echo "========================================"
|
||||
echo ""
|
||||
echo "gdalinfo :"
|
||||
which gdalinfo
|
||||
gdalinfo --version
|
||||
echo ""
|
||||
echo "GDAL Python :"
|
||||
python - <<'PY'
|
||||
from osgeo import gdal
|
||||
from osgeo import ogr
|
||||
print("GDAL :", gdal.VersionInfo("--version"))
|
||||
print("OGR drivers :", ogr.GetDriverCount())
|
||||
PY
|
||||
echo ""
|
||||
echo "========================================"
|
||||
echo "GDAL INSTALLE"
|
||||
echo "========================================"
|
||||
|
||||
# ============================================================
|
||||
# 8. Vérification GDAL
|
||||
# ============================================================
|
||||
- name: Check GDAL
|
||||
if: steps.changed.outputs.shp == 'true'
|
||||
shell: bash -el {0}
|
||||
run: |
|
||||
set -e
|
||||
echo "========================================"
|
||||
echo "GDAL"
|
||||
echo "========================================"
|
||||
which gdalinfo
|
||||
gdalinfo --version
|
||||
echo ""
|
||||
echo "Python GDAL :"
|
||||
python - <<'PY'
|
||||
from osgeo import gdal
|
||||
print(
|
||||
gdal.VersionInfo("--version")
|
||||
)
|
||||
print()
|
||||
print(
|
||||
gdal.VersionInfo("--build-info")
|
||||
)
|
||||
PY
|
||||
|
||||
|
||||
# ============================================================
|
||||
# 9. Vérification SFCGAL
|
||||
# ============================================================
|
||||
- name: Check SFCGAL linkage
|
||||
if: steps.changed.outputs.shp == 'true'
|
||||
shell: bash -el {0}
|
||||
run: |
|
||||
set -e
|
||||
echo "========================================"
|
||||
echo "GDAL / SFCGAL"
|
||||
echo "========================================"
|
||||
ldd "$CONDA_PREFIX/lib/libgdal.so" \
|
||||
| grep -Ei "sfcgal|geos"
|
||||
|
||||
# ============================================================
|
||||
# 10. Test SFCGAL
|
||||
# ============================================================
|
||||
- name: Test SFCGAL via OGR
|
||||
if: steps.changed.outputs.shp == 'true'
|
||||
shell: bash -el {0}
|
||||
run: |
|
||||
python - <<'PY'
|
||||
from osgeo import ogr
|
||||
from osgeo import gdal
|
||||
|
||||
print("========================================")
|
||||
print("TEST SFCGAL")
|
||||
print("========================================")
|
||||
|
||||
print(gdal.VersionInfo("--version"))
|
||||
wkt = """
|
||||
POLYHEDRALSURFACE Z (
|
||||
(
|
||||
(0 0 0,
|
||||
10 0 0,
|
||||
10 10 0,
|
||||
0 10 0,
|
||||
0 0 0)
|
||||
)
|
||||
)
|
||||
"""
|
||||
geom = ogr.CreateGeometryFromWkt(wkt)
|
||||
if geom is None:
|
||||
raise RuntimeError(
|
||||
"Impossible de créer la géométrie 3D"
|
||||
)
|
||||
print("Type :", geom.GetGeometryName())
|
||||
print("Geometry type :", geom.GetGeometryType())
|
||||
print("Has Z :", ogr.GT_HasZ(geom.GetGeometryType()))
|
||||
valid = geom.IsValid()
|
||||
print("IsValid() :", valid)
|
||||
print()
|
||||
print("SFCGAL accessible par OGR : OK")
|
||||
PY
|
||||
|
||||
# ============================================================
|
||||
# 11. Dépendances Python
|
||||
# ============================================================
|
||||
- name: Install Python dependencies
|
||||
if: steps.changed.outputs.shp == 'true'
|
||||
shell: bash -el {0}
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install alive-progress
|
||||
pip install pandas
|
||||
pip install matplotlib
|
||||
|
||||
# ============================================================
|
||||
# 12. Affichage des SHP
|
||||
# ============================================================
|
||||
- name: List SHP input files
|
||||
if: steps.changed.outputs.shp == 'true'
|
||||
shell: bash -el {0}
|
||||
run: |
|
||||
echo "========================================"
|
||||
echo "SHP INPUT"
|
||||
echo "========================================"
|
||||
find Outputs/SHP \
|
||||
-maxdepth 1 \
|
||||
-type f \
|
||||
-name "*.shp" \
|
||||
-print
|
||||
|
||||
# ============================================================
|
||||
# 13. Exécution pyThtoQgis
|
||||
# ============================================================
|
||||
- name: Run pyThtoQgis
|
||||
if: steps.changed.outputs.shp == 'true'
|
||||
shell: bash -el {0}
|
||||
run: |
|
||||
set -e
|
||||
echo "========================================"
|
||||
echo "pyThtoQgis"
|
||||
echo "========================================"
|
||||
cd Scripts/pyThtoQgis
|
||||
python pyThtoQgis.py --folder "../../Outputs/SHP/"
|
||||
|
||||
# ============================================================
|
||||
# 14. Vérification base SQL
|
||||
# ============================================================
|
||||
- name: Check SQL database
|
||||
if: steps.changed.outputs.shp == 'true'
|
||||
shell: bash -el {0}
|
||||
run: |
|
||||
set -e
|
||||
echo "========================================"
|
||||
echo "CHECK DATABASE"
|
||||
echo "========================================"
|
||||
|
||||
echo "========================================"
|
||||
echo "Find SQL"
|
||||
echo "========================================"
|
||||
ls -l
|
||||
echo "========================================"
|
||||
find Outputs \
|
||||
-maxdepth 1 \
|
||||
-type f \
|
||||
-name "*.sql" \
|
||||
-print
|
||||
|
||||
SQL_FILE="Outputs/DB_Synthese-PSM_LARRA.sql"
|
||||
|
||||
if [ ! -f "$SQL_FILE" ]; then
|
||||
echo "ERREUR : fichier SQL introuvable :"
|
||||
echo "$SQL_FILE"
|
||||
# exit 1
|
||||
fi
|
||||
echo "Base SQL trouvée :"
|
||||
ls -lh "$SQL_FILE"
|
||||
|
||||
# ============================================================
|
||||
# 15. Exécution pyThStat
|
||||
# ============================================================
|
||||
- name: Run pyThStat
|
||||
if: steps.changed.outputs.shp == 'true'
|
||||
shell: bash -el {0}
|
||||
run: |
|
||||
set -e
|
||||
echo "========================================"
|
||||
echo "pyThStat"
|
||||
echo "========================================"
|
||||
ls -l
|
||||
cd Scripts/pyThStat
|
||||
echo "========================================"
|
||||
ls -l
|
||||
python pythStat.py --file "../../Outputs/DB_Synthese-PSM_LARRA.sql"
|
||||
|
||||
# ============================================================
|
||||
# 16. Fichiers produits
|
||||
# ============================================================
|
||||
- name: Show generated files
|
||||
if: steps.changed.outputs.shp == 'true'
|
||||
shell: bash
|
||||
run: |
|
||||
echo "========================================"
|
||||
echo "GENERATED FILES"
|
||||
echo "========================================"
|
||||
git status --short
|
||||
echo ""
|
||||
git diff --stat
|
||||
|
||||
# ============================================================
|
||||
# 17. Commit
|
||||
# ============================================================
|
||||
- name: Commit generated files
|
||||
if: steps.changed.outputs.shp == 'true'
|
||||
uses: stefanzweifel/git-auto-commit-action@v7
|
||||
with:
|
||||
commit_message: "Auto-generate outputs from SHP"
|
||||
commit_user_name: "github-actions[bot]"
|
||||
|
||||
commit_user_email: "41898282+github-actions[bot]@users.noreply.github.com"
|
||||
|
||||
commit_author: "github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>"
|
||||
Reference in New Issue
Block a user