@@ -6,73 +6,103 @@ cache:
66 directories :
77 - $HOME/astyle
88
9- matrix :
9+ stages :
10+ - build
11+ - deploy
12+
13+ jobs :
1014 include :
11- - env :
12- - BUILD_TYPE=package
13- - env :
14- - BUILD_TYPE=build_even
15- - env :
16- - BUILD_TYPE=build_odd
17- - env :
18- - BUILD_TYPE=debug_even
19- - env :
20- - BUILD_TYPE=debug_odd
21- - env :
22- - BUILD_TYPE=platformio_even
23- - env :
24- - BUILD_TYPE=platformio_odd
25- - env :
26- - BUILD_TYPE=docs
27- - env :
28- - BUILD_TYPE=host_tests
29- - env :
30- - BUILD_TYPE=style_check
15+ # Build stage. To save time, run all kinds of builds and tests in parallel.
16+ #
17+ # TODO: since we can now call different script for each job,
18+ # split the do-it-all common.sh into separate scripts responsible
19+ # for different types of jobs below:
20+ - name : " Host tests"
21+ stage : build
22+ script : $TRAVIS_BUILD_DIR/tests/common.sh
23+ env :
24+ - BUILD_TYPE=host_tests
25+ install :
26+ - sudo apt-get install valgrind lcov
27+
28+ - name : " Build (1)"
29+ script : $TRAVIS_BUILD_DIR/tests/common.sh
30+ env :
31+ - BUILD_TYPE=build_even
32+ - name : " Build (2)"
33+ script : $TRAVIS_BUILD_DIR/tests/common.sh
34+ env :
35+ - BUILD_TYPE=build_odd
36+ - name : " Debug (1)"
37+ script : $TRAVIS_BUILD_DIR/tests/common.sh
38+ env :
39+ - BUILD_TYPE=debug_even
40+ - name : " Debug (2)"
41+ script : $TRAVIS_BUILD_DIR/tests/common.sh
42+ env :
43+ - BUILD_TYPE=debug_odd
44+ - name : " Platformio (1)"
45+ script : $TRAVIS_BUILD_DIR/tests/common.sh
46+ env :
47+ - BUILD_TYPE=platformio_even
48+ - name : " Platformio (2)"
49+ script : $TRAVIS_BUILD_DIR/tests/common.sh
50+ env :
51+ - BUILD_TYPE=platformio_odd
3152
32- install :
33- - >
34- [ "$BUILD_TYPE" = "docs" ] && {
35- pip install --user -r doc/requirements.txt;
36- } || true
37- - >
38- [ "$BUILD_TYPE" = "style_check" ] && {
39- [ -f $HOME/astyle/build/gcc/bin/astyle ] || {
40- wget -O astyle_3.1_linux.tar.gz https://sourceforge.net/projects/astyle/files/astyle/astyle%203.1/astyle_3.1_linux.tar.gz/download;
41- tar -xf astyle_3.1_linux.tar.gz -C $HOME;
42- make -C $HOME/astyle/build/gcc;
43- }
44- make -C $HOME/astyle/build/gcc prefix=$HOME install;
45- } || true
46- - sudo apt-get install valgrind lcov
53+ - name : " Docs"
54+ script : $TRAVIS_BUILD_DIR/tests/common.sh
55+ env :
56+ - BUILD_TYPE=docs
57+ install :
58+ - pip install --user -r doc/requirements.txt;
4759
48- script :
49- - $TRAVIS_BUILD_DIR/tests/common.sh
60+ - name : " Style check"
61+ script : $TRAVIS_BUILD_DIR/tests/common.sh
62+ env :
63+ - BUILD_TYPE=style_check
64+ install :
65+ - >
66+ [ "$BUILD_TYPE" = "style_check" ] && {
67+ [ -f $HOME/astyle/build/gcc/bin/astyle ] || {
68+ wget -O astyle_3.1_linux.tar.gz https://sourceforge.net/projects/astyle/files/astyle/astyle%203.1/astyle_3.1_linux.tar.gz/download;
69+ tar -xf astyle_3.1_linux.tar.gz -C $HOME;
70+ make -C $HOME/astyle/build/gcc;
71+ }
72+ make -C $HOME/astyle/build/gcc prefix=$HOME install;
73+ } || true
5074
51- deploy :
52- - provider : releases
53- draft : true
54- skip_cleanup : true
55- api_key :
56- secure : A4FBmqyhlzy33oPeZVolg2Q/A3ZcJ3WnRQqQJ3NAPy+qGM5xcboOYtwcLL9vKaHZGfUB7lUP9QVZFGou1Wrmo9DnPvAoe3+XvCaDRGzVMxeIpu7UStbBD4Knbh98tlbMvZCXYRlT4VcusI9bMLK6UWw4sMdPislBh2FEfglTiag=
57- file_glob : true
58- tag_name : $TRAVIS_TAG
59- target_commitish : $TRAVIS_COMMIT
60- file :
61- - package/versions/$TRAVIS_TAG/esp8266-$TRAVIS_TAG.zip
62- - package/versions/$TRAVIS_TAG/package_esp8266com_index.json
63- on :
64- repo : esp8266/Arduino
65- tags : true
66- condition : " $BUILD_TYPE = package"
67-
68- - provider : script
69- skip_cleanup : true
70- script : bash package/deploy_package_index.sh
71- on :
72- repo : esp8266/Arduino
73- tags : true
74- condition : " $BUILD_TYPE = package"
75+ # Deploy stage.
76+ # Here we build the package JSON (always) and do the deployments
77+ - name : " Package / deploy"
78+ stage : deploy
79+ script : $TRAVIS_BUILD_DIR/tests/common.sh
80+ env : BUILD_TYPE=package
81+ if : env(CI_GITHUB_API_KEY) IS present
82+ deploy :
83+ # Create Github release, upload artifacts
84+ - provider : releases
85+ draft : true
86+ skip_cleanup : true
87+ api_key :
88+ secure : kYsxX/N21fwLSTLpbb0c96PnQHn1CIMqZstm02hfUhCX83FygWSh4vs3gzW28DMpjQMZ6vC4g+jtfosYU2tUhht/bynurDH4edpEyGeMyK+fzCI9pAr4JT0RbKQI84EC18ScpgP/UP0jTc1LJ+xl8UMwSiDE0mzHx7xJ4mMNQbA=
89+ file_glob : true
90+ tag_name : $TRAVIS_TAG
91+ target_commitish : $TRAVIS_COMMIT
92+ file :
93+ - package/versions/$TRAVIS_TAG/esp8266-$TRAVIS_TAG.zip
94+ - package/versions/$TRAVIS_TAG/package_esp8266com_index.json
95+ on :
96+ repo : esp8266/Arduino
97+ tags : true
7598
99+ # Update the package index URL to point to the new version
100+ - provider : script
101+ skip_cleanup : true
102+ script : bash package/deploy_package_index.sh
103+ on :
104+ repo : esp8266/Arduino
105+ tags : true
76106
77107notifications :
78108 email :
0 commit comments