diff options
| author | 杨威 <[email protected]> | 2019-06-27 11:40:17 +0800 |
|---|---|---|
| committer | 杨威 <[email protected]> | 2019-06-27 11:40:17 +0800 |
| commit | a1e91fdc3eb1c7bc2256127d56169752168539fa (patch) | |
| tree | 053ca491b06f3869157a99527e6d9837dfd63f31 | |
| parent | fd0ade4430d73b7d3a812be1589bceb14d6185c1 (diff) | |
Master
| -rw-r--r-- | .gitlab-ci.yml | 60 | ||||
| -rw-r--r-- | Dockerfile | 11 | ||||
| -rw-r--r-- | autorelease.sh | 33 |
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 |
