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