Some checks failed
Build on Multiple Distributions / build-on-arch (push) Has been cancelled
Build on Multiple Distributions / build-on-debian (push) Has been cancelled
Build on Multiple Distributions / build-on-fedora (push) Has been cancelled
continuous-integration/drone Build encountered an error
113 lines
3.3 KiB
YAML
113 lines
3.3 KiB
YAML
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: {} |