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