pipeline {
        agent {
              dockerfile { filename 'Jenkinsfiles/ubuntu-16.04.dockerfile' }
        }
        stages {
                stage('Build') {
                    steps {
                        sh '''
                            make DEBUG=1
                           '''
                    }
                }
                stage('Test') {
                    steps {
                        sh '''
                            cd Pal/regression
                            make regression
                            '''
                        sh '''
                            cd LibOS/shim/test/regression
                            make regression
                            '''
                        sh '''
                            cd LibOS/shim/test/apps/ltp
                            make
                            ./syscalls.sh
                            '''
                        sh '''
                            cd LibOS/shim/test/apps/python
                            make regression
                            '''
                        sh '''
                            cd LibOS/shim/test/apps/bash
                            make regression
                            '''
                        timeout(time: 5, unit: 'MINUTES') {
                            sh '''
                                cd LibOS/shim/test/apps/gcc
                                make regression
                           '''
                        }
                        timeout(time: 20, unit: 'MINUTES') {
                            sh '''
                                cd LibOS/shim/test/apps/lmbench
                                make regression
                            '''
                        }
                        sh '''
                            cd LibOS/shim/test/apps/lighttpd
                            make
                            make start-graphene-server &
                            sleep 1
                            ./benchmark-http.sh `hostname -I|tr -d '[:space:]'`:8000
                            '''
                    }
                }
                stage('Deploy') {
                    steps {
                        sh 'echo Deploying code'
                    }
                }
        }
        post {
                success {
                        echo 'Deployment successful'
                }
                failure {
                        echo 'Failure while on the pipeline'
                }
                unstable {
                        echo 'Pipeline marked as "unstable"'
                }
        }
}