2024-09-24 15:18:47 +00:00
|
|
|
pipeline {
|
|
|
|
agent any
|
|
|
|
|
|
|
|
stages {
|
|
|
|
stage('Télécharger l\'export OSM de la France') {
|
|
|
|
steps {
|
|
|
|
script {
|
2024-09-24 15:28:44 +00:00
|
|
|
sh 'curl -L -o france-latest.osm.pbf http://download.openstreetmap.fr/extracts/europe/france-latest.osm.pbf'
|
2024-09-24 15:18:47 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
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
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
post {
|
|
|
|
always {
|
|
|
|
// Archive les artefacts .osm.bz2
|
|
|
|
archiveArtifacts artifacts: '**/*.osm.bz2', allowEmptyArchive: true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|