summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorliuxueli <[email protected]>2019-12-11 17:29:00 +0800
committerliuxueli <[email protected]>2019-12-11 17:29:00 +0800
commit2c249d671606aa5df8b81403cc4ddadb0f9ef3ae (patch)
treea1897402d7c639349b25cacd7c7ae95f2dd6dd59
parent6c6ba3f3bfa7c5ad0fcbb20ae43ecbb39f712ed8 (diff)
增加CIv1.0.1
-rw-r--r--.gitlab-ci.yml123
-rw-r--r--autorelease.sh34
2 files changed, 157 insertions, 0 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000..617d530
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,123 @@
+image: "docker:stable"
+
+services:
+ - docker:dind
+
+variables:
+ GIT_STRATEGY: "clone"
+ IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
+
+
+stages:
+ - build
+ - package
+ - release
+ - docker
+
+.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
+
+.build_fw_dns_plug:
+ extends: .build_before_script
+ image: git.mesalab.cn:7443/tango/tsg_master:master
+ script:
+ - source /etc/profile.d/MESA.sh
+ - mkdir -p build
+ - cd build
+ - cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE
+ - make
+ - make package
+
+.package_fw_dns_plug:
+ extends: .build_before_script
+ image: git.mesalab.cn:7443/tango/tsg_master:master
+ script:
+ - source /etc/profile.d/MESA.sh
+ - mkdir -p build
+ - cd build
+ - cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE
+ - make package
+
+build:
+ stage: build
+ extends: .build_fw_dns_plug
+ tags:
+ - share
+ variables:
+ BUILD_TYPE: "Debug"
+ artifacts:
+ name: "$CI_JOB_NAME-$CI_COMMIT_REF_NAME"
+ paths:
+ - ./build/*.rpm
+ except:
+ - tags
+
+fw_dns_plug_debug:
+ stage: package
+ extends: .package_fw_dns_plug
+ tags:
+ - share
+ variables:
+ BUILD_TYPE: "Debug"
+ artifacts:
+ name: "$CI_JOB_NAME-$CI_COMMIT_REF_NAME"
+ paths:
+ - ./build/*.rpm
+ only:
+ - tags
+
+fw_dns_plug_release:
+ stage: package
+ extends: .package_fw_dns_plug
+ tags:
+ - share
+ variables:
+ BUILD_TYPE: "Release"
+ artifacts:
+ name: "$CI_JOB_NAME-$CI_COMMIT_REF_NAME"
+ paths:
+ - ./build/*.rpm
+ only:
+ - tags
+
+fw_dns_plug_release-release:
+ stage: release
+ image: git.mesalab.cn:7443/tango/tsg_master:master
+ tags:
+ - share
+ variables:
+ ARTIFACTS_JOB: "fw_dns_plug_release"
+ PROJECT_NAME: "fw_dns_plug"
+ USER_DEFINE: "release"
+ only:
+ - tags
+ script:
+ - /bin/bash -x ./autorelease.sh $CI_API_V4_URL $CI_PROJECT_URL $CI_PROJECT_ID $CI_TOKEN $CI_COMMIT_TAG $ARTIFACTS_JOB $PROJECT_NAME $USER_DEFINE
+
+fw_dns_plug_debug-release:
+ stage: release
+ image: git.mesalab.cn:7443/tango/tsg_master:master
+ tags:
+ - share
+ variables:
+ ARTIFACTS_JOB: "fw_dns_plug_debug"
+ PROJECT_NAME: "fw_dns_plug"
+ USER_DEFINE: "release"
+ only:
+ - tags
+ script:
+ - /bin/bash -x ./autorelease.sh $CI_API_V4_URL $CI_PROJECT_URL $CI_PROJECT_ID $CI_TOKEN $CI_COMMIT_TAG $ARTIFACTS_JOB $PROJECT_NAME $USER_DEFINE
+
+build-docker:
+ stage: docker
+ script:
+ - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
+ - docker build -t $IMAGE_TAG .
+ - docker push $IMAGE_TAG
+ tags:
+ - share
+ only:
+ - master \ No newline at end of file
diff --git a/autorelease.sh b/autorelease.sh
new file mode 100644
index 0000000..34eaefb
--- /dev/null
+++ b/autorelease.sh
@@ -0,0 +1,34 @@
+#!/bin/sh
+if [ $# -lt 8 ] ; then
+ echo "USAGE: ./autorelease.sh [API_V4_URL] [PROJECT_URL]
+ [PROJECT_ID] [TOKEN]
+ [COMMIT_TAG] [JOB] [PROJECT_NAME] [USER_DEFINE]"
+ echo "$1; $2; $3; $4; $5; $6; $7; $8"
+exit 1;
+fi
+
+CI_API_V4_URL=$1
+CI_PROJECT_URL=$2
+CI_PROJECT_ID=$3
+CI_TOKEN=$4
+CI_COMMIT_TAG=$5
+ARTIFACTS_JOB=$6
+CI_PROJECT_NAME=$7
+USER_DEFINE=$8
+
+res=`echo -e "curl --header \"PRIVATE-TOKEN: $CI_TOKEN\" $CI_API_V4_URL/projects/$CI_PROJECT_ID/releases/$CI_COMMIT_TAG -o /dev/null -s -w %{http_code}"| /bin/bash`
+
+if [[ $res == "200" ]]; then
+ eval $(echo -e "curl --request POST --header \"PRIVATE-TOKEN: $CI_TOKEN\" \
+ --data name=\"$CI_PROJECT_NAME-$USER_DEFINE-$CI_COMMIT_TAG.zip\" \
+ --data url=\"$CI_PROJECT_URL/-/jobs/artifacts/$CI_COMMIT_TAG/download?job=$ARTIFACTS_JOB\"\
+ $CI_API_V4_URL/projects/$CI_PROJECT_ID/releases/$CI_COMMIT_TAG/assets/links")
+else
+ eval $(echo -e "curl --header 'Content-Type: application/json' --header \
+ \"PRIVATE-TOKEN: $CI_TOKEN\" --data '{ \"name\": \"$CI_COMMIT_TAG\", \
+ \"tag_name\": \"$CI_COMMIT_TAG\", \"description\": \"auto_release\",\
+ \"assets\": { \"links\": [{ \"name\": \
+ \"$CI_PROJECT_NAME-$USER_DEFINE-$CI_COMMIT_TAG.zip\", \"url\": \
+ \"$CI_PROJECT_URL/-/jobs/artifacts/$CI_COMMIT_TAG/download?job=$ARTIFACTS_JOB\"\
+ }] } }' --request POST $CI_API_V4_URL/projects/$CI_PROJECT_ID/releases/")
+fi \ No newline at end of file