- 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 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/${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') fi 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