10
10
sh ' git clone --depth=1 --recursive -b master https://github.com/pycom/pycom-esp-idf.git esp-idf'
11
11
}
12
12
13
- PYCOM_VERSION = get_version()
14
- GIT_TAG = sh (script : ' git rev-parse --short HEAD' , returnStdout : true ). trim()
13
+ PYCOM_VERSION = get_version()
14
+ GIT_TAG = sh (script : ' git rev-parse --short HEAD' , returnStdout : true ). trim()
15
15
16
16
stage(' mpy-cross' ) {
17
17
// build the cross compiler first
@@ -21,14 +21,13 @@ node {
21
21
make all'''
22
22
}
23
23
24
- stage(' firmware-build' ) {
25
- def parallelSteps = [:]
26
- for (board in boards_to_build) {
27
- def board_u = board. toUpperCase()
28
- parallelSteps[board] = boardBuild(board)
29
- }
30
- parallel parallelSteps
31
- }
24
+ for (board in boards_to_build) {
25
+ stage(board) {
26
+ def parallelSteps = [:]
27
+ parallelSteps[board] = boardBuild(board)
28
+ parallel parallelSteps
29
+ }
30
+ }
32
31
33
32
stash includes : ' **/*.bin' , name : ' binary'
34
33
stash includes : ' tests/**' , name : ' tests'
@@ -38,19 +37,19 @@ node {
38
37
}
39
38
40
39
stage (' Flash' ) {
41
- def parallelFlash = [:]
42
- for (board in boards_to_test) {
43
- parallelFlash[board] = flashBuild(board)
44
- }
45
- parallel parallelFlash
40
+ def parallelFlash = [:]
41
+ for (board in boards_to_test) {
42
+ parallelFlash[board] = flashBuild(board)
43
+ }
44
+ parallel parallelFlash
46
45
}
47
46
48
47
stage (' Test' ){
49
- def parallelTests = [:]
50
- for (board in boards_to_test) {
51
- parallelTests[board] = testBuild(board)
52
- }
53
- parallel parallelTests
48
+ def parallelTests = [:]
49
+ for (board in boards_to_test) {
50
+ parallelTests[board] = testBuild(board)
51
+ }
52
+ parallel parallelTests
54
53
}
55
54
56
55
@@ -59,7 +58,7 @@ def boardBuild(name) {
59
58
def name_short = name_u. split(' _' )[0 ]
60
59
def app_bin = name. toLowerCase() + ' .bin'
61
60
return {
62
- release_dir = " ${ JENKINS_HOME} /release/${ JOB_NAME} /" + PYCOM_VERSION + " /" + GIT_TAG + " /"
61
+ release_dir = " ${ JENKINS_HOME} /release/${ JOB_NAME} /" + PYCOM_VERSION + " /" + GIT_TAG + " /"
63
62
sh ''' export PATH=$PATH:/opt/xtensa-esp32-elf/bin;
64
63
export IDF_PATH=${WORKSPACE}/esp-idf;
65
64
cd esp32;
@@ -101,7 +100,7 @@ def flashBuild(short_name) {
101
100
unstash ' tests'
102
101
unstash ' tools'
103
102
sh ' python esp32/tools/pypic.py --port ' + device_name + ' --enter'
104
- sh ' esp-idf/components/esptool_py/esptool/esptool.py --chip esp32 --port ' + device_name + ' --baud 921600 erase_flash'
103
+ sh ' esp-idf/components/esptool_py/esptool/esptool.py --chip esp32 --port ' + device_name + ' --baud 921600 --before no_reset --after no_reset erase_flash'
105
104
sh ' python esp32/tools/pypic.py --port ' + device_name + ' --enter'
106
105
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/' + board_name_u + ' /release/bootloader/bootloader.bin 0x8000 esp32/build/' + board_name_u + ' /release/lib/partitions.bin 0x10000 esp32/build/' + board_name_u + ' /release/' + board_name_u. toLowerCase() + ' .bin'
107
106
sh ' python esp32/tools/pypic.py --port ' + device_name + ' --exit'
@@ -113,17 +112,17 @@ def testBuild(short_name) {
113
112
return {
114
113
String device_name = get_device_name(short_name)
115
114
String board_name_u = get_firmware_name(short_name)
116
- node(get_remote_name(short_name)) {
117
- sleep(5 ) // Delay to skip all bootlog
118
- dir(' tests' ) {
119
- timeout(30 ) {
120
- // As some tests are randomly failing... enforce script always returns 0 (OK)
121
- sh ' ./run-tests --target=esp32-' + board_name_u + ' --device ' + device_name + ' || exit 0'
122
- }
123
- }
124
- sh ' python esp32/tools/pypic.py --port ' + device_name + ' --enter'
125
- sh ' python esp32/tools/pypic.py --port ' + device_name + ' --exit'
126
- }
115
+ node(get_remote_name(short_name)) {
116
+ sleep(5 ) // Delay to skip all bootlog
117
+ dir(' tests' ) {
118
+ timeout(30 ) {
119
+ // As some tests are randomly failing... enforce script always returns 0 (OK)
120
+ sh ' ./run-tests --target=esp32-' + board_name_u + ' --device ' + device_name + ' || exit 0'
121
+ }
122
+ }
123
+ sh ' python esp32/tools/pypic.py --port ' + device_name + ' --enter'
124
+ sh ' python esp32/tools/pypic.py --port ' + device_name + ' --exit'
125
+ }
127
126
}
128
127
}
129
128
@@ -134,16 +133,16 @@ def get_version() {
134
133
135
134
def get_firmware_name (short_name ) {
136
135
node {
137
- def node_info = sh (script : ' cat ${JENKINS_HOME}/pycom-ic.conf || exit 0' , returnStdout : true ). trim()
138
- def matcher = node_info =~ short_name + ' :(.+):.*'
136
+ def node_info = sh (script : ' cat ${JENKINS_HOME}/pycom-ic.conf || exit 0' , returnStdout : true ). trim()
137
+ def matcher = node_info =~ short_name + ' :(.+):.
9E88
*'
139
138
matcher ? matcher[0 ][1 ] : " WIPY"
140
139
}
141
140
}
142
141
143
142
def get_remote_name (short_name ) {
144
143
node {
145
- def node_info = sh (script : ' cat ${JENKINS_HOME}/pycom-ic.conf || exit 0' , returnStdout : true ). trim()
146
- def matcher = node_info =~ short_name + ' :.*:(.+)'
144
+ def node_info = sh (script : ' cat ${JENKINS_HOME}/pycom-ic.conf || exit 0' , returnStdout : true ). trim()
145
+ def matcher = node_info =~ short_name + ' :.*:(.+)'
147
146
matcher ? matcher[0 ][1 ] : " RPI3"
148
147
}
149
148
}
0 commit comments