From c7c2d68c07c3b0ee854a733d6c5b17ebd68a44f8 Mon Sep 17 00:00:00 2001 From: Jeroen Wijenbergh Date: Fri, 20 Feb 2026 14:28:35 +0100 Subject: RPM: Initial upstream packaging --- .forgejo/workflows/rpm.yml | 63 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 .forgejo/workflows/rpm.yml (limited to '.forgejo') diff --git a/.forgejo/workflows/rpm.yml b/.forgejo/workflows/rpm.yml new file mode 100644 index 0000000..7ad28a0 --- /dev/null +++ b/.forgejo/workflows/rpm.yml @@ -0,0 +1,63 @@ +name: Build RPM Packages + +on: + push: + branches: + - '**' + release: + types: [published] + +jobs: + build-rpm: + name: RPM build for ${{ matrix.image }} + runs-on: codeberg-small-lazy + container: + image: codeberg.org/jwijenbergh/rpmbuilder-${{ matrix.image }}-${{ matrix.arch }} + + strategy: + matrix: + image: + - "fedora:42" + - "fedora:43" + arch: + - "amd64" + + env: + RPMBUILD_ROOT: /home/ci-user/rpmbuild + RPMBUILD_PROJECT_NAME: python3-eduvpn-common + RPMBUILD_SPEC_FILE: python3-eduvpn-common.spec + + steps: + - name: Checkout Repository + run: git clone --depth 1 -b ${{ github.ref_name }} ${{ github.server_url }}/${{ github.repository }} . + + - name: Prepare RPM + run: | + rpmdev-setuptree + mkdir -p "${RPMBUILD_ROOT}/SOURCES" "${RPMBUILD_ROOT}/SPECS" + + VERSION=$(grep -o 'const Version = "[^"]*' internal/commonver/commonver.go | cut -d '"' -f 2) + + mkdir -p release + git archive --prefix "${RPMBUILD_PROJECT_NAME}-${VERSION}/" HEAD | tar -xf - + tar -cJf "${RPMBUILD_ROOT}/SOURCES/${RPMBUILD_PROJECT_NAME}-${VERSION}.tar.xz" "${RPMBUILD_PROJECT_NAME}-${VERSION}" + + cp -r "rpm/SPECS/${RPMBUILD_SPEC_FILE}" "${RPMBUILD_ROOT}/SPECS/" + + - name: Install RPM dependencies + run: sudo dnf builddep -y "${RPMBUILD_ROOT}/SPECS/${RPMBUILD_SPEC_FILE}" + + - name: Build RPM + run: rpmbuild -ba "${RPMBUILD_ROOT}/SPECS/${RPMBUILD_SPEC_FILE}" + + - name: Upload RPM + if: github.event_name == 'release' && secrets.PACKAGE_TOKEN != '' + run: | + OWNER="${{ github.repository_owner }}" + FEDORA_RELEASE="$(echo '${{ matrix.image }}' | cut -d ':' -f2)" + for RPM in $(find ${RPMBUILD_ROOT}/RPMS/ -type f -name "*.rpm"); do + echo "uploading RPM: ${RPM}" + curl --user "${OWNER}:${{ secrets.PACKAGE_TOKEN }}" \ + --upload-file "${RPM}" \ + "${{ github.server_url }}/api/packages/${OWNER}/rpm/fedora-${FEDORA_RELEASE}/upload?sign=true" + done -- cgit v1.2.3