summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLu Qiuwen <[email protected]>2018-11-19 20:42:39 +0800
committerLu Qiuwen <[email protected]>2018-11-19 20:52:18 +0800
commite2d63205109c5fc70c6da353f1b9fab93654951d (patch)
tree1dfe85750d61a3d603bf08aad59ed6b437da4ca4
parent0e08bc58411d5452403a5468f327396ec72583d8 (diff)
重新调整GitLab-CI脚本,增加自动更新rpm服务器的功能
-rw-r--r--.gitlab-ci.yml132
1 files changed, 88 insertions, 44 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 55dc56a..2906593 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,70 +1,114 @@
image: "git.mesalab.cn:7443/mesa_platform/marsio-build-env:master"
-variables:
+variables:
GIT_STRATEGY: "clone"
-
-before_script:
+
+stages:
+- build
+- package
+- deploy
+
+.build_before_script:
+ before_script:
- mkdir -p /tmp/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX/$CI_PROJECT_NAMESPACE/
- ln -s $CI_PROJECT_DIR /tmp/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX/$CI_PROJECT_PATH
- cd /tmp/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX/$CI_PROJECT_PATH
-stages:
- - build
- - package
-
+.build_mrzcpd:
+ extends: .build_before_script
+ script:
+ - mkdir -p build
+ - cd build
+ - cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_PREFIX_PATH=$BUILD_PREFIX
+ - make
+
+.package_mrzcpd:
+ extends: .build_before_script
+ script:
+ - yum install -y rpm-build
+ - mkdir -p build
+ - cd build
+ - cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_PREFIX_PATH=$BUILD_PREFIX
+ - make package
+
+.deploy_to_package_server:
+ script:
+ - cp build/*.rpm $RPM_REPO_PATH
+ - createrepo --update $RPM_REPO_PATH
+
build-debug:
stage: build
+ extends: .build_mrzcpd
tags:
- - mrzcpd
- - centos-7.4.1708
- script:
- - mkdir -p build
- - cd build
- - cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PREFIX_PATH=/opt/dpdk-17.05-debug
- - make
-
+ - mrzcpd
+ - centos-7.4.1708
+ variables:
+ BUILD_TYPE: "Debug"
+ BUILD_PREFIX: "/opt/dpdk-17.05-debug"
+
build-release:
stage: build
+ extends: .build_mrzcpd
tags:
- - mrzcpd
- - centos-7.4.1708
- script:
- - mkdir -p build
- - cd build
- - cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_PREFIX_PATH=/opt/dpdk-17.05-rel
- - make
-
+ - mrzcpd
+ - centos-7.4.1708
+ variables:
+ BUILD_TYPE: "RelWithDebInfo"
+ BUILD_PREFIX: "/opt/dpdk-17.05-rel"
+
package-debug:
stage: package
+ extends: .package_mrzcpd
tags:
- - mrzcpd
- - centos-7.4.1708
- script:
- - yum install -y rpm-build
- - mkdir -p build
- - cd build
- - cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PREFIX_PATH=/opt/dpdk-17.05-debug
- - make package
+ - mrzcpd
+ - centos-7.4.1708
+ variables:
+ BUILD_TYPE: "Debug"
+ BUILD_PREFIX: "/opt/dpdk-17.05-debug"
artifacts:
name: "mrzcpd-debug-$CI_COMMIT_REF_NAME-binary"
paths:
- - build/*.rpm
+ - build/*.rpm
only:
- - tags
-
+ - tags
+
package-release:
stage: package
+ extends: .package_mrzcpd
tags:
- - mrzcpd
- - centos-7.4.1708
- script:
- - yum install -y rpm-build
- - mkdir -p build
- - cd build
- - cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_PREFIX_PATH=/opt/dpdk-17.05-rel
- - make package
+ - mrzcpd
+ - centos-7.4.1708
+ variables:
+ BUILD_TYPE: "RelWithDebInfo"
+ BUILD_PREFIX: "/opt/dpdk-17.05-rel"
artifacts:
name: "mrzcpd-$CI_COMMIT_REF_NAME-binary"
paths:
- - build/*.rpm
+ - build/*.rpm
+ only:
+ - tags
+
+deploy-debug:
+ stage: deploy
+ tags:
+ - package-server
+ dependencies:
+ - package-debug
+ variables:
+ GIT_STRATEGY: "none"
+ RPM_REPO_PATH: "/data/ci/repos/mrzcpd"
+ extends: .deploy_to_package_server
+ only:
+ - tags
+
+deploy_release:
+ stage: deploy
+ tags:
+ - package-server
+ dependencies:
+ - package-release
+ variables:
+ GIT_STRATEGY: "none"
+ RPM_REPO_PATH: "/data/ci/repos/mrzcpd"
+ extends: .deploy_to_package_server
only:
- - tags \ No newline at end of file
+ - tags