92 lines
2.6 KiB
YAML
92 lines
2.6 KiB
YAML
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: ubuntu:latest
|
|
depends_on: [arch-build, debian-build, fedora-build]
|
|
commands:
|
|
- apt update && apt install -y curl jq
|
|
- |
|
|
LATEST_TAG=$(curl -s "https://gitea.akshun-lab.cc/api/v1/repos/aggarwalakshun/python-setup/releases/latest" | jq -r '.tag_name')
|
|
echo "Latest tag: $LATEST_TAG"
|
|
|
|
for file in /artifacts/*-setup; do
|
|
FILENAME=$(basename "$file")
|
|
echo "Uploading $FILENAME..."
|
|
curl -X POST "https://gitea.akshun-lab.cc/api/v1/repos/aggarwalakshun/python-setup/releases/$LATEST_TAG/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
|
|
GITEA_SERVER:
|
|
from_secret: gitea-server
|
|
volumes:
|
|
- name: artifacts
|
|
path: /artifacts
|
|
|
|
volumes:
|
|
- name: artifacts
|
|
temp: {} |