Jenkinsfile 3 KB
Newer Older
1 2 3 4
pipeline {
  agent any
  stages {
    stage('build') {
5
      parallel {
Daniel Agar's avatar
Daniel Agar committed
6 7 8 9 10 11 12 13
        stage('Linux Debug') {
          agent {
            docker {
              image 'mavlink/qgc-build-linux'
              args '-e CI=true -e CCACHE_BASEDIR=$WORKSPACE -e CCACHE_DIR=/tmp/ccache -v /tmp/ccache:/tmp/ccache:rw'
            }
          }
          steps {
14
            sh 'ccache -z'
Daniel Agar's avatar
Daniel Agar committed
15 16 17 18 19 20 21 22
            sh 'git submodule deinit -f .'
            sh 'git clean -ff -x -d .'
            sh 'git submodule update --init --recursive --force'
            sh 'mkdir build; cd build; qmake -r ${WORKSPACE}/qgroundcontrol.pro CONFIG+=debug CONFIG+=WarningsAsErrorsOn'
            sh 'cd build; make -j4'
            sh 'ccache -s'
          }
        }
23 24 25 26 27 28 29 30
        stage('Linux Release') {
          agent {
            docker {
              image 'mavlink/qgc-build-linux'
              args '-e CI=true -e CCACHE_BASEDIR=$WORKSPACE -e CCACHE_DIR=/tmp/ccache -v /tmp/ccache:/tmp/ccache:rw'
            }
          }
          steps {
31
            sh 'ccache -z'
32 33 34 35 36 37 38 39
            sh 'git submodule deinit -f .'
            sh 'git clean -ff -x -d .'
            sh 'git submodule update --init --recursive --force'
            sh 'mkdir build; cd build; qmake -r ${WORKSPACE}/qgroundcontrol.pro CONFIG+=release CONFIG+=WarningsAsErrorsOn'
            sh 'cd build; make -j4'
            sh 'ccache -s'
          }
        }
40 41 42 43 44 45 46 47 48 49 50
        stage('OSX Debug') {
          agent {
            node {
              label 'mac'
            }
          }
          environment {
            QT_FATAL_WARNINGS = '1'
            QMAKESPEC = 'macx-clang'
          }
          steps {
51
            sh 'ccache -z'
52 53 54 55 56 57 58 59 60
            sh 'git submodule deinit -f .'
            sh 'git clean -ff -x -d .'
            sh 'git submodule update --init --recursive --force'
            sh 'rm -rf ${SHADOW_BUILD_DIR}; mkdir -p ${SHADOW_BUILD_DIR}'
            sh 'cd ${SHADOW_BUILD_DIR}; ${QT_PATH}/5.9.3/clang_64/bin/qmake -r ${WORKSPACE}/qgroundcontrol.pro CONFIG+=debug CONFIG+=WarningsAsErrorsOn'
            sh 'cd ${SHADOW_BUILD_DIR}; make -j`sysctl -n hw.ncpu`'
            sh 'ccache -s'
          }
        }
61 62 63 64 65 66 67 68 69 70 71
        stage('OSX Release') {
          agent {
            node {
              label 'mac'
            }
          }
          environment {
            QT_FATAL_WARNINGS = '1'
            QMAKESPEC = 'macx-clang'
          }
          steps {
72
            sh 'ccache -z'
73 74 75 76
            sh 'git submodule deinit -f .'
            sh 'git clean -ff -x -d .'
            sh 'git submodule update --init --recursive --force'
            sh 'rm -rf ${SHADOW_BUILD_DIR}; mkdir -p ${SHADOW_BUILD_DIR}'
Gus Grubba's avatar
Gus Grubba committed
77
            sh 'cd ${SHADOW_BUILD_DIR}; ${QT_PATH}/5.9.3/clang_64/bin/qmake -r ${WORKSPACE}/qgroundcontrol.pro CONFIG+=release CONFIG+=WarningsAsErrorsOn'
78
            sh 'cd ${SHADOW_BUILD_DIR}; make -j`sysctl -n hw.ncpu`'
PX4 Build Bot's avatar
PX4 Build Bot committed
79
            sh 'ccache -s'
80 81
          }
        }
82 83 84
      }
    }
  }
85 86
  environment {
    SHADOW_BUILD_DIR = '/tmp/jenkins/shadow_build_dir'
PX4 Build Bot's avatar
PX4 Build Bot committed
87 88
    CCACHE_CPP2 = '1'
    CCACHE_BASEDIR = '${WORKSPACE}'
89
  }
90
}