Skip to content

MAX: Adding documentation/signature for all main source files #11

MAX: Adding documentation/signature for all main source files

MAX: Adding documentation/signature for all main source files #11

Workflow file for this run

name: Cyrus RPM
on:
push:
branches: ["**"]
tags:
- "v*"
pull_request:
branches: ["**"]
workflow_dispatch: {}
permissions:
contents: write
jobs:
build-linux-rpm:
runs-on: ubuntu-latest
container: opensuse/tumbleweed
steps:
- name: Install build tools
run: |
zypper --non-interactive refresh
zypper --non-interactive install rpm-build rpmdevtools make gcc rust cargo rsync \
libffi-devel libxml2-devel llvm18 libLLVM18 llvm18-devel clang18 clang18-devel zip upx libasan8
- name: Checkout source
uses: actions/checkout@v4
- name: Extract version from Cargo.toml
run: |
CYRUS_VERSION=$(cd ./crates/cyrusc_cli && sed -n 's/^version\s*=\s*"\(.*\)"/\1/p' Cargo.toml | head -n1)
echo "CYRUS_VERSION=$CYRUS_VERSION" >> $GITHUB_ENV
- name: Set up RPM build environment
run: |
rpmdev-setuptree
mkdir -p ~/rpmbuild/SOURCES
sed -i "1i %global cyrus_version $CYRUS_VERSION" .github/workflows/cyrus.spec
mkdir cyrus-$CYRUS_VERSION
rsync -a --exclude '.git' ./ cyrus-$CYRUS_VERSION/
tar czf ~/rpmbuild/SOURCES/cyrus-$CYRUS_VERSION.tar.gz cyrus-$CYRUS_VERSION
cp .github/workflows/cyrus.spec ~/rpmbuild/SPECS/
- name: Build RPM
run: |
cd ~/rpmbuild/SPECS
rpmbuild -ba cyrus.spec
- name: Zip RPM artifacts
run: |
mkdir -p release-files
cp ~/rpmbuild/RPMS/**/*.rpm release-files/
cp ~/rpmbuild/SPECS/cyrus.spec release-files/
cd release-files
zip -r -9 cyrus-rpm.zip .
cd ..
- name: Upload as artifact
uses: actions/upload-artifact@v4
with:
name: cyrus-opensuse-rpm
path: ./release-files/cyrus-rpm.zip
release:
needs: build-linux-rpm
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
steps:
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: cyrus-opensuse-rpm
path: ./release-files
- name: Create Release
uses: softprops/action-gh-release@v2
with:
files: ./release-files/cyrus-rpm.zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}