diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml index 421e454..d88e3ea 100644 --- a/.gitea/workflows/build.yaml +++ b/.gitea/workflows/build.yaml @@ -9,7 +9,6 @@ jobs: steps: - name: Gerekli Araçları Kur run: | - # 'jq' paketini ekledik (Gitea API'den gelen verileri güvenle okumak için) dnf install -y git gcc gcc-c++ make cmake pkgconfig curl rpm-build rpmdevtools jq - name: Kodları Manuel Çek @@ -45,9 +44,11 @@ jobs: - name: RPM Paketi Oluştur run: | rpmdev-setuptree - mkdir -p ~/rpmbuild/BUILD/usr/bin - cp cmus cmus-remote ~/rpmbuild/BUILD/usr/bin/ + # Çalışma dizinimizin tam yolunu alıyoruz (Örn: /workspace/y1lm0z/cmus) + WORKSPACE=$(pwd) + + # SPEC dosyasını oluştur cat < cmus.spec Name: cmus-custom Version: 1.0 @@ -62,8 +63,11 @@ jobs: %install mkdir -p %{buildroot}/usr/bin - cp %{_builddir}/usr/bin/cmus %{buildroot}/usr/bin/ - cp %{_builddir}/usr/bin/cmus-remote %{buildroot}/usr/bin/ + + # RPM'in kafasına göre klasör aramasını engellemek için dosyaları + # direkt olarak derlediğimiz klasörden (WORKSPACE) aldırıyoruz. + cp \${WORKSPACE}/cmus %{buildroot}/usr/bin/ + cp \${WORKSPACE}/cmus-remote %{buildroot}/usr/bin/ %files /usr/bin/cmus @@ -75,7 +79,7 @@ jobs: - name: Release Kontrol Et ve RPM'i Yükle run: | - # 1. Dosyaya benzersiz bir isim verelim (Aynı isimde dosya yükleme hatasını önlemek için) + # 1. Dosyaya Commit ID'sini ekleyerek benzersiz bir isim ver (Çakışmayı önler) SHORT_SHA=$(git rev-parse --short HEAD) NEW_RPM_NAME="cmus-custom-${SHORT_SHA}.x86_64.rpm" mv *.rpm $NEW_RPM_NAME @@ -87,9 +91,15 @@ jobs: -H "Content-Type: application/json" \ -d '{"tag_name": "v1.0", "name": "Fedora Build v1.0", "body": "Otomatik RPM derlemesi", "draft": false, "prerelease": false}' || true - # 3. 'v1.0' etiketli sürümün tam ID'sini 'jq' kullanarak %100 güvenli şekilde al + # 3. 'v1.0' etiketli sürümün tam ID'sini 'jq' kullanarak güvenli şekilde 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 '.id') + "https://git.y1lm0z.me/api/v1/repos/${{ gitea.repository }}/releases/tags/v1.0" | jq -r '.id') + + # ID bulunamazsa güvenli çıkış yap (Sonsuz hatayı önler) + if [ -z "$RELEASE_ID" ] || [ "$RELEASE_ID" == "null" ]; then + echo "HATA: Release ID bulunamadı! Token veya izinleri kontrol edin." + exit 1 + fi # 4. Benzersiz isme sahip RPM dosyasını o ID'ye yükle curl -X 'POST' \