refactor: extract shell commands from .drone.yml to separate script files
This commit is contained in:
		
							parent
							
								
									3520ae36a6
								
							
						
					
					
						commit
						144ca1aa4f
					
				
					 7 changed files with 103 additions and 90 deletions
				
			
		
							
								
								
									
										96
									
								
								.drone.yml
									
										
									
									
									
								
							
							
						
						
									
										96
									
								
								.drone.yml
									
										
									
									
									
								
							|  | @ -12,23 +12,7 @@ platform: | |||
| steps: | ||||
| - name: tests | ||||
|   shell: powershell | ||||
|   commands: | | ||||
|     conan profile detect | ||||
| 
 | ||||
|     conan build . -s compiler.cppstd=20 -s build_type=Release | ||||
| 
 | ||||
|     $tests = Get-ChildItem -Path "./build" -Recurse -File | Where-Object { | ||||
|         $_.Name -like "*_tests.exe" | ||||
|     } | ||||
| 
 | ||||
|     foreach ($test in $tests) { | ||||
|         Write-Host "Running $($test.FullName)" | ||||
|         & $test.FullName | ||||
|         if ($LASTEXITCODE -ne 0) { | ||||
|           Write-Error "Test $($test.Name) failed! T_T" | ||||
|             exit $LASTEXITCODE | ||||
|         } | ||||
|     } | ||||
|   commands: ./tools/ci/steps/amd64_msvc_tests.ps1 | ||||
| 
 | ||||
| --- | ||||
| kind: pipeline | ||||
|  | @ -42,20 +26,7 @@ steps: | |||
| - name: tests | ||||
|   image: unit_tests:latest | ||||
|   pull: if-not-exists | ||||
|   commands: | | ||||
|     set -e | ||||
|     conan build . \ | ||||
|       -c tools.system.package_manager:mode=install \ | ||||
|       -c tools.cmake.cmaketoolchain:generator=Ninja \ | ||||
|       -s build_type=Release \ | ||||
|       -o enable_tests=True \ | ||||
|       -o use_mold=True \ | ||||
|       --build=missing | ||||
| 
 | ||||
|     for test in $(find ./build -type f -name '*_tests' -executable); do | ||||
|       echo "Running $test" | ||||
|       "$test" | ||||
|     done | ||||
|   commands: ./tools/ci/steps/amd64_gcc_tests.sh | ||||
| 
 | ||||
| --- | ||||
| kind: pipeline | ||||
|  | @ -69,17 +40,7 @@ steps: | |||
| - name: valgrind | ||||
|   image: valgrind:latest | ||||
|   pull: if-not-exists | ||||
|   commands: | | ||||
|     set -e | ||||
|     conan build . \ | ||||
|       -c tools.system.package_manager:mode=install \ | ||||
|       -c tools.cmake.cmaketoolchain:generator=Ninja \ | ||||
|       -s build_type=Release \ | ||||
|       -o enable_tests=True \ | ||||
|       -o use_mold=True \ | ||||
|       --build=missing | ||||
| 
 | ||||
|     find ./build -type f -name "*_tests" -executable | xargs -I {} bash -c 'valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes --verbose --error-exitcode=255 {}' || exit 1 | ||||
|   commands: ./tools/ci/steps/amd64_gcc_valgrind.sh | ||||
| 
 | ||||
| --- | ||||
| kind: pipeline | ||||
|  | @ -93,26 +54,7 @@ steps: | |||
| - name: leak sanitizer | ||||
|   image: leak_sanitizer:latest | ||||
|   pull: if-not-exists | ||||
|   commands: | | ||||
|     set -e | ||||
|     conan build . \ | ||||
|       -c tools.system.package_manager:mode=install \ | ||||
|       -c tools.cmake.cmaketoolchain:generator=Ninja \ | ||||
|       -c tools.build:cxxflags='["-g", "-fno-omit-frame-pointer", "-nostdinc++", "-isystem", "/libcxx_lsan/include/c++/v1/", "-fsanitize=leak"]' \ | ||||
|       -c tools.build:sharedlinkflags='["-L/libcxx_lsan/lib", "-Wl,-rpath,/libcxx_lsan/lib", "-lc++", "-lc++abi", "-fsanitize=leak"]' \ | ||||
|       -c tools.build:exelinkflags='["-L/libcxx_lsan/lib", "-Wl,-rpath,/libcxx_lsan/lib", "-lc++", "-lc++abi", "-fsanitize=leak"]' \ | ||||
|       -c tools.info.package_id:confs='["tools.build:cxxflags","tools.build:sharedlinkflags","tools.build:exelinkflags"]' \ | ||||
|       -c tools.build:compiler_executables='{"c": "clang", "cpp": "clang++"}' \ | ||||
|       -s build_type=Release \ | ||||
|       -s compiler=clang \ | ||||
|       -s compiler.version=20 \ | ||||
|       -s compiler.libcxx=libc++ \ | ||||
|       -o use_mold=True \ | ||||
|       --build=missing | ||||
|     for test in $(find ./build -type f -name '*_tests' -executable); do | ||||
|       echo "Running $test" | ||||
|       "$test" | ||||
|     done | ||||
|   commands: ./tools/ci/steps/amd64_clang_sanitizer_leak.sh | ||||
| 
 | ||||
