pipeline { agent any stages { stage('Télécharger l\'export OSM de la France') { steps { script { sh 'curl -L -o france-latest.osm.pbf http://download.openstreetmap.fr/extracts/europe/france-latest.osm.pbf' } } } stage('Filtrer les tags pour le routage') { steps { script { sh 'osmium tags-filter france-latest.osm.pbf w/highway wa/public_transport=platform wa/railway=platform w/park_ride=yes r/type=restriction r/type=route -o france.osm.bz2 -f pbf,add_metadata=false' } } } stage('Créer des extraits régionaux/départementaux') { steps { script { // Trouve tous les fichiers GeoJSON dans le workspace def geojsonFiles = findFiles(glob: '**/*.geojson') def tasks = [] // Exécute osmium extract pour chaque fichier GeoJSON en parallèle geojsonFiles.each { geojsonFile -> tasks << { def geojsonName = geojsonFile.name.replace('.geojson', '') sh "osmium extract --strategy complete_ways --polygon=${geojsonFile.path} france.osm.bz2 -o ${geojsonName}.osm.bz2" } } // Exécute les tâches en parallèle parallel tasks } } } stage('Archivage des extraits') { steps { archiveArtifacts artifacts: '**/*.osm.bz2', fingerprint: true } } } post { always { cleanWs(cleanWhenNotBuilt: false, deleteDirs: true, notFailBuild: true ) } } }