Hiroaki Okoshi / Mbed OS mbed-os-example-odinw2-wifi-ap-udp-echo
Committer:
Hiroaki_Okoshi
Date:
Sun Oct 10 15:06:21 2021 +0000
Revision:
0:fffc9412550a
Please note this repository is no longer maintained by u-blox.; ; "# mbed-os-example-odinw2-wifi-ap-udp-echo"

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Hiroaki_Okoshi 0:fffc9412550a 1 properties ([[$class: 'ParametersDefinitionProperty', parameterDefinitions: [
Hiroaki_Okoshi 0:fffc9412550a 2 [$class: 'StringParameterDefinition', name: 'mbed_os_revision', defaultValue: '', description: 'Revision of mbed-os to build. Use format "pull/PR-NUMBER/head" to access mbed-os PR']
Hiroaki_Okoshi 0:fffc9412550a 3 ]]])
Hiroaki_Okoshi 0:fffc9412550a 4
Hiroaki_Okoshi 0:fffc9412550a 5 if (params.mbed_os_revision == '') {
Hiroaki_Okoshi 0:fffc9412550a 6 echo 'Use mbed OS revision from mbed-os.lib'
Hiroaki_Okoshi 0:fffc9412550a 7 } else {
Hiroaki_Okoshi 0:fffc9412550a 8 echo "Use mbed OS revisiong ${params.mbed_os_revision}"
Hiroaki_Okoshi 0:fffc9412550a 9 if (params.mbed_os_revision.matches('pull/\\d+/head')) {
Hiroaki_Okoshi 0:fffc9412550a 10 echo "Revision is a Pull Request"
Hiroaki_Okoshi 0:fffc9412550a 11 }
Hiroaki_Okoshi 0:fffc9412550a 12 }
Hiroaki_Okoshi 0:fffc9412550a 13
Hiroaki_Okoshi 0:fffc9412550a 14 // List of targets with supported RF shields to compile
Hiroaki_Okoshi 0:fffc9412550a 15 def targets = [
Hiroaki_Okoshi 0:fffc9412550a 16 "UBLOX_EVK_ODIN_W2": ["internal"],
Hiroaki_Okoshi 0:fffc9412550a 17 //"REALTEK_RTL8195AM": ["internal"], // Disabled from Mbed OS after ArmCC6
Hiroaki_Okoshi 0:fffc9412550a 18 "K64F": ["esp8266-driver"],
Hiroaki_Okoshi 0:fffc9412550a 19 "NUCLEO_F429ZI": ["esp8266-driver"]
Hiroaki_Okoshi 0:fffc9412550a 20 ]
Hiroaki_Okoshi 0:fffc9412550a 21
Hiroaki_Okoshi 0:fffc9412550a 22 // Map toolchains to compilers
Hiroaki_Okoshi 0:fffc9412550a 23 def toolchains = [
Hiroaki_Okoshi 0:fffc9412550a 24 ARM: "armcc",
Hiroaki_Okoshi 0:fffc9412550a 25 GCC_ARM: "arm-none-eabi-gcc",
Hiroaki_Okoshi 0:fffc9412550a 26 IAR: "IAR-linux"
Hiroaki_Okoshi 0:fffc9412550a 27 ]
Hiroaki_Okoshi 0:fffc9412550a 28
Hiroaki_Okoshi 0:fffc9412550a 29 // Supported RF shields
Hiroaki_Okoshi 0:fffc9412550a 30 def radioshields = [
Hiroaki_Okoshi 0:fffc9412550a 31 "internal",
Hiroaki_Okoshi 0:fffc9412550a 32 "esp8266-driver"
Hiroaki_Okoshi 0:fffc9412550a 33 ]
Hiroaki_Okoshi 0:fffc9412550a 34
Hiroaki_Okoshi 0:fffc9412550a 35 def stepsForParallel = [:]
Hiroaki_Okoshi 0:fffc9412550a 36
Hiroaki_Okoshi 0:fffc9412550a 37 // Jenkins pipeline does not support map.each, we need to use oldschool for loop
Hiroaki_Okoshi 0:fffc9412550a 38 for (int i = 0; i < targets.size(); i++) {
Hiroaki_Okoshi 0:fffc9412550a 39 for(int j = 0; j < toolchains.size(); j++) {
Hiroaki_Okoshi 0:fffc9412550a 40 for(int k = 0; k < radioshields.size(); k++) {
Hiroaki_Okoshi 0:fffc9412550a 41 def target = targets.keySet().asList().get(i)
Hiroaki_Okoshi 0:fffc9412550a 42 def allowed_shields = targets.get(target)
Hiroaki_Okoshi 0:fffc9412550a 43 def toolchain = toolchains.keySet().asList().get(j)
Hiroaki_Okoshi 0:fffc9412550a 44 def compilerLabel = toolchains.get(toolchain)
Hiroaki_Okoshi 0:fffc9412550a 45 def radioshield = radioshields.get(k)
Hiroaki_Okoshi 0:fffc9412550a 46
Hiroaki_Okoshi 0:fffc9412550a 47 def stepName = "${target} ${toolchain} ${radioshield}"
Hiroaki_Okoshi 0:fffc9412550a 48 if(allowed_shields.contains(radioshield)) {
Hiroaki_Okoshi 0:fffc9412550a 49 stepsForParallel[stepName] = buildStep(target, compilerLabel, toolchain, radioshield)
Hiroaki_Okoshi 0:fffc9412550a 50 }
Hiroaki_Okoshi 0:fffc9412550a 51 }
Hiroaki_Okoshi 0:fffc9412550a 52 }
Hiroaki_Okoshi 0:fffc9412550a 53 }
Hiroaki_Okoshi 0:fffc9412550a 54
Hiroaki_Okoshi 0:fffc9412550a 55 timestamps {
Hiroaki_Okoshi 0:fffc9412550a 56 parallel stepsForParallel
Hiroaki_Okoshi 0:fffc9412550a 57 }
Hiroaki_Okoshi 0:fffc9412550a 58
Hiroaki_Okoshi 0:fffc9412550a 59 def buildStep(target, compilerLabel, toolchain, radioShield) {
Hiroaki_Okoshi 0:fffc9412550a 60 return {
Hiroaki_Okoshi 0:fffc9412550a 61 stage ("${target}_${compilerLabel}_${radioShield}") {
Hiroaki_Okoshi 0:fffc9412550a 62 node ("${compilerLabel}") {
Hiroaki_Okoshi 0:fffc9412550a 63 deleteDir()
Hiroaki_Okoshi 0:fffc9412550a 64 dir("mbed-os-example-wifi") {
Hiroaki_Okoshi 0:fffc9412550a 65 checkout scm
Hiroaki_Okoshi 0:fffc9412550a 66 def config_file = "mbed_app.json"
Hiroaki_Okoshi 0:fffc9412550a 67
Hiroaki_Okoshi 0:fffc9412550a 68 // Set mbed-os to revision received as parameter
Hiroaki_Okoshi 0:fffc9412550a 69 execute ("mbed deploy --protocol ssh")
Hiroaki_Okoshi 0:fffc9412550a 70 if (params.mbed_os_revision != '') {
Hiroaki_Okoshi 0:fffc9412550a 71 dir ("mbed-os") {
Hiroaki_Okoshi 0:fffc9412550a 72 if (params.mbed_os_revision.matches('pull/\\d+/head')) {
Hiroaki_Okoshi 0:fffc9412550a 73 execute("git fetch origin ${params.mbed_os_revision}:PR")
Hiroaki_Okoshi 0:fffc9412550a 74 execute("git checkout PR")
Hiroaki_Okoshi 0:fffc9412550a 75 } else {
Hiroaki_Okoshi 0:fffc9412550a 76 execute ("git checkout ${params.mbed_os_revision}")
Hiroaki_Okoshi 0:fffc9412550a 77 }
Hiroaki_Okoshi 0:fffc9412550a 78 }
Hiroaki_Okoshi 0:fffc9412550a 79 }
Hiroaki_Okoshi 0:fffc9412550a 80 execute("mbed new .")
Hiroaki_Okoshi 0:fffc9412550a 81
Hiroaki_Okoshi 0:fffc9412550a 82 execute ("mbed compile --build out/${target}_${toolchain}_${radioShield}/ -m ${target} -t ${toolchain} -c --app-config ${config_file}")
Hiroaki_Okoshi 0:fffc9412550a 83 }
Hiroaki_Okoshi 0:fffc9412550a 84 stash name: "${target}_${toolchain}_${radioShield}", includes: '**/mbed-os-example-wifi.bin'
Hiroaki_Okoshi 0:fffc9412550a 85 archive '**/mbed-os-example-wifi.bin'
Hiroaki_Okoshi 0:fffc9412550a 86 step([$class: 'WsCleanup'])
Hiroaki_Okoshi 0:fffc9412550a 87 }
Hiroaki_Okoshi 0:fffc9412550a 88 }
Hiroaki_Okoshi 0:fffc9412550a 89 }
Hiroaki_Okoshi 0:fffc9412550a 90 }