Skip to content

Build RPM Packages

Build RPM Packages #7

name: "Build RPM Packages"
on:
workflow_dispatch:
inputs:
mcpp_version:
description: "The MCPP version to build"
required: false
channel:
description: "The release channel (e.g., 3.7, 3.8)"
required: true
workflow_call:
inputs:
mcpp_version:
required: false
type: string
channel:
required: true
type: string
jobs:
build:
name: "Build for ${{ matrix.distribution }}-${{ matrix.arch }}"
runs-on: ${{ matrix.arch == 'aarch64' && 'ubuntu-24.04-arm' || 'ubuntu-24.04' }}
strategy:
matrix:
distribution: [el9, el10]
arch: [x86_64, aarch64]
steps:
- name: Check out repository
uses: actions/checkout@v4
with:
path: mcpp
- name: Log in to GHCR
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u zeroc-ice --password-stdin
- name: Build RPM Packages
run: |
docker run --rm \
-v "$GITHUB_WORKSPACE:/workspace" \
-e MCPP_VERSION="${{ inputs.mcpp_version }}" \
-e GIT_TAG="${{ github.ref_name }}" \
-e BUILD_ARCH="${{ matrix.arch }}" \
ghcr.io/zeroc-ice/ice-rpm-builder-${{ matrix.distribution }}:${{ inputs.channel }} \
/workspace/mcpp/packaging/rpm/build-package.sh
- name: Sign RPM packages
run: |
docker run --rm \
-v "$GITHUB_WORKSPACE:/workspace" \
-e GPG_KEY="${{ secrets.ICE_3_7_CI_SIGNER_KEY }}" \
-e GPG_KEY_ID="${{ secrets.ICE_3_7_CI_SIGNER_KEY_ID }}" \
ghcr.io/zeroc-ice/ice-rpm-builder-${{ matrix.distribution }}:${{ inputs.channel }} \
/workspace/mcpp/packaging/rpm/sign-package.sh
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: rpm-packages-${{ matrix.distribution }}-${{ matrix.arch }}
path: |
build/RPMS/*