1
1
def buildVersion
2
2
def boards_to_build = [" WiPy" , " LoPy" , " SiPy" , " GPy" , " FiPy" , " LoPy4" ]
3
3
def variants_to_build = [ " PYBYTES" ]
4
- def boards_to_test = [" 1b6fa1 " , " 00ec51" ]
4
+ def boards_to_test = [" 00ec51" ]
5
5
def open_thread
6
6
7
7
node {
@@ -30,21 +30,13 @@ node {
30
30
for (variant in variants_to_build) {
31
31
board_variant = board + " _" + variant
32
32
open_thread = ' off'
33
- // Enable openthread in case of FIPY/LoPy4/LoPy BASE builds
34
- if (board == ' FiPy' || board == ' LoPy4' || board == ' LoPy' )
35
- {
36
- // openthread is currently disabled
37
- open_thread = ' off'
38
- }
39
33
parallelSteps[board_variant] = boardBuild(board, variant, open_thread)
40
34
}
41
35
parallel parallelSteps
42
36
}
43
37
}
44
-
45
- stash includes : ' **/*.bin' , name : ' binary'
38
+ stash includes : ' **/*.tar.gz' , name : ' binary'
46
39
stash includes : ' tests/**' , name : ' tests'
47
- stash includes : ' esp-idf/components/esptool_py/**' , name : ' esp-idfTools'
48
40
stash includes : ' tools/**' , name : ' tools'
49
41
stash includes : ' esp32/tools/**' , name : ' esp32Tools'
50
42
}
@@ -54,7 +46,7 @@ for (variant in variants_to_build) {
54
46
stage (' Flash-' + variant) {
55
47
def parallelFlash = [:]
56
48
for (board in boards_to_test) {
57
- parallelFlash[board] = flashBuild(board, variant)
49
+ parallelFlash[board] = flashBuild(board, PYCOM_VERSION , variant)
58
50
}
59
51
parallel parallelFlash
60
52
}
@@ -69,54 +61,46 @@ for (variant in variants_to_build) {
69
61
}
70
62
71
63
def boardBuild (name , variant , open_thread ) {
72
- def name_u = name. toUpperCase()
73
- def name_short = name_u. split(' _' )[0 ]
74
- def app_bin = name. toLowerCase() + ' .bin'
75
64
return {
76
65
release_dir = " ${ JENKINS_HOME} /release/${ JOB_NAME} /" + PYCOM_VERSION + " /" + GIT_TAG + " /"
77
66
sh ''' export PATH=$PATH:/opt/xtensa-esp32-elf/bin;
78
67
export IDF_PATH=${WORKSPACE}/esp-idf;
79
- make -C esp32 clean BOARD=''' + name_short + ' VARIANT=' + variant + ' BUILD_DIR=build-' + variant
80
-
68
+ make -C esp32 clean BOARD=''' + name. toUpperCase() + ' VARIANT=' + variant
81
69
sh ''' export PATH=$PATH:/opt/xtensa-esp32-elf/bin;
82
70
export IDF_PATH=${WORKSPACE}/esp-idf;
83
- make -C esp32 -j2 release BOARD=''' + name_short + ' BUILD_DIR=build-' + variant + ' RELEASE_DIR=' + release_dir + variant + ' /' + ' VARIANT=' + variant + ' OPENTHREAD=' + open_thread
84
-
85
- sh ' mv esp32/build-' + variant + ' /' + name_u + ' /release/application.elf ' + release_dir + variant + ' /' + name + " -" + PYCOM_VERSION + ' -application.elf'
71
+ make -C esp32 -j2 release BOARD=''' + name. toUpperCase() + ' VARIANT=' + variant + ' OPENTHREAD=' + open_thread
72
+ sh ' mkdir -p ' + release_dir + variant + ' /'
73
+ sh ' cp esp32/build-' + variant + ' /' + name + ' -' + PYCOM_VERSION + ' .tar.gz ' + release_dir + variant + ' /'
74
+ sh ' mv esp32/build-' + variant + ' /' + name. toUpperCase() + ' /release/application.elf ' + release_dir + variant + ' /' + name + " -" + PYCOM_VERSION + ' -application.elf'
86
75
}
87
76
}
88
77
89
- def flashBuild (short_name , variant ) {
78
+ def flashBuild (short_name , version , variant ) {
90
79
return {
91
80
String device_name = get_device_name(short_name)
92
- String board_name_u = get_firmware_name(short_name)
81
+ String board_name = get_firmware_name(short_name)
93
82
node(get_remote_name(short_name)) {
94
83
sh ' rm -rf *'
95
84
unstash ' binary'
96
- unstash ' esp-idfTools'
97
85
unstash ' esp32Tools'
98
86
unstash ' tests'
99
87
unstash ' tools'
100
- sh ' python esp32/tools/pypic.py --port ' + device_name + ' --enter'
101
- sh ' esp-idf/components/esptool_py/esptool/esptool.py --chip esp32 --port ' + device_name + ' --baud 921600 --before no_reset --after no_reset erase_flash'
102
- sh ' python esp32/tools/pypic.py --port ' + device_name + ' --enter'
103
- sh ' esp-idf/components/esptool_py/esptool/esptool.py --chip esp32 --port ' + device_name + ' --baud 921600 --before no_reset --after no_reset write_flash -pz --flash_mode dio --flash_freq 80m --flash_size detect 0x1000 esp32/build-' + variant + ' /' + board_name_u + ' /release/bootloader/bootloader.bin 0x8000 esp32/build-' + variant + ' /' + board_name_u + ' /release/lib/partitions.bin 0x10000 esp32/build-' + variant + ' /' + board_name_u + ' /release/' + board_name_u. toLowerCase() + ' .bin'
104
- sh ' python esp32/tools/pypic.py --port ' + device_name + ' --exit'
88
+ sh ' python esp32/tools/fw_updater/updater.py --port ' + device_name + ' flash -t esp32/build-' + variant + ' /' + board_name + ' -' + version + ' .tar.gz'
105
89
}
106
90
}
107
91
}
108
92
109
93
def testBuild (short_name ) {
110
94
return {
111
95
String device_name = get_device_name(short_name)
112
- String board_name_u = get_firmware_name(short_name)
96
+ String board_name = get_firmware_name(short_name) . toUpperCase( )
113
97
node(get_remote_name(short_name)) {
114
98
sleep(5 ) // Delay to skip all bootlog
115
99
dir(' tests' ) {
116
100
timeout(30 ) {
117
101
// As some tests are randomly failing... enforce script always returns 0 (OK)
118
102
sh ''' export PATH=$PATH:/usr/local/bin;
119
- ./run-tests --target=esp32- ''' + board_name_u + ' --device ' + device_name + ' || exit 0'
103
+ ./run-tests --target=esp32 --device '' ' + device_name + ' || exit 0'
120
104
}
121
105
}
122
106
sh ' python esp32/tools/pypic.py --port ' + device_name + ' --enter'
@@ -134,7 +118,7 @@ def get_firmware_name(short_name) {
134
118
node {
135
119
def node_info = sh (script : ' cat ${JENKINS_HOME}/pycom-ic.conf || exit 0' , returnStdout : true ). trim()
136
120
def matcher = node_info =~ short_name + ' :(.+):.*'
137
- matcher ? matcher[0 ][1 ] : " WIPY "
121
+ matcher ? matcher[0 ][1 ] : " WiPy "
138
122
}
139
123
}
140
124
0 commit comments