name: Build and Publish RPM on: push: branches: - main jobs: build-and-publish: runs-on: fedora defaults: run: shell: bash container: image: git.phyllo.me/devops/fedora-runner-image:latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Create build directory run: | mkdir -p ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS} echo "%_topdir %(echo $HOME)/rpmbuild" > ~/.rpmmacros - name: Create source archive run: | tar -czf hello-0.0.1.tar.gz hello.sh - name: Copy spec file run: | cp hello.spec ~/rpmbuild/SPECS/ cp hello-0.0.1.tar.gz ~/rpmbuild/SOURCES/ - name: Build RPM run: | cd ~/rpmbuild rpmbuild -ba SPECS/hello.spec # - name: Publish RPM to Gitea # run: | # # Extract version from spec file # VERSION=$(grep -E "^Version:" hello.spec | cut -d: -f2 | xargs) # echo "Version: $VERSION" # # # Find built RPM # RPM_FILE=$(find ~/rpmbuild -name "*.rpm" -type f | head -1) # echo "RPM file: $RPM_FILE" # # # Publish to Gitea # if [ -n "$GITEA_TOKEN" ] && [ -n "$GITEA_OWNER" ]; then # curl -u "$GITEA_OWNER:$GITEA_TOKEN" \ # --upload-file "$RPM_FILE" \ # "https://gitea.example.com/api/packages/$GITEA_OWNER/rpm/upload" # else # echo "Missing GITEA_TOKEN or GITEA_OWNER environment variables" # exit 1 # fi # # - name: Publish RPM with group # if: ${{ contains(github.ref, 'v') }} # run: | # # Extract version from spec file # VERSION=$(grep -E "^Version:" hello.spec | cut -d: -f2 | xargs) # echo "Version: $VERSION" # # # Find built RPM # RPM_FILE=$(find ~/rpmbuild -name "*.rpm" -type f | head -1) # echo "RPM file: $RPM_FILE" # # # Publish to Gitea with group (using tag name as group) # TAG_NAME=${GITHUB_REF#refs/tags/} # echo "Publishing to group: $TAG_NAME" # # if [ -n "$GITEA_TOKEN" ] && [ -n "$GITEA_OWNER" ]; then # curl -u "$GITEA_OWNER:$GITEA_TOKEN" \ # --upload-file "$RPM_FILE" \ # "https://gitea.example.com/api/packages/$GITEA_OWNER/rpm/$TAG_NAME/upload" # else # echo "Missing GITEA_TOKEN or GITEA_OWNER environment variables" # exit 1 # fi #