mirror of
				https://github.com/vyos/vyos-build.git
				synced 2025-10-01 20:28:40 +02:00 
			
		
		
		
	waagent: T6475: Added waagent build instructions
We need a version newer than in the Debian repository. This commit adds instructions to build a version from sid.
This commit is contained in:
		
							parent
							
								
									26181773ef
								
							
						
					
					
						commit
						f3a31a338a
					
				
							
								
								
									
										32
									
								
								packages/waagent/Jenkinsfile
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								packages/waagent/Jenkinsfile
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,32 @@ | |||||||
|  | // Copyright (C) 2024 VyOS maintainers and contributors | ||||||
|  | // | ||||||
|  | // This program is free software; you can redistribute it and/or modify | ||||||
|  | // in order to easy exprort images built to "external" world | ||||||
|  | // it under the terms of the GNU General Public License version 2 or later as | ||||||
|  | // published by the Free Software Foundation. | ||||||
|  | // | ||||||
|  | // This program is distributed in the hope that it will be useful, | ||||||
|  | // but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  | // GNU General Public License for more details. | ||||||
|  | // | ||||||
|  | // You should have received a copy of the GNU General Public License | ||||||
|  | // along with this program.  If not, see <http://www.gnu.org/licenses/>. | ||||||
|  | 
 | ||||||
|  | @NonCPS | ||||||
|  | 
 | ||||||
|  | // Using a version specifier library, use 'current' branch. The underscore (_) | ||||||
|  | // is not a typo! You need this underscore if the line immediately after the | ||||||
|  | // @Library annotation is not an import statement! | ||||||
|  | @Library('vyos-build@current')_ | ||||||
|  | 
 | ||||||
|  | def package_name = 'waagent' | ||||||
|  | def pkgList = [ | ||||||
|  |     ['name': "${package_name}", | ||||||
|  |      'scmCommit': 'debian/2.9.1.1-2', | ||||||
|  |      'scmUrl': 'https://salsa.debian.org/cloud-team/waagent.git', | ||||||
|  |      'buildCmd': 'sudo mk-build-deps --install --tool "apt-get --yes --no-install-recommends"; sudo apt-get install --yes --no-install-recommends dpkg-source-gitarchive; ../build.py'], | ||||||
|  | ] | ||||||
|  | 
 | ||||||
|  | // Start package build using library function from https://github.com/vyos/vyos-build | ||||||
|  | buildPackage("${package_name}", pkgList, null, true, "**/packages/waagent/**") | ||||||
							
								
								
									
										50
									
								
								packages/waagent/build.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								packages/waagent/build.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,50 @@ | |||||||
|  | #!/usr/bin/env python3 | ||||||
|  | 
 | ||||||
|  | from pathlib import Path | ||||||
|  | from shutil import copy as copy_file | ||||||
|  | from subprocess import run | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # copy patches | ||||||
|  | def apply_deb_patches() -> None: | ||||||
|  |     """Apply patches to sources directory | ||||||
|  |     """ | ||||||
|  |     patches_dir = Path('../patches') | ||||||
|  |     current_dir: str = Path.cwd().as_posix() | ||||||
|  |     if patches_dir.exists(): | ||||||
|  |         patches_list = list(patches_dir.iterdir()) | ||||||
|  |         patches_list.sort() | ||||||
|  |         Path(f'{current_dir}/debian/patches').mkdir(parents=True, exist_ok=True) | ||||||
|  |         series_file = Path(f'{current_dir}/debian/patches/series') | ||||||
|  |         series_data = '' | ||||||
|  |         for patch_file in patches_list: | ||||||
|  |             print(f'Applying patch: {patch_file.name}') | ||||||
|  |             copy_file(patch_file, f'{current_dir}/debian/patches/') | ||||||
|  |             if series_file.exists(): | ||||||
|  |                 series_data: str = series_file.read_text() | ||||||
|  |             series_data = f'{series_data}\n{patch_file.name}' | ||||||
|  |             series_file.write_text(series_data) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | def build_package() -> bool: | ||||||
|  |     """Build a package | ||||||
|  | 
 | ||||||
|  |     Returns: | ||||||
|  |         bool: build status | ||||||
|  |     """ | ||||||
|  |     build_cmd: list[str] = ['dpkg-buildpackage', '-uc', '-us', '-tc', '-b'] | ||||||
|  |     build_status: int = run(build_cmd).returncode | ||||||
|  | 
 | ||||||
|  |     if build_status: | ||||||
|  |         return False | ||||||
|  |     return True | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # build a package | ||||||
|  | if __name__ == '__main__': | ||||||
|  |     apply_deb_patches() | ||||||
|  | 
 | ||||||
|  |     if not build_package(): | ||||||
|  |         exit(1) | ||||||
|  | 
 | ||||||
|  |     exit() | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user