mirror of
https://github.com/funkemunky/KDE-x86_64-v4-Fedora.git
synced 2026-05-31 09:01:56 +00:00
191a4b612c
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 093) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 094) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 073) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 074) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 076) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 077) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 078) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 079) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 080) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 081) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 082) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 083) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 084) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 085) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 086) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 088) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 089) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 090) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 091) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 092) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 097) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 098) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 100) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 101) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 102) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 103) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 104) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 105) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 107) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 108) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 109) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 110) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 111) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 112) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 113) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 114) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 115) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 116) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 117) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 095) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 096) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 099) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 118) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 119) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 127) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 128) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / assemble-repo (x86-64-v3, fedora43-kde-x86-64-v3) (push) Blocked by required conditions
Build Fedora x86_64-v3 RPMs (Gitea) / assemble-repo (x86-64-v4, fedora43-kde-x86-64-v4) (push) Blocked by required conditions
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 121) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 122) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 124) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 125) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 126) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 004) (push) Successful in 38s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 003) (push) Successful in 2m2s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 005) (push) Successful in 1m33s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 002) (push) Successful in 2m18s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 008) (push) Successful in 1m0s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 006) (push) Successful in 1m36s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 010) (push) Successful in 52s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 011) (push) Successful in 1m24s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 009) (push) Successful in 2m58s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 007) (push) Successful in 4m2s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 014) (push) Successful in 39s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 012) (push) Successful in 1m52s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 016) (push) Successful in 54s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 013) (push) Successful in 2m31s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 015) (push) Successful in 1m49s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 019) (push) Successful in 43s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 001) (push) Successful in 10m3s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 017) (push) Successful in 1m38s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 022) (push) Successful in 42s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 024) (push) Successful in 1m8s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 018) (push) Successful in 4m50s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 020) (push) Successful in 4m6s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 025) (push) Successful in 1m36s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 026) (push) Successful in 32s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 027) (push) Successful in 38s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 029) (push) Successful in 41s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 030) (push) Successful in 30s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 032) (push) Successful in 40s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 031) (push) Successful in 50s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 034) (push) Successful in 1m16s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 033) (push) Successful in 1m52s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 035) (push) Successful in 1m2s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 036) (push) Successful in 1m4s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 037) (push) Successful in 42s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 028) (push) Successful in 5m0s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 023) (push) Successful in 7m48s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 039) (push) Successful in 48s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 038) (push) Successful in 59s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 041) (push) Successful in 53s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 043) (push) Successful in 1m9s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 042) (push) Successful in 1m30s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 046) (push) Successful in 1m17s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 045) (push) Successful in 2m41s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 048) (push) Successful in 1m25s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 047) (push) Successful in 2m39s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 049) (push) Successful in 1m53s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 050) (push) Successful in 1m3s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 051) (push) Successful in 1m0s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 040) (push) Successful in 7m40s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 054) (push) Successful in 33s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 052) (push) Has started running
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 053) (push) Has started running
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 055) (push) Has started running
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 056) (push) Has started running
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 057) (push) Has been cancelled
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 058) (push) Has been cancelled
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 059) (push) Has been cancelled
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 060) (push) Has been cancelled
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 061) (push) Has been cancelled
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 063) (push) Has been cancelled
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 064) (push) Has been cancelled
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 065) (push) Has been cancelled
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 066) (push) Has been cancelled
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 067) (push) Has been cancelled
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 068) (push) Has been cancelled
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 069) (push) Has been cancelled
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 070) (push) Has been cancelled
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 071) (push) Has been cancelled
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 072) (push) Has been cancelled
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 075) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 087) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 106) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 120) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 123) (push) Waiting to run
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 021) (push) Successful in 1m5s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 044) (push) Successful in 4m15s
Build Fedora x86_64-v3 RPMs (Gitea) / build (x86-64-v3, 062) (push) Has been cancelled
360 lines
11 KiB
YAML
360 lines
11 KiB
YAML
name: Build Fedora x86_64-v3 RPMs (Gitea)
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
push:
|
|
paths:
|
|
- 'packages.txt'
|
|
- 'ci/assemble-dnf-repo.py'
|
|
- '.gitea/workflows/build-v3-rpms.yml'
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: ghcr.io/funkemunky/kde-x86_64-v4-fedora-rpm-builder:latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
arch: [x86-64-v3]
|
|
shard:
|
|
- "001"
|
|
- "002"
|
|
- "003"
|
|
- "004"
|
|
- "005"
|
|
- "006"
|
|
- "007"
|
|
- "008"
|
|
- "009"
|
|
- "010"
|
|
- "011"
|
|
- "012"
|
|
- "013"
|
|
- "014"
|
|
- "015"
|
|
- "016"
|
|
- "017"
|
|
- "018"
|
|
- "019"
|
|
- "020"
|
|
- "021"
|
|
- "022"
|
|
- "023"
|
|
- "024"
|
|
- "025"
|
|
- "026"
|
|
- "027"
|
|
- "028"
|
|
- "029"
|
|
- "030"
|
|
- "031"
|
|
- "032"
|
|
- "033"
|
|
- "034"
|
|
- "035"
|
|
- "036"
|
|
- "037"
|
|
- "038"
|
|
- "039"
|
|
- "040"
|
|
- "041"
|
|
- "042"
|
|
- "043"
|
|
- "044"
|
|
- "045"
|
|
- "046"
|
|
- "047"
|
|
- "048"
|
|
- "049"
|
|
- "050"
|
|
- "051"
|
|
- "052"
|
|
- "053"
|
|
- "054"
|
|
- "055"
|
|
- "056"
|
|
- "057"
|
|
- "058"
|
|
- "059"
|
|
- "060"
|
|
- "061"
|
|
- "062"
|
|
- "063"
|
|
- "064"
|
|
- "065"
|
|
- "066"
|
|
- "067"
|
|
- "068"
|
|
- "069"
|
|
- "070"
|
|
- "071"
|
|
- "072"
|
|
- "073"
|
|
- "074"
|
|
- "075"
|
|
- "076"
|
|
- "077"
|
|
- "078"
|
|
- "079"
|
|
- "080"
|
|
- "081"
|
|
- "082"
|
|
- "083"
|
|
- "084"
|
|
- "085"
|
|
- "086"
|
|
- "087"
|
|
- "088"
|
|
- "089"
|
|
- "090"
|
|
- "091"
|
|
- "092"
|
|
- "093"
|
|
- "094"
|
|
- "095"
|
|
- "096"
|
|
- "097"
|
|
- "098"
|
|
- "099"
|
|
- "100"
|
|
- "101"
|
|
- "102"
|
|
- "103"
|
|
- "104"
|
|
- "105"
|
|
- "106"
|
|
- "107"
|
|
- "108"
|
|
- "109"
|
|
- "110"
|
|
- "111"
|
|
- "112"
|
|
- "113"
|
|
- "114"
|
|
- "115"
|
|
- "116"
|
|
- "117"
|
|
- "118"
|
|
- "119"
|
|
- "120"
|
|
- "121"
|
|
- "122"
|
|
- "123"
|
|
- "124"
|
|
- "125"
|
|
- "126"
|
|
- "127"
|
|
- "128"
|
|
steps:
|
|
- name: Pre-install Node.js and Git
|
|
run: |
|
|
if command -v node >/dev/null 2>&1 && command -v git >/dev/null 2>&1
|
|
then
|
|
echo "Node.js and Git already present; skipping install."
|
|
exit 0
|
|
fi
|
|
|
|
mkdir -p /etc/dnf/dnf.conf.d
|
|
printf '%s\n' 'keepcache=True' 'max_parallel_downloads=10' > /etc/dnf/dnf.conf.d/99-ci-cache.conf
|
|
dnf -y install nodejs git
|
|
- uses: actions/checkout@v4
|
|
- name: Install build tools
|
|
run: |
|
|
if command -v fedpkg >/dev/null 2>&1 \
|
|
&& command -v rpmbuild >/dev/null 2>&1 \
|
|
&& command -v rpmdev-setuptree >/dev/null 2>&1 \
|
|
&& command -v git >/dev/null 2>&1 \
|
|
&& command -v python3 >/dev/null 2>&1 \
|
|
&& rpm -q dnf-plugins-core >/dev/null 2>&1
|
|
then
|
|
echo "Build tools already present; skipping install."
|
|
exit 0
|
|
fi
|
|
|
|
mkdir -p /etc/dnf/dnf.conf.d
|
|
printf '%s\n' 'keepcache=True' 'max_parallel_downloads=10' > /etc/dnf/dnf.conf.d/99-ci-cache.conf
|
|
dnf -y install 'dnf-command(builddep)' fedpkg rpm-build rpmdevtools git python3
|
|
|
|
- name: Build shard packages
|
|
env:
|
|
SHARD_INDEX: ${{ matrix.shard }}
|
|
FEDORA_BRANCH: f43
|
|
TARGET_MARCH: ${{ matrix.arch }}
|
|
run: |
|
|
python3 <<'PY'
|
|
import os
|
|
import shutil
|
|
import subprocess
|
|
import time
|
|
from pathlib import Path
|
|
|
|
workspace = Path(os.environ["GITHUB_WORKSPACE"])
|
|
shard_index = int(os.environ["SHARD_INDEX"])
|
|
fedora_branch = os.environ["FEDORA_BRANCH"]
|
|
target_march = os.environ["TARGET_MARCH"]
|
|
packages_file = workspace / "packages.txt"
|
|
|
|
if not packages_file.exists():
|
|
print("packages.txt not found")
|
|
raise SystemExit(1)
|
|
|
|
all_packages = [
|
|
line.strip()
|
|
for line in packages_file.read_text(encoding="utf-8").splitlines()
|
|
if line.strip() and not line.startswith("#")
|
|
]
|
|
|
|
max_shards = 128
|
|
shard_count = min(len(all_packages), max_shards)
|
|
if shard_count == 0 or shard_index > shard_count:
|
|
print(
|
|
f"Skipping shard {shard_index:03d} for {target_march}; "
|
|
f"package_count={len(all_packages)} shard_count={shard_count}"
|
|
)
|
|
raise SystemExit(0)
|
|
|
|
shard_size = max(1, -(-len(all_packages) // shard_count))
|
|
start_index = (shard_index - 1) * shard_size
|
|
end_index = start_index + shard_size
|
|
packages = all_packages[start_index:end_index]
|
|
|
|
# Standard Fedora optflags with march override
|
|
# We'll use a simplified version of the override from the other workflow
|
|
optflags_override = (
|
|
f"-O2 -flto=auto -ffat-lto-objects -fexceptions -g "
|
|
"-grecord-gcc-switches -pipe -Wall -Werror=format-security "
|
|
"-Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 "
|
|
"-Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 "
|
|
"-fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 "
|
|
f"-m64 -march={target_march} -mtune=generic -fasynchronous-unwind-tables "
|
|
"-fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 "
|
|
"-fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"
|
|
)
|
|
|
|
shard_root = workspace / "artifacts" / f"{target_march}-shard-{shard_index:03d}"
|
|
shard_root.mkdir(parents=True, exist_ok=True)
|
|
rpmbuild_root = workspace / ".rpmbuild"
|
|
rpmbuild_root.mkdir(parents=True, exist_ok=True)
|
|
|
|
def run_with_retry(command, *, cwd=None, cleanup_path=None, attempts=3):
|
|
for attempt in range(1, attempts + 1):
|
|
if cleanup_path is not None and cleanup_path.exists():
|
|
shutil.rmtree(cleanup_path)
|
|
try:
|
|
subprocess.run(command, cwd=cwd, check=True)
|
|
return
|
|
except subprocess.CalledProcessError:
|
|
if attempt == attempts:
|
|
raise
|
|
time.sleep(5 * attempt)
|
|
|
|
for package_name in packages:
|
|
package_dir = workspace / package_name
|
|
run_with_retry(
|
|
[
|
|
"git", "clone", "--depth", "1", "--branch", fedora_branch,
|
|
f"https://src.fedoraproject.org/rpms/{package_name}.git",
|
|
str(package_dir),
|
|
],
|
|
cleanup_path=package_dir,
|
|
)
|
|
|
|
run_with_retry(["fedpkg", "sources"], cwd=package_dir)
|
|
|
|
spec_file = next(package_dir.glob("*.spec"), None)
|
|
if not spec_file:
|
|
print(f"No spec file for {package_name}")
|
|
continue
|
|
|
|
subprocess.run(["dnf", "-y", "builddep", str(spec_file)], check=True)
|
|
|
|
topdir = rpmbuild_root / package_name
|
|
for subdir in ("BUILD", "BUILDROOT", "RPMS", "SOURCES", "SPECS", "SRPMS"):
|
|
(topdir / subdir).mkdir(parents=True, exist_ok=True)
|
|
|
|
subprocess.run(
|
|
[
|
|
"rpmbuild", "-ba", str(spec_file),
|
|
"--define", f"optflags {optflags_override}",
|
|
"--define", f"_topdir {topdir}",
|
|
"--define", f"_builddir {topdir / 'BUILD'}",
|
|
"--define", f"_buildrootdir {topdir / 'BUILDROOT'}",
|
|
"--define", f"_rpmdir {topdir / 'RPMS'}",
|
|
"--define", f"_srcrpmdir {topdir / 'SRPMS'}",
|
|
"--define", f"_sourcedir {package_dir}",
|
|
"--define", f"_specdir {package_dir}",
|
|
],
|
|
check=True,
|
|
)
|
|
|
|
for rpm_path in (topdir / "RPMS").rglob("*.rpm"):
|
|
shutil.copy2(rpm_path, shard_root / rpm_path.name)
|
|
for src_path in (topdir / "SRPMS").rglob("*.src.rpm"):
|
|
shutil.copy2(src_path, shard_root / src_path.name)
|
|
print(f"Built {package_name}")
|
|
PY
|
|
|
|
- name: Upload RPM artifacts
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: rpm-${{ matrix.arch }}-shard-${{ matrix.shard }}
|
|
path: artifacts/${{ matrix.arch }}-shard-${{ matrix.shard }}/
|
|
if-no-files-found: ignore
|
|
|
|
assemble-repo:
|
|
needs: build
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: ghcr.io/funkemunky/kde-x86_64-v4-fedora-rpm-builder:latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- arch: x86-64-v3
|
|
repo_id: fedora43-kde-x86-64-v3
|
|
- arch: x86-64-v4
|
|
repo_id: fedora43-kde-x86-64-v4
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Download RPM shard artifacts
|
|
uses: actions/download-artifact@v3
|
|
with:
|
|
path: downloaded-rpms
|
|
|
|
- name: Stage matching shard artifacts
|
|
run: |
|
|
mkdir -p filtered-rpms
|
|
shopt -s nullglob
|
|
for artifact_dir in downloaded-rpms/rpm-${{ matrix.arch }}-shard-*; do
|
|
cp -a "$artifact_dir"/. filtered-rpms/
|
|
done
|
|
|
|
- name: Install repo assembly tools
|
|
run: |
|
|
if command -v createrepo_c >/dev/null 2>&1
|
|
then
|
|
echo "createrepo_c already present; skipping install."
|
|
exit 0
|
|
fi
|
|
|
|
mkdir -p /etc/dnf/dnf.conf.d
|
|
printf '%s\n' 'keepcache=True' 'max_parallel_downloads=10' > /etc/dnf/dnf.conf.d/99-ci-cache.conf
|
|
dnf -y install createrepo_c
|
|
|
|
- name: Assemble DNF repository
|
|
run: |
|
|
python3 ci/assemble-dnf-repo.py \
|
|
--input-dir filtered-rpms \
|
|
--output-dir repo/${{ matrix.arch }} \
|
|
--repo-id ${{ matrix.repo_id }} \
|
|
--repo-name 'Fedora 43 KDE ${{ matrix.arch }}'
|
|
|
|
- name: Upload DNF repository artifact
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: dnf-repo-${{ matrix.arch }}
|
|
path: repo/${{ matrix.arch }}/
|
|
if-no-files-found: error
|