Files
cmus/.gitea/workflows/build.yaml
y1lm0z 7834818b04
All checks were successful
MusicPlayer Fedora RPM Build / fedora-compilation (push) Successful in 2m45s
build dosyası düzenleme 9
2026-03-29 15:12:33 +03:00

104 lines
4.0 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
name: MusicPlayer Fedora RPM Build
run-name: ${{ gitea.actor }} tarafından Fedora RPM derleniyor 🚀
on: [push]
jobs:
fedora-compilation:
runs-on: fedora-latest
steps:
- name: Gerekli Araçları Kur
run: |
dnf install -y git gcc gcc-c++ make cmake pkgconfig curl rpm-build rpmdevtools jq
- name: Kodları Manuel Çek
run: |
git clone https://git.y1lm0z.me/y1lm0z/cmus.git .
- name: Bağımlılıkları Kur
run: |
dnf install -y https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm || true
dnf install -y \
'pkgconfig(ncursesw)' 'pkgconfig(alsa)' 'pkgconfig(ao)' \
'pkgconfig(libcddb)' 'pkgconfig(libcdio_cdda)' 'pkgconfig(libdiscid)' \
'pkgconfig(libavformat)' 'pkgconfig(libavcodec)' 'pkgconfig(libswresample)' \
'pkgconfig(flac)' 'pkgconfig(jack)' 'pkgconfig(mad)' \
'pkgconfig(libmodplug)' libmpcdec-devel 'pkgconfig(libsystemd)' \
'pkgconfig(opusfile)' 'pkgconfig(libpulse)' 'pkgconfig(samplerate)' \
'pkgconfig(vorbisfile)' 'pkgconfig(wavpack)' \
faad2-devel libmp4v2-devel
- name: Derle
run: |
if [ -f ./configure ]; then
./configure prefix=/usr
make -j$(nproc)
elif [ -f CMakeLists.txt ]; then
mkdir -p build && cd build
cmake ..
make -j$(nproc)
else
make -j$(nproc)
fi
- name: RPM Paketi Oluştur
run: |
# 1. RPM ağacını oluştur
rpmdev-setuptree
# 2. Dosyaları RPM'in varsayılan BUILDROOT klasörüne MANUEL yerleştiriyoruz
# Bu sayede SPEC içindeki %install adımına gerek kalmayacak
mkdir -p ~/rpmbuild/BUILDROOT/cmus-custom-1.0-1.x86_64/usr/bin
cp cmus cmus-remote ~/rpmbuild/BUILDROOT/cmus-custom-1.0-1.x86_64/usr/bin/
# 3. SPEC dosyasını en basit haliyle oluştur (Sadece paketleme yapar)
cat <<EOF > cmus.spec
Name: cmus-custom
Version: 1.0
Release: 1
Summary: Custom Fedora Build for Cmus
License: GPL
%define _build_id_links none
%global debug_package %{nil}
%description
y1lm0z tarafından otomatik derlenen cmus paketi.
%files
/usr/bin/cmus
/usr/bin/cmus-remote
EOF
# 4. Sadece dosyaları paketle (Derleme veya kurulum adımlarını atla)
rpmbuild -bb --define "_topdir $HOME/rpmbuild" --buildroot $HOME/rpmbuild/BUILDROOT/cmus-custom-1.0-1.x86_64 cmus.spec
# 5. RPM'i çalışma dizinine al
cp ~/rpmbuild/RPMS/x86_64/*.rpm .
- name: Release Kontrol Et ve RPM'i Yükle
run: |
SHORT_SHA=$(git rev-parse --short HEAD)
NEW_RPM_NAME="cmus-custom-${SHORT_SHA}.x86_64.rpm"
mv *.rpm $NEW_RPM_NAME
# Release oluştur (yoksa)
curl -s -X 'POST' "https://git.y1lm0z.me/api/v1/repos/${{ gitea.repository }}/releases" \
-H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \
-H "Content-Type: application/json" \
-d '{"tag_name": "v1.0", "name": "Fedora Build v1.0", "body": "Otomatik RPM derlemesi", "draft": false, "prerelease": false}' || true
# ID al
RELEASE_ID=$(curl -s -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \
"https://git.y1lm0z.me/api/v1/repos/${{ gitea.repository }}/releases/tags/v1.0" | jq -r '.id')
if [ -z "$RELEASE_ID" ] || [ "$RELEASE_ID" == "null" ]; then
echo "Release ID bulunamadı!"
exit 1
fi
# Yükle
curl -X 'POST' \
-H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \
-F "attachment=@$NEW_RPM_NAME" \
"https://git.y1lm0z.me/api/v1/repos/${{ gitea.repository }}/releases/$RELEASE_ID/assets"