From db7e33ce50bb59fa83b5655d327f321c8e5d57af Mon Sep 17 00:00:00 2001 From: Christian Tosta Date: Fri, 18 Apr 2025 11:32:00 -0300 Subject: [PATCH] Added build RPM workflow --- .github/workflows/build-rpm.yml | 83 +++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 .github/workflows/build-rpm.yml diff --git a/.github/workflows/build-rpm.yml b/.github/workflows/build-rpm.yml new file mode 100644 index 0000000..9730526 --- /dev/null +++ b/.github/workflows/build-rpm.yml @@ -0,0 +1,83 @@ +name: Build RPM Package + +on: + workflow_run: + workflows: [auto-tag] + types: [completed] + push: + tags: + - v[0-9]+.[0-9]+.[0-9]+ + +jobs: + build-upload-rpm: + name: Build and upload RPM packages + runs-on: ubuntu-latest + container: + image: fedora:latest + + steps: + - uses: actions/checkout@v4 + + - name: install RPM build tools + run: | + dnf -y install \ + cmake \ + gcc \ + gcc-c++ \ + git \ + rpm-build \ + rpmdevtools \ + tar + + - name: Setup RPM build tree + run: | + rpmdev-setuptree + + - name: Create source tarball + run: | + cmake --fresh -B build -S . + cmake --build build --target sdist + + - name: Set environment variables + run: | + echo "PKG_VERSION=$(cat build/version)" >> $GITHUB_ENV + echo "PKG_NAME=$(grep -Po 'Name:\ *\K[\S ]*' \ + packaging/pkg.spec.in)" >> $GITHUB_ENV + + - name: Copy SOURCES and SPEC file + run: | + cp packaging/pkg.spec.in ~/rpmbuild/SPECS/${PKG_NAME}.spec + rpmdev-bumpspec -n ${PKG_VERSION} ~/rpmbuild/SPECS/${PKG_NAME}.spec + cp dist/*.src.tar.gz ~/rpmbuild/SOURCES/ + + - name: Build RPM packages + run: | + dnf -y builddep ~/rpmbuild/SPECS/${PKG_NAME}.spec + rpmbuild -ba ~/rpmbuild/SPECS/${PKG_NAME}.spec + + - name: Upload built SRPM/RPM packages + uses: actions/upload-artifact@v4 + with: + name: artifact-built-rpms + path: | + ~/rpmbuild/RPMS/ + ~/rpmbuild/SRPMS/ + + - name: Check if package version has corresponding git tag + id: tagged + shell: bash + run: | + git show-ref \ + --tags --verify --quiet -- \ + "refs/tags/${NEW_TAG}" \ + && echo tagged=1 >> $GITHUB_OUTPUT \ + || echo tagged=0 >> $GITHUB_OUTPUT + + - name: Create GitHub Release + uses: softprops/action-gh-release@v2 + if: github.ref_type == 'tag' && steps.tagged.output.tagged == 1 + with: + generate_release_notes: false + files: | + ~/rpmbuild/RPMS/*/*.rpm + ~/rpmbuild/SRPMS/*.rpm