增加CI
This commit is contained in:
123
.gitlab-ci.yml
Normal file
123
.gitlab-ci.yml
Normal file
@@ -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
|
||||
34
autorelease.sh
Normal file
34
autorelease.sh
Normal file
@@ -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
|
||||
Reference in New Issue
Block a user