diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index bdeed7a..15e21f9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,8 +3,12 @@ stages: - build #- test #- package -#- release +- release +variables: + TOKEN: "LWsss-XPxWuP-Esv-dF7" + ARTIFACTS_JOB: "build" + build: stage: build script: @@ -23,4 +27,13 @@ build: artifacts: name: "$CI_JOB_NAME-$CI_COMMIT_REF_NAME-debug" paths: - - ./build/*.rpm \ No newline at end of file + - ./build/*.rpm + +release: + stage: release + tags: + - share + only: + - tags + script: + - /bin/bash -x ./autorelease.sh $CI_API_V4_URL $CI_PROJECT_URL $CI_PROJECT_ID $TOKEN $CI_COMMIT_TAG $ARTIFACTS_JOB $CI_PROJECT_NAME \ No newline at end of file diff --git a/autorelease.sh b/autorelease.sh new file mode 100644 index 0000000..10f9a31 --- /dev/null +++ b/autorelease.sh @@ -0,0 +1,32 @@ +#!/bin/sh +if [ $# -lt 7 ] ; then + echo "USAGE: ./autorelease.sh [API_V4_URL] [PROJECT_URL] + [PROJECT_ID] [TOKEN] + [COMMIT_TAG] [JOB] [PROJECT_NAME]" +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 + +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-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-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 \ No newline at end of file