diff options
| author | liuxueli <[email protected]> | 2019-12-11 17:29:00 +0800 |
|---|---|---|
| committer | liuxueli <[email protected]> | 2019-12-11 17:29:00 +0800 |
| commit | 2c249d671606aa5df8b81403cc4ddadb0f9ef3ae (patch) | |
| tree | a1897402d7c639349b25cacd7c7ae95f2dd6dd59 | |
| parent | 6c6ba3f3bfa7c5ad0fcbb20ae43ecbb39f712ed8 (diff) | |
增加CIv1.0.1
| -rw-r--r-- | .gitlab-ci.yml | 123 | ||||
| -rw-r--r-- | autorelease.sh | 34 |
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 |
