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