Kettenoeler/Jenkinsfile

93 lines
2.3 KiB
Groovy
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

pipeline {
agent any
environment {
BUILD_ENV = "pcb_rev_1-4_serial"
PIO_HOME_DIR = "${WORKSPACE}/.pio"
}
parameters {
choice(
name: 'BUILD_ENV',
choices: ['pcb_rev_1-2_serial', 'pcb_rev_1-3_serial', 'pcb_rev_1-4_serial'],
description: 'Firmware-Umgebung auswählen'
)
}
stages {
stage('🧹 Cleanup') {
steps {
deleteDir()
}
}
// Kein Checkout nötig SCM ist über UI definiert
stage('🧰 Setup PlatformIO') {
steps {
dir('Software') {
sh '''
python3 -m venv .venv
. .venv/bin/activate
pip install --upgrade pip platformio
'''
}
}
}
stage('📄 Dummy WiFi-Creds') {
steps {
dir('Software') {
writeFile file: 'wifi_credentials.ini', text: '''
[wifi_cred]
wifi_ssid_client = DummySSID
wifi_password_client = DummyPass
admin_password = Admin123
wifi_ap_password = DummyAP
'''.stripIndent()
}
}
}
stage('🧪 Build Firmware') {
steps {
dir('Software') {
sh '''
. .venv/bin/activate
platformio run -e ${params.BUILD_ENV}
'''
}
}
}
stage('📦 Archive Firmware') {
steps {
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 "✅ CI abgeschlossen Firmware gebaut, Tests vorbereitet"
}
failure {
echo "❌ Fehler im Build schau in die Logs, Commander"
}
}
}