| --- | ||||
| kind: pipeline | ||||
|  | @ -127,16 +69,7 @@ steps: | |||
|   image: static_analysis:latest | ||||
|   pull: if-not-exists | ||||
|   privileged: true | ||||
|   commands: | ||||
|     - | | ||||
|       conan build . \ | ||||
|         -c tools.system.package_manager:mode=install \ | ||||
|         -c tools.cmake.cmaketoolchain:generator=Ninja \ | ||||
|         -s build_type=Release \ | ||||
|         -o enable_static_analysis=True \ | ||||
|         -o enable_tests=True \ | ||||
|         -o use_mold=True \ | ||||
|         --build=missing | ||||
|   commands: ./tools/ci/steps/static_analysis.sh | ||||
| 
 | ||||
| --- | ||||
| kind: pipeline | ||||
|  | @ -150,21 +83,4 @@ steps: | |||
| - name: clang format | ||||
|   image: clang_format:latest | ||||
|   pull: if-not-exists | ||||
|   commands: | | ||||
|     set -e | ||||
|     clang-format --version | ||||
|     has_fomatting_issues=0 | ||||
| 
 | ||||
|     for file in $(find ./modules -name '*.?pp'); do | ||||
|       echo "Checking format for $file" | ||||
|       if ! clang-format --dry-run --Werror "$file"; then | ||||
|         echo "❌ Formatting issue detected in $file" | ||||
|         has_fomatting_issues=1 | ||||
|       fi | ||||
|     done | ||||
| 
 | ||||
|     if [ "$has_fomatting_issues" -eq 0 ]; then | ||||
|       echo "✅ All files are properly formatted! Well done! ^~^" | ||||
|     fi | ||||
| 
 | ||||
|     exit ${has_fomatting_issues} | ||||
|   commands: ./tools/ci/steps/style.sh | ||||
|  |  | |||
							
								
								
									
										23
									
								
								tools/ci/steps/amd64_clang_sanitizer_leak.sh
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										23
									
								
								tools/ci/steps/amd64_clang_sanitizer_leak.sh
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,23 @@ | |||
| #!/bin/bash | ||||
| 
 | ||||
| set -e | ||||
| 
 | ||||
| conan build . \ | ||||
|   -c tools.system.package_manager:mode=install \ | ||||
|   -c tools.cmake.cmaketoolchain:generator=Ninja \ | ||||
|   -c tools.build:cxxflags='["-g", "-fno-omit-frame-pointer", "-nostdinc++", "-isystem", "/libcxx_lsan/include/c++/v1/", "-fsanitize=leak"]' \ | ||||
|   -c tools.build:sharedlinkflags='["-L/libcxx_lsan/lib", "-Wl,-rpath,/libcxx_lsan/lib", "-lc++", "-lc++abi", "-fsanitize=leak"]' \ | ||||
|   -c tools.build:exelinkflags='["-L/libcxx_lsan/lib", "-Wl,-rpath,/libcxx_lsan/lib", "-lc++", "-lc++abi", "-fsanitize=leak"]' \ | ||||
|   -c tools.info.package_id:confs='["tools.build:cxxflags","tools.build:sharedlinkflags","tools.build:exelinkflags"]' \ | ||||
|   -c tools.build:compiler_executables='{"c": "clang", "cpp": "clang++"}' \ | ||||
|   -s build_type=Release \ | ||||
|   -s compiler=clang \ | ||||
|   -s compiler.version=20 \ | ||||
|   -s compiler.libcxx=libc++ \ | ||||
|   -o use_mold=True \ | ||||
|   --build=missing | ||||
| 
 | ||||
