Added jenkinsfile
This commit is contained in:
		
							parent
							
								
									33644f2f8f
								
							
						
					
					
						commit
						e7df966ca4
					
				
							
								
								
									
										96
									
								
								Jenkinsfile
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										96
									
								
								Jenkinsfile
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,96 @@
 | 
			
		||||
pipeline {
 | 
			
		||||
	agent any
 | 
			
		||||
 | 
			
		||||
    parameters {
 | 
			
		||||
       booleanParam(defaultValue: true, description: 'Deploy this build', name: 'deploy_build')
 | 
			
		||||
       choice(choices: ['none', ''win32', 'linux'], description: 'Which os do you want to build?', name: 'os_type')
 | 
			
		||||
       choice(choices: ['amd64'], description: 'Which target do you want to build?', name: 'os_arch')
 | 
			
		||||
       choice(choices: ['release'], description: 'Target build channel', name: 'channel')
 | 
			
		||||
       text(name: 'force_rebuild', defaultValue: '', description: 'Force rebuild libraries (Separate with a ";" | * = everything)')
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
	environment {
 | 
			
		||||
		//General flags
 | 
			
		||||
		CXX_FLAGS = ''
 | 
			
		||||
		C_FLAGS = ''
 | 
			
		||||
 | 
			
		||||
		//CMake specific flags
 | 
			
		||||
		CMAKE_OPTIONS = ''
 | 
			
		||||
		CMAKE_MAKE_OPTIONS = '-j 12'
 | 
			
		||||
 | 
			
		||||
		//Make specific flags
 | 
			
		||||
		MAKE_OPTIONS = '-j 12'
 | 
			
		||||
 | 
			
		||||
		force_rebuild="${params.force_rebuild}"
 | 
			
		||||
 | 
			
		||||
		build_os_type="${params.os_type}"
 | 
			
		||||
		build_os_arch="${params.os_arch}"
 | 
			
		||||
        teaclient_deploy_channel = "${params.deploy_build ? ${params.channel} : ${params.channel}}"
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	stages {
 | 
			
		||||
		stage ('build::linux') {
 | 
			
		||||
            when {
 | 
			
		||||
                expression { params.os_type == "linux" }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
		    stages {
 | 
			
		||||
                stage ('build::linux::amd64') {
 | 
			
		||||
                    agent {
 | 
			
		||||
                        label 'linux && amd64 && teaspeak-client'
 | 
			
		||||
                    }
 | 
			
		||||
                    when {
 | 
			
		||||
                        expression { params.os_arch == "amd64" }
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    environment {
 | 
			
		||||
                        CMAKE_BUILD_TYPE="RelWithDebInfo" /* we build out libraries every time in release mode! (Performance improve) */
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    stages {
 | 
			
		||||
                        stage('build::linux::amd64::libraries') {
 | 
			
		||||
                            steps {
 | 
			
		||||
                                sh 'git submodule update --init --recursive -f'
 | 
			
		||||
                                sh 'git submodule foreach git reset --hard'
 | 
			
		||||
                                sh './third_party/build.sh'
 | 
			
		||||
                                sh './build_shared.sh'
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                        stage('build::linux::amd64::build') {
 | 
			
		||||
                            steps {
 | 
			
		||||
                                echo "Deploy channel (empty on no deploy): ${teaclient_deploy_channel}"
 | 
			
		||||
                                sh './build_client.sh'
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
		}
 | 
			
		||||
		stage ('build::win32') {
 | 
			
		||||
            when {
 | 
			
		||||
                expression { params.os_type == "win32" }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
		    stages {
 | 
			
		||||
                stage ('build::win32::amd64') {
 | 
			
		||||
                    agent {
 | 
			
		||||
                        label 'win32 && amd64 && teaspeak-client'
 | 
			
		||||
                    }
 | 
			
		||||
                    when {
 | 
			
		||||
                        expression { params.os_arch == "amd64" }
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    stages {
 | 
			
		||||
                        stage('build::win32::amd64::libraries') {
 | 
			
		||||
                            steps {
 | 
			
		||||
                                sh 'git submodule update --init --recursive -f'
 | 
			
		||||
                                sh 'git submodule foreach git reset --hard'
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2
									
								
								client
									
									
									
									
									
								
							
							
								
								
								
								
								
								
									
									
								
							
						
						
									
										2
									
								
								client
									
									
									
									
									
								
							@ -1 +1 @@
 | 
			
		||||
Subproject commit c790c8bd08ad7e3940d29b83269c821b3c06b721
 | 
			
		||||
Subproject commit 4bd823a5efd2c4cf2d9bdb0f15bb6b46a2a2830a
 | 
			
		||||
@ -26,6 +26,11 @@ function requires_rebuild() {
 | 
			
		||||
    base_path=$(realpath $1)
 | 
			
		||||
    echo "Testing library build status at $1 ($base_path)"
 | 
			
		||||
 | 
			
		||||
    if [[ "$force_rebuild" == "*" ]]; then
 | 
			
		||||
        echo "Force rebuild for everything. Rebuilding!"
 | 
			
		||||
        return 1
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    if echo "$force_rebuild" | grep -q -E "(^|;)$1(;|$)"; then
 | 
			
		||||
        echo "Force rebuild for $1 is set. Rebuilding!"
 | 
			
		||||
        return 1
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2
									
								
								shared
									
									
									
									
									
								
							
							
								
								
								
								
								
								
									
									
								
							
						
						
									
										2
									
								
								shared
									
									
									
									
									
								
							@ -1 +1 @@
 | 
			
		||||
Subproject commit 2f07e0d0447ec44d265d43b2cd85b3db3143a131
 | 
			
		||||
Subproject commit 0bb0eb5df1d9e35a53d7ff050a84fb9c25764403
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user