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 [ -n "${DRONE_TAG}" ]; then curl -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="${DRONE_TAG}" else release_id="latest" fi for artifact in /artifacts/*; do echo "Uploading ${artifact} to Gitea" 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=$(basename ${artifact})" done environment: GITEA_TOKEN: from_secret: gitea-token GITEA_SERVER: from_secret: gitea-server volumes: - name: artifacts path: /artifacts volumes: - name: artifacts temp: {}