| for test in $(find ./build -type f -name '*_tests' -executable); do | ||||
|   echo "Running $test" | ||||
|   "$test" | ||||
| done | ||||
							
								
								
									
										16
									
								
								tools/ci/steps/amd64_gcc_tests.sh
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										16
									
								
								tools/ci/steps/amd64_gcc_tests.sh
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,16 @@ | |||
| #!/bin/bash | ||||
| 
 | ||||
| set -e | ||||
| 
 | ||||
| conan build . \ | ||||
|   -c tools.system.package_manager:mode=install \ | ||||
|   -c tools.cmake.cmaketoolchain:generator=Ninja \ | ||||
|   -s build_type=Release \ | ||||
|   -o enable_tests=True \ | ||||
|   -o use_mold=True \ | ||||
|   --build=missing | ||||
| 
 | ||||
| for test in $(find ./build -type f -name '*_tests' -executable); do | ||||
|   echo "Running $test" | ||||
|   "$test" | ||||
| done | ||||
							
								
								
									
										12
									
								
								tools/ci/steps/amd64_gcc_valgrind.sh
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										12
									
								
								tools/ci/steps/amd64_gcc_valgrind.sh
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,12 @@ | |||
| #!/bin/bash | ||||
| 
 | ||||
| set -e | ||||
| conan build . \ | ||||
|   -c tools.system.package_manager:mode=install \ | ||||
|   -c tools.cmake.cmaketoolchain:generator=Ninja \ | ||||
|   -s build_type=Release \ | ||||
|   -o enable_tests=True \ | ||||
|   -o use_mold=True \ | ||||
|   --build=missing | ||||
| 
 | ||||
| find ./build -type f -name "*_tests" -executable | xargs -I {} bash -c 'valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes --verbose --error-exitcode=255 {}' || exit 1 | ||||
							
								
								
									
										16
									
								
								tools/ci/steps/amd64_msvc_tests.ps1
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								tools/ci/steps/amd64_msvc_tests.ps1
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,16 @@ | |||
| conan profile detect | ||||
| conan build . -s compiler.cppstd=20 -s build_type=Release | ||||
| 
 | ||||
| $tests = Get-ChildItem -Path "./build" -Recurse -File | Where-Object { | ||||
|     $_.Name -like "*_tests.exe" | ||||
| } | ||||
| 
 | ||||
| foreach ($test in $tests) { | ||||
|     Write-Host "Running $($test.FullName)" | ||||
|     & $test.FullName | ||||
|     if ($LASTEXITCODE -ne 0) { | ||||
|       Write-Error "Test $($test.Name) failed! T_T" | ||||
|         exit $LASTEXITCODE | ||||
|     } | ||||
| } | ||||
| 
 | ||||
							
								
								
									
										12
									
								
								tools/ci/steps/static_analysis.sh
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										12
									
								
								tools/ci/steps/static_analysis.sh
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,12 @@ | |||
| #!/bin/bash | ||||
| 
 | ||||
| set -e | ||||
| 
 | ||||
| conan build . \ | ||||
| -c tools.system.package_manager:mode=install \ | ||||
| -c tools.cmake.cmaketoolchain:generator=Ninja \ | ||||
| -s build_type=Release \ | ||||
| -o enable_static_analysis=True \ | ||||
| -o enable_tests=True \ | ||||
| -o use_mold=True \ | ||||
| --build=missing | ||||
							
								
								
									
										18
									
								
								tools/ci/steps/style.sh
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										18
									
								
								tools/ci/steps/style.sh
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,18 @@ | |||
| #!/bin/bash | ||||
| 
 | ||||
| set -e | ||||
| 
 | ||||
| has_fomatting_issues=0 | ||||
| for file in $(find ./modules -name '*.?pp'); do | ||||
|   echo "Checking format for $file" | ||||
|   if ! clang-format --dry-run --Werror "$file"; then | ||||
|     echo "❌ Formatting issue detected in $file" | ||||
|     has_fomatting_issues=1 | ||||
|   fi | ||||
| done | ||||
| 
 | ||||
| if [ "$has_fomatting_issues" -eq 0 ]; then | ||||
|   echo "✅ All files are properly formatted! Well done! ^~^" | ||||
| fi | ||||
| 
 | ||||
| exit ${has_fomatting_issues} | ||||
		Loading…
	
	Add table
		
		Reference in a new issue