60 lines
2.3 KiB
YAML
60 lines
2.3 KiB
YAML
- 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 |