From 5ed5309265067b01bffe01984f1a75edf5b5a208 Mon Sep 17 00:00:00 2001 From: akshun Date: Mon, 16 Jun 2025 03:38:36 +0000 Subject: [PATCH] Update .drone.yml --- .drone.yml | 112 ++++++++++++++++++++++++++++++----------------------- 1 file changed, 63 insertions(+), 49 deletions(-) diff --git a/.drone.yml b/.drone.yml index 41a7ad4..c29355b 100644 --- a/.drone.yml +++ b/.drone.yml @@ -74,61 +74,75 @@ steps: - name: artifacts path: /artifacts - - name: upload-to-gitea - image: alpine/curl - commands: - - apk add curl jq - - | - if [ -z "$GITEA_TOKEN" ] || [ -z "$GITEA_SERVER" ]; then - echo "Error: GITEA_TOKEN or GITEA_SERVER not set" - exit 1 - fi +- name: upload-to-gitea + image: alpine/curl + commands: + - apk add curl jq + - | + # Ensure required variables are set + if [ -z "$GITEA_TOKEN" ] || [ -z "$GITEA_SERVER" ]; then + echo "Error: GITEA_TOKEN or GITEA_SERVER not set" + exit 1 + fi - if [ -n "${DRONE_TAG}" ]; then - echo "Creating release for tag ${DRONE_TAG}" + # Set repo path (fallback if DRONE_REPO is not set) + REPO_PATH="${DRONE_REPO:-akshun/setup-script}" + + # Create or get release + if [ -n "${DRONE_TAG}" ]; then + echo "Creating release for tag ${DRONE_TAG}" + response=$(curl -s -X POST \ + -H "Authorization: token $GITEA_TOKEN" \ + -H "Content-Type: application/json" \ + -d '{"tag_name": "'"${DRONE_TAG}"'", "name": "'"${DRONE_TAG}"'", "body": "Automated release"}' \ + "$GITEA_SERVER/api/v1/repos/$REPO_PATH/releases") + release_id=$(echo "$response" | jq -r '.id') + else + echo "Using latest release" + # Try to get latest release + response=$(curl -s -H "Authorization: token $GITEA_TOKEN" \ + "$GITEA_SERVER/api/v1/repos/$REPO_PATH/releases/latest" || echo "") + + if [ -z "$response" ] || [ "$(echo "$response" | jq -r '.id')" = "null" ]; then + # Create a new draft release if none exists + echo "Creating new draft release" response=$(curl -s -X POST \ -H "Authorization: token $GITEA_TOKEN" \ -H "Content-Type: application/json" \ - -d '{"tag_name": "'"${DRONE_TAG}"'", "name": "'"${DRONE_TAG}"'", "body": "Automated release"}' \ - "${GITEA_SERVER}/api/v1/repos/${DRONE_REPO}/releases") - release_id=$(echo "$response" | jq -r '.id') - else - echo "Using latest release" - response=$(curl -s -H "Authorization: token $GITEA_TOKEN" \ - "${GITEA_SERVER}/api/v1/repos/${DRONE_REPO}/releases/latest" || echo "") - - if [ -z "$response" ] || [ "$(echo "$response" | jq -r '.id')" = "null" ]; then - echo "Creating new draft release" - response=$(curl -s -X POST \ - -H "Authorization: token $GITEA_TOKEN" \ - -H "Content-Type: application/json" \ - -d '{"tag_name": "continuous", "name": "Continuous Build", "draft": true, "body": "Automated continuous build"}' \ - "${GITEA_SERVER}/api/v1/repos/${DRONE_REPO}/releases") - fi - - release_id=$(echo "$response" | jq -r '.id') + -d '{"tag_name": "continuous", "name": "Continuous Build", "draft": true, "body": "Automated continuous build"}' \ + "$GITEA_SERVER/api/v1/repos/$REPO_PATH/releases") fi + + release_id=$(echo "$response" | jq -r '.id') + fi + + # Upload artifacts + for artifact in /artifacts/*-setup; do + if [ -f "$artifact" ]; then + filename=$(basename "$artifact") + echo "Uploading $filename to Gitea release $release_id" + curl -X POST \ + -H "Authorization: token $GITEA_TOKEN" \ + -H "Content-Type: multipart/form-data" \ + -F "attachment=@$artifact" \ + "$GITEA_SERVER/api/v1/repos/$REPO_PATH/releases/$release_id/assets?name=$filename" + else + echo "No artifacts found matching /artifacts/*-setup" + fi + done + environment: + GITEA_TOKEN: + from_secret: gitea-token + GITEA_SERVER: + from_secret: gitea-server + DRONE_REPO: + from_secret: drone-repo + DRONE_TAG: + from_secret: drone-tag + volumes: + - name: artifacts + path: /artifacts - for artifact in /artifacts/*-setup; do - if [ -f "$artifact" ]; then - filename=$(basename "$artifact") - echo "Uploading ${filename} to Gitea release ${release_id}" - curl -X POST \ - -H "Authorization: token $GITEA_TOKEN" \ - -H "Content-Type: multipart/form-data" \ - -F "attachment=@${artifact}" \ - "${GITEA_SERVER}/api/v1/repos/${DRONE_REPO}/releases/${release_id}/assets?name=${filename}" - else - echo "No artifacts found matching /artifacts/*-setup" - fi - done - environment: - GITEA_TOKEN: - from_secret: gitea-token - GITEA_SERVER: - from_secret: gitea-server - DRONE_TAG: - from_secret: drone-tag volumes: - name: artifacts path: /artifacts