From 8046fc4eca72d58bbb86165d9e7690df04c8907f Mon Sep 17 00:00:00 2001 From: akshun Date: Mon, 16 Jun 2025 03:28:03 +0000 Subject: [PATCH] Update .drone.yml --- .drone.yml | 123 ++++++++++++++--------------------------------------- 1 file changed, 33 insertions(+), 90 deletions(-) diff --git a/.drone.yml b/.drone.yml index 3285d06..0a4a26e 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,86 +1,15 @@ -kind: pipeline -type: kubernetes -name: Build on Multiple Distributions - -steps: - - name: clone-repo - image: alpine/git - commands: - - git clone https://gitea.akshun-lab.uk/akshun/setup-script.git /artifacts - volumes: - - name: artifacts - path: /artifacts - - - name: build-on-arch - image: archlinux:latest - commands: - - pacman -Syu --noconfirm - - pacman -S --noconfirm git python python-pip binutils - - mv /lib/python3*/EXTERNALLY-MANAGED . - - pip install --upgrade pip - - pip install pyinstaller inquirerpy distro - - cd /artifacts - - pyinstaller --onefile --add-data "bash/:bash/" --add-data "prompts/:prompts/" --add-data "config/:config/" setup.py - volumes: - - name: artifacts - path: /artifacts - - - name: upload-arch-artifact - image: alpine - commands: - - cp /artifacts/dist/setup /artifacts/arch-setup - volumes: - - name: artifacts - path: /artifacts - - - name: build-on-debian - image: debian:stable - commands: - - apt update && apt upgrade -y - - apt install -y git python3 python3-pip binutils - - mv /lib/python*/EXTERNALLY-MANAGED . - - pip install pyinstaller inquirerpy distro - - cd /artifacts - - pyinstaller --onefile --add-data "bash/:bash/" --add-data "prompts/:prompts/" --add-data "config/:config/" setup.py - volumes: - - name: artifacts - path: /artifacts - - - name: upload-debian-artifact - image: alpine - commands: - - cp /artifacts/dist/setup /artifacts/debian-setup - volumes: - - name: artifacts - path: /artifacts - - - name: build-on-fedora - image: fedora:latest - commands: - - dnf up -y - - dnf install -y git python python-pip binutils - - pip install inquirerpy distro pyinstaller - - cd /artifacts - - pyinstaller --onefile --add-data "bash/:bash/" --add-data "prompts/:prompts/" --add-data "config/:config/" setup.py - volumes: - - name: artifacts - path: /artifacts - - - name: upload-fedora-artifact - image: alpine - commands: - - cp /artifacts/dist/setup /artifacts/fedora-setup - volumes: - - name: artifacts - path: /artifacts - - name: upload-to-gitea image: alpine/curl commands: - apk add curl jq - | - # Set the release ID (use tag if available, otherwise "latest") + 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" \ @@ -88,30 +17,44 @@ steps: "${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") + "${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 - 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}" + 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 - -volumes: - - name: artifacts - temp: {} \ No newline at end of file + path: /artifacts \ No newline at end of file