diff --git a/Jenkinsfile b/Jenkinsfile index 1aa8264..87c355b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,13 +1,7 @@ pipeline { agent any - options { - timestamps() - ansiColor('xterm') - } - environment { - // Default-Env, kann später via Parameter überschrieben werden BUILD_ENV = "pcb_rev_1-4_serial" PIO_HOME_DIR = "${WORKSPACE}/.pio" } @@ -16,69 +10,83 @@ pipeline { choice( name: 'BUILD_ENV', choices: ['pcb_rev_1-2_serial', 'pcb_rev_1-3_serial', 'pcb_rev_1-4_serial'], - description: 'Welches Environment soll gebaut werden?' + description: 'Firmware-Umgebung auswählen' ) } stages { - stage('🧼 Cleanup') { + stage('🧹 Cleanup') { steps { deleteDir() } } - stage('Checkout') { + // Kein Checkout nötig – SCM ist über UI definiert + + stage('🧰 Setup PlatformIO') { steps { - sshagent(['gitea-ssh']) { - sh 'git clone git@git.hiabuto.net:souko/Kettenoeler.git .' + dir('Software') { + sh ''' + python3 -m venv .venv + . .venv/bin/activate + pip install --upgrade pip platformio + ''' } } } - stage('🧪 Python & PlatformIO Setup') { + stage('📄 Dummy WiFi-Creds') { steps { - sh ''' - python3 -m venv .venv - . .venv/bin/activate - pip install --upgrade pip platformio - ''' - } - } - - stage('📄 Dummy-Credential-Datei erstellen') { - steps { - writeFile file: 'wifi_credentials.ini', text: ''' + dir('Software') { + writeFile file: 'wifi_credentials.ini', text: ''' [wifi_cred] wifi_ssid_client = DummySSID wifi_password_client = DummyPass -admin_password = Admin1234 -wifi_ap_password = ApPass1234 - '''.stripIndent() +admin_password = Admin123 +wifi_ap_password = DummyAP + '''.stripIndent() + } } } - stage('⚙️ Build Environment: ${params.BUILD_ENV}') { + stage('🧪 Build Firmware') { steps { - sh ''' - . .venv/bin/activate - platformio run -e ${BUILD_ENV} - ''' + dir('Software') { + sh ''' + . .venv/bin/activate + platformio run -e ${params.BUILD_ENV} + ''' + } } } - stage('📦 Firmware sichern') { + stage('📦 Archive Firmware') { steps { - archiveArtifacts artifacts: ".pio/build/${params.BUILD_ENV}/firmware.bin", fingerprint: true + archiveArtifacts artifacts: "Software/.pio/build/${params.BUILD_ENV}/firmware.bin", fingerprint: true + } + } + + stage('🔌 Flash Hardware (Dummy)') { + steps { + echo "TODO: Flashen mit z.B. esptool oder PySerial in Hardware/flash.py" + } + } + + stage('🧠 Run Tests (Dummy)') { + steps { + dir('Testing') { + echo "TODO: Starte Tests mit Testing/test_runner.py oder pytest" + } } } } post { success { - echo "✅ Build erfolgreich abgeschlossen – Firmware liegt bereit als Artefakt." + echo "✅ CI abgeschlossen – Firmware gebaut, Tests vorbereitet" } failure { - echo "💣 Build fehlgeschlagen – bitte Logs prüfen!" + echo "❌ Fehler im Build – schau in die Logs, Commander" } } }