forked from OpenBCI/OpenBCI_GUI
-
Notifications
You must be signed in to change notification settings - Fork 1
/
.travis.yml
71 lines (61 loc) · 5.08 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
language: python # this works for Linux but is an error on macOS or Windows
jobs:
include:
- name: "Python 3.7.4 on Xenial Linux"
os: linux
python: 3.7.4 # this works for Linux but is ignored on macOS or Windows
- name: "Python 3.7.4 on macOS"
os: osx
osx_image: xcode11.2 # Python 3.7.4 running on macOS 10.14.6
language: shell # 'language: python' is an error on Travis CI macOS
branches:
only:
- master
before_install:
- if [ "$TRAVIS_OS_NAME" = osx ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then openssl aes-256-cbc -K $encrypted_2f5d2771e3cb_key -iv $encrypted_2f5d2771e3cb_iv -in release_script/mac_only/Certificates.p12.enc -out release_script/mac_only/Certificates.p12 -d; fi
- if [ "$TRAVIS_OS_NAME" = osx ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then chmod +x release_script/mac_only/add-osx-cert.sh; fi
- if [ "$TRAVIS_OS_NAME" = osx ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then ./release_script/mac_only/add-osx-cert.sh; fi
install:
# used for getting commit timestamp
- pip3 install requests
- pip3 install beautifulsoup4
- pip3 install awscli
- mkdir $TRAVIS_BUILD_DIR/temp; cd $TRAVIS_BUILD_DIR/temp
### ### LINUX ### ###
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then curl -O -L --insecure https://download.processing.org/processing-3.5.3-linux64.tgz ;fi
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then tar -xzvf processing-3.5.3-linux64.tgz ;fi
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then export PATH=$TRAVIS_BUILD_DIR/temp/processing-3.5.3:$PATH ;fi
# copy libraries to linux location
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then mkdir -p $HOME/sketchbook/libraries/ ;fi
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then cp -a $TRAVIS_BUILD_DIR/OpenBCI_GUI/libraries/. $HOME/sketchbook/libraries/ ;fi
### ### MAC ### ###
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then curl -O -L --insecure https://download.processing.org/processing-3.5.3-macosx.zip ;fi
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then unzip processing-3.5.3-macosx.zip ;fi
# Processing.app must be in this location for processing-java to work
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then mv Processing.app /Applications/Processing.app ;fi
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then export PATH=$TRAVIS_BUILD_DIR/release_script/mac_only:$PATH ;fi
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then chmod +x $TRAVIS_BUILD_DIR/release_script/mac_only/processing-java ;fi
# copy libraries to mac location
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then mkdir -p $HOME/Documents/Processing/libraries/ ;fi
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then cp -a $TRAVIS_BUILD_DIR/OpenBCI_GUI/libraries/. $HOME/Documents/Processing/libraries/ ;fi
# used to create .dmg
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then pip install dmgbuild ;fi
script:
- cd $TRAVIS_BUILD_DIR
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then python $TRAVIS_BUILD_DIR/OpenBCI_GUI_UnitTests/run-unittests.py ;fi
- python3 $TRAVIS_BUILD_DIR/release_script/make-release.py --no-prompts
# over script will write version and timestamp here
- GUI_COMMIT_TIME=`cat temp/timestamp.txt`
- GUI_VERSION_STRING=`cat temp/versionstring.txt`
after_success:
# delete old files in latest
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then aws s3 rm s3://openbci-gui/${TRAVIS_BRANCH}/latest --recursive --exclude "*" --include "openbcigui_*_linux64.zip" ;fi
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then aws s3 rm s3://openbci-gui/${TRAVIS_BRANCH}/latest --recursive --exclude "*" --include "openbcigui_*_macosx.dmg" ;fi
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then aws s3 cp $TRAVIS_BUILD_DIR/. s3://openbci-gui/${TRAVIS_BRANCH}/${GUI_VERSION_STRING}_${GUI_COMMIT_TIME} --recursive --exclude "*" --include "openbcigui_*_linux64.zip" ;fi
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then aws s3 cp $TRAVIS_BUILD_DIR/. s3://openbci-gui/${TRAVIS_BRANCH}/latest --recursive --exclude "*" --include "openbcigui_*_linux64.zip" ;fi
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then aws s3 cp $TRAVIS_BUILD_DIR/. s3://openbci-gui/${TRAVIS_BRANCH}/${GUI_VERSION_STRING}_${GUI_COMMIT_TIME} --recursive --exclude "*" --include "openbcigui_*_macosx.dmg" ;fi
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then aws s3 cp $TRAVIS_BUILD_DIR/. s3://openbci-gui/${TRAVIS_BRANCH}/latest --recursive --exclude "*" --include "openbcigui_*_macosx.dmg" ;fi
notifications:
email:
on_success: never
on_failure: always