kind: pipeline type: kubernetes name: multi-distro-build trigger: event: - custom steps: - name: clone-repo image: alpine/git:latest commands: - git clone https://gitea.akshun-lab.cc/aggarwalakshun/python-setup.git /artifacts volumes: - name: artifacts path: /artifacts - name: arch-build image: archlinux:latest depends_on: [clone-repo] 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 "data/:data/" setup.py - cp /artifacts/dist/setup /artifacts/arch-setup volumes: - name: artifacts path: /artifacts - name: debian-build image: debian:stable-slim depends_on: [clone-repo] commands: - apt-get update && apt-get upgrade -y - apt-get install -y git python3 python3-pip binutils - mv /usr/lib/python*/EXTERNALLY-MANAGED . - pip install pyinstaller inquirerpy distro - cd /artifacts - pyinstaller --onefile --add-data "data/:data/" setup.py - cp /artifacts/dist/setup /artifacts/debian-setup volumes: - name: artifacts path: /artifacts - name: fedora-build image: fedora:latest depends_on: [clone-repo] commands: - dnf update -y - dnf install -y git python python-pip binutils - pip install inquirerpy distro pyinstaller - cd /artifacts - pyinstaller --onefile --add-data "data/:data/" setup.py - cp /artifacts/dist/setup /artifacts/fedora-setup volumes: - name: artifacts path: /artifacts - name: upload-artifacts image: alpine:latest depends_on: [arch-build, debian-build, fedora-build] commands: - apk add jq curl - | # Get the latest release information RELEASE_INFO=$(curl -s "https://gitea.akshun-lab.cc/api/v1/repos/aggarwalakshun/python-setup/releases/latest") LATEST_TAG=$(echo "$RELEASE_INFO" | jq -r '.tag_name') RELEASE_ID=$(echo "$RELEASE_INFO" | jq -r '.id') echo "Latest tag: $LATEST_TAG" echo "Release ID: $RELEASE_ID" for file in /artifacts/*-setup; do FILENAME=$(basename "$file") echo "Uploading $FILENAME..." # Use the release ID instead of tag name in the URL curl -X POST "https://gitea.akshun-lab.cc/api/v1/repos/aggarwalakshun/python-setup/releases/$RELEASE_ID/assets?name=$FILENAME" \ -H "Authorization: token $GITEA_TOKEN" \ -H "Content-Type: application/octet-stream" \ --data-binary @"$file" done environment: GITEA_TOKEN: from_secret: GITEA_TOKEN volumes: - name: artifacts path: /artifacts volumes: - name: artifacts temp: {}