language: cpp # Any time a commit is done to either master or WIP we do a CI build on all three platforms to make # sure it really builds. The linux version will be saved to the continuous tag and thus available # for testing. All three platforms will get a proper release upon a tagged commit. env: global: - QT_INSTALL_DIR=~/Qt - QT_VERSION=5.14.2 matrix: include: - os: linux dist: xenial compiler: gcc sudo: require before_install: - sudo add-apt-repository ppa:beineri/opt-qt-5.14.1-xenial -y - sudo apt-get update -qq install: - sudo apt-get -y install qt514base qt514connectivity qt514imageformats qt514serialport qt514serialbus qt514doc qt514tools libgl1-mesa-dev - source /opt/qt*/bin/qt*-env.sh script: - qmake CONFIG+=release PREFIX=/usr - make -j$(nproc) - make INSTALL_ROOT=appdir -j$(nproc) install ; find appdir/ - wget -c -nv "https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage" - chmod a+x linuxdeployqt-continuous-x86_64.AppImage # export VERSION=... # linuxdeployqt uses this for naming the file - ./linuxdeployqt-continuous-x86_64.AppImage appdir/usr/local/share/applications/SavvyCAN.desktop -appimage -extra-plugins=iconengines,platformthemes/libqgtk3.so,canbus after_success: # find appdir -executable -type f -exec ldd {} \; | grep " => /usr" | cut -d " " -f 2-3 | sort | uniq # for debugging # curl --upload-file APPNAME*.AppImage https://transfer.sh/APPNAME-git.$(git rev-parse --short HEAD)-x86_64.AppImage - wget -c https://github.com/probonopd/uploadtool/raw/master/upload.sh - bash upload.sh SavvyCAN*.AppImage* deploy: provider: releases skip_cleanup: true api_key: $GITHUB_TOKEN file_glob: true file: SavvyCAN*.AppImage on: tags: true #deploy is only done on tagged builds draft: false - os: osx osx_image: xcode10 before_install: - brew install qt5 - brew link qt5 --force script: - qmake CONFIG+=release -spec macx-xcode SavvyCAN.pro - xcodebuild - mkdir Release/SavvyCAN.app/Contents/MacOS/help - cp -R help/*.* Release/SavvyCAN.app/Contents/MacOS/help - cd Release - ls SavvyCAN.app/Contents/MacOS - macdeployqt SavvyCAN.app -dmg deploy: provider: releases skip_cleanup: true api_key: $GITHUB_TOKEN file: SavvyCAN.dmg on: tags: true draft: false - os: windows env: QMAKE_PATH=${QT_INSTALL_DIR}/${QT_VERSION}/msvc2017/bin/qmake.exe QDEPLOY_PATH=${QT_INSTALL_DIR}/${QT_VERSION}/msvc2017/bin/windeployqt.exe before_install: - cmd.exe //C cd '&&' "C:/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/VC/Auxiliary/Build/vcvars64.bat" - ./install-qt.sh -d ${QT_INSTALL_DIR} --version ${QT_VERSION} --toolchain win64_msvc2017_64 qtbase qttools qtconnectivity qtimageformats qtserialport qtserialbus script: - cmd.exe //C cd '&&' "C:/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/VC/Auxiliary/Build/vcvars64.bat" '&&' cd "c:/Users/travis/build/collin80/savvycan" '&&' cd '&&' "c:/Users/travis/Qt/5.14.2/msvc2017/bin/qmake" CONFIG+=RELEASE SavvyCAN.pro '&&' nmake - ls - cd release - cmd.exe //C 'C:/Users/travis/Qt/5.14.2/msvc2017/bin/windeployqt.exe' './SavvyCAN.exe' - cd release - ls - rm *.cpp - rm *.h - rm *.obj - mkdir help - cp -R ../help/*.* ./help - cp -r ../examples . - 7z a -tzip SavvyCAN.zip -r * deploy: provider: releases skip_cleanup: true api_key: $GITHUB_TOKEN file: SavvyCAN.zip on: tags: true draft: false branches: except: - # Do not build tags that we create when we upload to GitHub Releases - /^(?i:continuous)/