diff options
Diffstat (limited to '.forgejo/workflows/rpm.yml')
| -rw-r--r-- | .forgejo/workflows/rpm.yml | 63 |
1 files changed, 63 insertions, 0 deletions
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 |
