11stages :
22 - init-builders
33 - build-libopenshot-audio
4+ - cleanup-builders
45 - trigger-libopenshot
56
67variables :
78 GIT_LOG_FORMAT : " - %h %ad %s [%aN]"
89
9- init_linux_builder :
10+ # INIT BUILDERS: Add to both queues in one job
11+ init_builders :
1012 stage : init-builders
11- tags :
12- - gitlab-server
13+ except :
14+ - tags
15+ tags : [gitlab-server]
1316 script :
1417 - send-ci-sqs linux
15-
16- init_windows_builder :
17- stage : init-builders
18- tags :
19- - gitlab-server
20- script :
2118 - send-ci-sqs windows
2219
20+ # BUILD STAGE: All build jobs depend on init_builders
2321linux-builder :
2422 stage : build-libopenshot-audio
25- needs : [init_linux_builder]
2623 artifacts :
2724 expire_in : 6 months
2825 paths :
2926 - build/install-x64/*
3027 script :
31- - mkdir -p build; cd build;
28+ - mkdir -p build
29+ - cd build
3230 - cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -D"CMAKE_INSTALL_PREFIX:PATH=install-x64" -D"CMAKE_BUILD_TYPE:STRING=Release" ../
3331 - make -j 2
3432 - make install
3533 - PROJECT_VERSION=$(grep -E '^set\(PROJECT_VERSION_FULL "(.*)' ../CMakeLists.txt | awk '{print $2}' | tr -d '")')
3634 - PROJECT_SO=$(grep -E '^set\(PROJECT_SO_VERSION (.*)' ../CMakeLists.txt | awk '{print $2}' | tr -d ')')
3735 - echo -e "CI_PROJECT_NAME:$CI_PROJECT_NAME\nCI_COMMIT_REF_NAME:$CI_COMMIT_REF_NAME\nCI_COMMIT_SHA:$CI_COMMIT_SHA\nCI_JOB_ID:$CI_JOB_ID\nCI_PIPELINE_ID:$CI_PIPELINE_ID\nVERSION:$PROJECT_VERSION\nSO:$PROJECT_SO" > "install-x64/share/$CI_PROJECT_NAME.env"
3836 - git log $(git describe --tags --abbrev=0 @^)..@ --oneline --pretty=format:"- %C(auto,yellow)%h%C(auto,magenta)% %C(auto,blue)%>(12,trunc)%ad %C(auto,green)%<(25,trunc)%aN%C(auto,reset)%s%C(auto,red)% gD% D" --date=short > "install-x64/share/$CI_PROJECT_NAME.log"
39- after_script :
40- - if [ "$CI" = "true" ]; then sudo shutdown -h now; fi
41- when : on_success
4237 except :
43- - tags
44- tags :
45- - linux-focal
38+ - tags
39+ tags : [linux-focal]
4640
4741mac-builder :
4842 stage : build-libopenshot-audio
@@ -59,15 +53,12 @@ mac-builder:
5953 - PROJECT_SO=$(grep -E '^set\(PROJECT_SO_VERSION (.*)' CMakeLists.txt | awk '{print $2}' | tr -d ')')
6054 - echo -e "CI_PROJECT_NAME:$CI_PROJECT_NAME\nCI_COMMIT_REF_NAME:$CI_COMMIT_REF_NAME\nCI_COMMIT_SHA:$CI_COMMIT_SHA\nCI_JOB_ID:$CI_JOB_ID\nCI_PIPELINE_ID:$CI_PIPELINE_ID\nVERSION:$PROJECT_VERSION\nSO:$PROJECT_SO" > "build/install-x64/share/$CI_PROJECT_NAME.env"
6155 - git log $(git describe --tags --abbrev=0 @^)..@ --oneline --pretty=format:"- %C(auto,yellow)%h%C(auto,magenta)% %C(auto,blue)%>(12,trunc)%ad %C(auto,green)%<(25,trunc)%aN%C(auto,reset)%s%C(auto,red)% gD% D" --date=short > "build/install-x64/share/$CI_PROJECT_NAME.log"
62- when : always
6356 except :
64- - tags
65- tags :
66- - mac
57+ - tags
58+ tags : [mac]
6759
6860windows-builder-x64 :
6961 stage : build-libopenshot-audio
70- needs : [init_windows_builder]
7162 artifacts :
7263 expire_in : 6 months
7364 paths :
@@ -84,17 +75,12 @@ windows-builder-x64:
8475 - New-Item -path "build/install-x64/share/" -Name "$CI_PROJECT_NAME.env" -Value "CI_PROJECT_NAME:$CI_PROJECT_NAME`nCI_COMMIT_REF_NAME:$CI_COMMIT_REF_NAME`nCI_COMMIT_SHA:$CI_COMMIT_SHA`nCI_JOB_ID:$CI_JOB_ID`nCI_PIPELINE_ID:$CI_PIPELINE_ID`nVERSION:$PROJECT_VERSION`nSO:$PROJECT_SO" -ItemType file -force
8576 - $PREV_GIT_LABEL=(git describe --tags --abbrev=0 '@^')
8677 - git log "$PREV_GIT_LABEL..@" --oneline --pretty=format:"- %C(auto,yellow)%h%C(auto,magenta)% %C(auto,blue)%>(12,trunc)%ad %C(auto,green)%<(25,trunc)%aN%C(auto,reset)%s%C(auto,red)% gD% D" --date=short > "build/install-x64/share/$CI_PROJECT_NAME.log"
87- after_script :
88- - if ($env:CI -eq "true") { shutdown /s /t 0 }
89- when : on_success
9078 except :
91- - tags
92- tags :
93- - windows
79+ - tags
80+ tags : [windows]
9481
9582windows-builder-x86 :
9683 stage : build-libopenshot-audio
97- needs : [init_windows_builder]
9884 artifacts :
9985 expire_in : 6 months
10086 paths :
@@ -111,14 +97,25 @@ windows-builder-x86:
11197 - New-Item -path "build/install-x86/share/" -Name "$CI_PROJECT_NAME.env" -Value "CI_PROJECT_NAME:$CI_PROJECT_NAME`nCI_COMMIT_REF_NAME:$CI_COMMIT_REF_NAME`nCI_COMMIT_SHA:$CI_COMMIT_SHA`nCI_JOB_ID:$CI_JOB_ID`nCI_PIPELINE_ID:$CI_PIPELINE_ID`nVERSION:$PROJECT_VERSION`nSO:$PROJECT_SO" -ItemType file -force
11298 - $PREV_GIT_LABEL=(git describe --tags --abbrev=0 '@^')
11399 - git log "$PREV_GIT_LABEL..@" --oneline --pretty=format:"- %C(auto,yellow)%h%C(auto,magenta)% %C(auto,blue)%>(12,trunc)%ad %C(auto,green)%<(25,trunc)%aN%C(auto,reset)%s%C(auto,red)% gD% D" --date=short > "build/install-x86/share/$CI_PROJECT_NAME.log"
114- after_script :
115- - if ($env:CI -eq "true") { shutdown /s /t 0 }
116- when : on_success
117100 except :
118101 - tags
119102 tags :
120103 - windows
121104
105+ # CLEANUP: Always run, removes both messages, then sleeps
106+ cleanup_builders :
107+ stage : cleanup-builders
108+ except :
109+ - tags
110+ tags : [gitlab-server]
111+ script :
112+ - receive-ci-sqs linux
113+ - receive-ci-sqs windows
114+ - echo "Pausing for ASG to scale-down..."
115+ - sleep 60
116+ when : always
117+
118+ # TRIGGER: Only runs if all previous succeeded
122119trigger-pipeline :
123120 stage : trigger-libopenshot
124121 script :
@@ -127,5 +124,4 @@ trigger-pipeline:
127124 dependencies : []
128125 except :
129126 - tags
130- tags :
131- - linux
127+ tags : [gitlab-server]
0 commit comments