summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author杨威 <[email protected]>2019-06-27 11:40:17 +0800
committer杨威 <[email protected]>2019-06-27 11:40:17 +0800
commita1e91fdc3eb1c7bc2256127d56169752168539fa (patch)
tree053ca491b06f3869157a99527e6d9837dfd63f31
parentfd0ade4430d73b7d3a812be1589bceb14d6185c1 (diff)
Master
-rw-r--r--.gitlab-ci.yml60
-rw-r--r--Dockerfile11
-rw-r--r--autorelease.sh33
3 files changed, 104 insertions, 0 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000..de3f503
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,60 @@
+image: "docker:stable"
+stages:
+- build
+#- test
+#- package
+- release
+- docker
+
+variables:
+ ARTIFACTS_JOB: "build"
+ DOCKER_HOST: tcp://docker:2375
+ DOCKER_DRIVER: overlay2
+ IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
+
+build:
+ image: "git.mesalab.cn:7443/mesa_framework/framework:master"
+ stage: build
+ script:
+ - source //etc/profile.d/MESA.sh
+ - mkdir -p build
+ - cd build
+ - cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_PREFIX_PATH=$BUILD_PREFIX
+ - make
+ - make package
+ tags:
+ - share
+ variables:
+ BUILD_TYPE: "Debug"
+ BUILD_PREFIX: "/opt/MESA/"
+ only:
+ - tags
+ artifacts:
+ name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA"
+ paths:
+ - ./build/*.rpm
+
+release:
+ image: "git.mesalab.cn:7443/mesa_framework/framework:master"
+ stage: release
+ tags:
+ - share
+ 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 $CI_PROJECT_NAME $CI_COMMIT_SHORT_SHA
+
+docker:
+ stage: docker
+ services:
+ - docker:dind
+ tags:
+ - share
+ only:
+ - tags
+ script:
+ - ls -l build
+ - ls -l /tmp/
+ - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
+ - docker build -t $IMAGE_TAG .
+ - docker push $IMAGE_TAG \ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..be1855f
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,11 @@
+FROM git.mesalab.cn:7443/mesa_framework/framework:master
+
+ENV kernelversion 3.10.0-693.el7.x86_64
+
+COPY build/*.rpm /tmp
+
+RUN cd /tmp \
+ && rpm -i *.rpm \
+ && rm -rf /tmp/* \
+ && yum clean all \
+ && rm -rf /var/cache/yum/*
diff --git a/autorelease.sh b/autorelease.sh
new file mode 100644
index 0000000..34661fe
--- /dev/null
+++ b/autorelease.sh
@@ -0,0 +1,33 @@
+#!/bin/sh
+if [ $# -lt 8 ] ; then
+ echo "USAGE: ./autorelease.sh [API_V4_URL] [PROJECT_URL]
+ [PROJECT_ID] [TOKEN]
+ [COMMIT_TAG] [JOB] [PROJECT_NAME] [COMMIT_REF_PROTECTED] [COMMIT_SHORT_SHA]"
+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
+CI_COMMIT_SHORT_SHA=$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-$CI_COMMIT_TAG-$CI_COMMIT_SHORT_SHA-artifacts.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-$CI_COMMIT_TAG-$CI_COMMIT_SHORT_SHA-artifacts.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