Skip to content

Build RPM Packages

Build RPM Packages #3

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:
include:
- distribution: rhel9
arch: x86_64
- distribution: rhel9
arch: aarch64
- distribution: rhel10
arch: x86_64
image: ghcr.io/zeroc-ice/ice-rpm-package-builder-x86_64-rhel10:latest
- distribution: rhel10
arch: 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="${GPG_KEY}" \
-e GPG_KEY_ID="${GPG_KEY_ID}" \
ghcr.io/zeroc-ice/rpm-repo-builder:latest \
/usr/local/bin/rpm-sign /workspace/build/RPMS
env:
GPG_KEY: ${{ inputs.channel == '3.7' && secrets.ICE_3_7_CI_SIGNER_KEY || secrets.ICE_3_8_CI_SIGNER_KEY }}
GPG_KEY_ID: ${{ inputs.channel == '3.7' && secrets.ICE_3_7_CI_SIGNER_KEY_ID || secrets.ICE_3_8_CI_SIGNER_KEY_ID }}
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: rpm-packages-${{ matrix.distribution }}-${{ matrix.arch }}
path: |
build/RPMS/*