cicd: applied DRY principle
This commit is contained in:
		
							parent
							
								
									276dd2217c
								
							
						
					
					
						commit
						b72a089458
					
				
					 1 changed files with 89 additions and 95 deletions
				
			
		
							
								
								
									
										120
									
								
								.drone.yml
									
										
									
									
									
								
							
							
						
						
									
										120
									
								
								.drone.yml
									
										
									
									
									
								
							|  | @ -1,103 +1,97 @@ | |||
| kind: pipeline | ||||
| type: docker | ||||
| name: build_linux_clang_amd64 | ||||
| 
 | ||||
| platform: | ||||
|   os: linux | ||||
|   arch: amd64 | ||||
| 
 | ||||
| steps: | ||||
| - name: build | ||||
|   - &install_dependencies& | ||||
|     name: install_dependencies | ||||
|     image: ubuntu:latest | ||||
|     commands: | ||||
|       - apt update | ||||
|       - apt-get install -y build-essential cmake clang clang-tidy gcc g++ python3 python3-pip python3.12-venv | ||||
| 
 | ||||
|   - &setup_conan | ||||
|     name: setup_conan | ||||
|     image: ubuntu:latest | ||||
|     environment: | ||||
|       CONAN_REVISIONS_ENABLED: "1" | ||||
|     commands: | ||||
|       - python3 -m venv /opt/venv | ||||
|       - . /opt/venv/bin/activate | ||||
|   - pip --version | ||||
|   - python --version | ||||
| 
 | ||||
|       - pip install conan==2.5.0 | ||||
|   - conan --version | ||||
| 
 | ||||
|   - export CONAN_REVISIONS_ENABLED=1 | ||||
|   - export CC=$(which clang) | ||||
|   - export CXX=$(which clang++) | ||||
| 
 | ||||
|   - conan profile detect | ||||
|   - cp ./tools/conan/profiles/linux_clang_amd64 $(conan profile path default) | ||||
| 
 | ||||
|   # - conan remote add light https://artifactory.light7734.com/artifactory/api/conan/conan | ||||
|   - conan install . --build=missing | ||||
|   - conan build . | ||||
| 
 | ||||
|   - ./build/Release/modules/light/light | ||||
| 
 | ||||
| --- | ||||
| kind: pipeline | ||||
| type: docker | ||||
| name: build_linux_gcc_amd64 | ||||
| 
 | ||||
| platform: | ||||
|   os: linux | ||||
|   arch: amd64 | ||||
| 
 | ||||
| steps: | ||||
| - name: build | ||||
|   - &echo_info | ||||
|     name: echo_info | ||||
|     image: ubuntu:latest | ||||
|     commands: | ||||
|   - apt update | ||||
|   - apt-get install -y build-essential cmake clang clang-tidy gcc g++ python3 python3-pip python3.12-venv | ||||
| 
 | ||||
|   - python3 -m venv /opt/venv | ||||
|   - . /opt/venv/bin/activate | ||||
|       - pip --version | ||||
|       - python --version | ||||
| 
 | ||||
|   - pip install conan==2.5.0 | ||||
|       - conan --version | ||||
|       - gcc --version | ||||
|       - g++ --version | ||||
|       - clang --version | ||||
|       - clang++ --version | ||||
|       - clang-tidy --version | ||||
|       - clang-format --version | ||||
| 
 | ||||
|   - export CONAN_REVISIONS_ENABLED=1 | ||||
|   - &build_gcc | ||||
|     name: build_gcc | ||||
|     image: ubuntu:latest | ||||
|     commands: | ||||
|       - rm -rv ./build | ||||
|       - export CC=$(which gcc) | ||||
|       - export CXX=$(which g++) | ||||
| 
 | ||||
|       - conan profile detect | ||||
|       - cp ./tools/conan/profiles/linux_gcc_amd64 $(conan profile path default) | ||||
| 
 | ||||
|   # - conan remote add light https://artifactory.light7734.com/artifactory/api/conan/conan | ||||
|       - conan install . --build=missing | ||||
|       - conan build . | ||||
| 
 | ||||
|       - ./build/Release/modules/light/light | ||||
| 
 | ||||
| --- | ||||
| kind: pipeline | ||||
| type: docker | ||||
| name: static_analysis | ||||
|   - &build_clang | ||||
|     name: build_clang | ||||
|     image: ubuntu:latest | ||||
|     commands: | ||||
|       - rm -rv ./build | ||||
|       - export CC=$(which clang) | ||||
|       - export CXX=$(which clang++) | ||||
| 
 | ||||
| platform: | ||||
|   os: linux | ||||
|   arch: amd64 | ||||
|       - conan profile detect | ||||
|       - cp ./tools/conan/profiles/linux_clang_amd64 $(conan profile path default) | ||||
|       - conan install . --build=missing | ||||
|       - conan build . | ||||
| 
 | ||||
| steps: | ||||
| - name: analysis | ||||
|       - ./build/Release/modules/light/light | ||||
| 
 | ||||
|   - &static_analysis | ||||
|     name: static_analysis | ||||
|     image: ubuntu:latest | ||||
|     commands: | ||||
|       - echo "[TODO] Implement static analysis" | ||||
| 
 | ||||
| --- | ||||
|   - &run_tests | ||||
|     name: run_tests | ||||
|     image: ubuntu:latest | ||||
|     commands: | ||||
|       - echp "[TODO] Implement tests" | ||||
| 
 | ||||
|   - &report_coverage | ||||
|     name: report_coverage | ||||
|     image: ubuntu:latest | ||||
|     commands: | ||||
|       - echp "[TODO] Implement coverage report" | ||||
| 
 | ||||
| kind: pipeline | ||||
| type: docker | ||||
| name: code_coverage | ||||
| name: linux_amd64 | ||||
| 
 | ||||
| platform: | ||||
|   os: linux | ||||
|   arch: amd64 | ||||
| 
 | ||||
| steps: | ||||
| - name: analysis | ||||
|   image: ubuntu:latest | ||||
|   commands: | ||||
|     - echo "[TODO] Implement code coverage" | ||||
| 
 | ||||
|   - *install_dependencies | ||||
|   - *setup_conan | ||||
|   - *echo_info | ||||
|   - *static_analysis | ||||
|   - *build_gcc | ||||
|   - *build_clang | ||||
|   - *report_coverage | ||||
|   - *run_tests | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue