diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..41563f3 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,53 @@ +stages: + - fetch + - release + +Fetch: + stage: fetch + rules: + - if: $CI_COMMIT_TAG + tags: + - us3 + script: + - apt-get update -qy + - apt-get install -y curl jq + - RELEASE_INFO=$(curl -sSL "https://api.github.com/repos/$CI_PROJECT_PATH/releases/latest") + - ASSET_URL=$(echo "$RELEASE_INFO" | jq -r '.assets[] | select(.name | endswith(".exe")) | .browser_download_url') + - curl -LJO "$ASSET_URL" + - FILE_NAME=$(basename "$ASSET_URL") + - echo "File name at script stage is $FILE_NAME" + - echo "THIS_FILE_NAME=$FILE_NAME" >> next.env + after_script: + - echo "Current Job ID is $CI_JOB_ID" + - echo "THIS_JOB_ID=$CI_JOB_ID" >> next.env + artifacts: + paths: + - "*.exe" + expire_in: 180 days + reports: + dotenv: next.env + +release: + stage: release + image: registry.gitlab.com/gitlab-org/release-cli:latest + rules: + - if: $CI_COMMIT_TAG + needs: + - job: Fetch + artifacts: true + variables: + TAG: '$CI_COMMIT_TAG' + script: + - echo "Create Release $TAG" + - echo "$THIS_JOB_ID" + - echo "$THIS_FILE_NAME" + release: + name: '$TAG' + tag_name: '$TAG' + ref: '$TAG' + description: 'Release $TAG by CI' + assets: + links: + - name: "$THIS_FILE_NAME" + url: "https://$CI_SERVER_SHELL_SSH_HOST/$CI_PROJECT_PATH/-/jobs/$THIS_JOB_ID/artifacts/raw/$THIS_FILE_NAME?inline=false" + link_type: package \ No newline at end of file