Release #53
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# See: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions | |
# Workflow name | |
name: Release | |
# Run on tag push | |
on: | |
push: | |
tags: | |
- '**' | |
workflow_dispatch: | |
jobs: | |
# | |
# Build on AlmaLinux 8 using go-toolset | |
# | |
AlmaLinux8-RPM-build: | |
runs-on: ubuntu-latest | |
# See: https://hub.docker.com/_/almalinux | |
container: almalinux:8 | |
# The job outputs link to the outputs of the 'rpmrename' step | |
# Only job outputs can be used in child jobs | |
outputs: | |
rpm : ${{steps.rpmrename.outputs.RPM}} | |
srpm : ${{steps.rpmrename.outputs.SRPM}} | |
steps: | |
# Use dnf to install development packages | |
- name: Install development packages | |
run: | | |
dnf --assumeyes group install "Development Tools" "RPM Development Tools" | |
dnf --assumeyes install wget openssl-devel diffutils delve which | |
# Checkout git repository and submodules | |
# fetch-depth must be 0 to use git describe | |
# See: https://github.com/marketplace/actions/checkout | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
fetch-depth: 0 | |
# - name: Setup Golang | |
# uses: actions/setup-go@v5 | |
# with: | |
# go-version: 'stable' | |
- name: Setup Golang | |
run: | | |
dnf --assumeyes --disableplugin=subscription-manager install \ | |
https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/go-toolset-1.22.9-1.module_el8.10.0+3938+8c723e16.x86_64.rpm \ | |
https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-1.22.9-1.module_el8.10.0+3938+8c723e16.x86_64.rpm \ | |
https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-bin-1.22.9-1.module_el8.10.0+3938+8c723e16.x86_64.rpm \ | |
https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-src-1.22.9-1.module_el8.10.0+3938+8c723e16.noarch.rpm | |
- name: RPM build MetricCollector | |
id: rpmbuild | |
run: | | |
git config --global --add safe.directory /__w/cc-metric-collector/cc-metric-collector | |
make RPM | |
# AlmaLinux 8 is a derivate of RedHat Enterprise Linux 8 (UBI8), | |
# so the created RPM both contain the substring 'el8' in the RPM file names | |
# This step replaces the substring 'el8' to 'alma8'. It uses the move operation | |
# because it is unclear whether the default AlmaLinux 8 container contains the | |
# 'rename' command. This way we also get the new names for output. | |
- name: Rename RPMs (s/el8/alma8/) | |
id: rpmrename | |
run: | | |
OLD_RPM="${{steps.rpmbuild.outputs.RPM}}" | |
OLD_SRPM="${{steps.rpmbuild.outputs.SRPM}}" | |
NEW_RPM="${OLD_RPM/el8/alma8}" | |
NEW_SRPM=${OLD_SRPM/el8/alma8} | |
mv "${OLD_RPM}" "${NEW_RPM}" | |
mv "${OLD_SRPM}" "${NEW_SRPM}" | |
echo "SRPM=${NEW_SRPM}" >> $GITHUB_OUTPUT | |
echo "RPM=${NEW_RPM}" >> $GITHUB_OUTPUT | |
# See: https://github.com/actions/upload-artifact | |
- name: Save RPM as artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: cc-metric-collector RPM for AlmaLinux 8 | |
path: ${{ steps.rpmrename.outputs.EL8_RPM }} | |
overwrite: true | |
- name: Save SRPM as artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: cc-metric-collector SRPM for AlmaLinux 8 | |
path: ${{ steps.rpmrename.outputs.EL8_SRPM }} | |
overwrite: true | |
# | |
# Build on AlmaLinux 9 using go-toolset | |
# | |
AlmaLinux9-RPM-build: | |
runs-on: ubuntu-latest | |
# See: https://hub.docker.com/_/almalinux | |
container: almalinux:9 | |
# The job outputs link to the outputs of the 'rpmrename' step | |
# Only job outputs can be used in child jobs | |
outputs: | |
rpm : ${{steps.rpmrename.outputs.RPM}} | |
srpm : ${{steps.rpmrename.outputs.SRPM}} | |
steps: | |
# Use dnf to install development packages | |
- name: Install development packages | |
run: | | |
dnf --assumeyes group install "Development Tools" "RPM Development Tools" | |
dnf --assumeyes install wget openssl-devel diffutils delve which | |
# Checkout git repository and submodules | |
# fetch-depth must be 0 to use git describe | |
# See: https://github.com/marketplace/actions/checkout | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
fetch-depth: 0 | |
# - name: Setup Golang | |
# uses: actions/setup-go@v5 | |
# with: | |
# go-version: 'stable' | |
- name: Setup Golang | |
run: | | |
dnf --assumeyes --disableplugin=subscription-manager install \ | |
https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/go-toolset-1.22.7-2.el9_5.x86_64.rpm \ | |
https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/golang-1.22.7-2.el9_5.x86_64.rpm \ | |
https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/golang-bin-1.22.7-2.el9_5.x86_64.rpm \ | |
https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/golang-src-1.22.7-2.el9_5.noarch.rpm \ | |
https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/golang-race-1.22.7-2.el9_5.x86_64.rpm | |
- name: RPM build MetricCollector | |
id: rpmbuild | |
run: | | |
git config --global --add safe.directory /__w/cc-metric-collector/cc-metric-collector | |
make RPM | |
# AlmaLinux 9 is a derivate of RedHat Enterprise Linux 8 (UBI8), | |
# so the created RPM both contain the substring 'el9' in the RPM file names | |
# This step replaces the substring 'el8' to 'alma8'. It uses the move operation | |
# because it is unclear whether the default AlmaLinux 8 container contains the | |
# 'rename' command. This way we also get the new names for output. | |
- name: Rename RPMs (s/el9/alma9/) | |
id: rpmrename | |
run: | | |
OLD_RPM="${{steps.rpmbuild.outputs.RPM}}" | |
OLD_SRPM="${{steps.rpmbuild.outputs.SRPM}}" | |
NEW_RPM="${OLD_RPM/el9/alma9}" | |
NEW_SRPM=${OLD_SRPM/el9/alma9} | |
mv "${OLD_RPM}" "${NEW_RPM}" | |
mv "${OLD_SRPM}" "${NEW_SRPM}" | |
echo "SRPM=${NEW_SRPM}" >> $GITHUB_OUTPUT | |
echo "RPM=${NEW_RPM}" >> $GITHUB_OUTPUT | |
# See: https://github.com/actions/upload-artifact | |
- name: Save RPM as artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: cc-metric-collector RPM for AlmaLinux 9 | |
path: ${{ steps.rpmrename.outputs.EL9_RPM }} | |
overwrite: true | |
- name: Save SRPM as artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: cc-metric-collector SRPM for AlmaLinux 9 | |
path: ${{ steps.rpmrename.outputs.EL9_SRPM }} | |
overwrite: true | |
# | |
# Build on UBI 8 using go-toolset | |
# | |
UBI-8-RPM-build: | |
runs-on: ubuntu-latest | |
# See: https://catalog.redhat.com/software/containers/ubi8/ubi/5c35984d70cc534b3a3784e?container-tabs=gti | |
container: registry.access.redhat.com/ubi8/ubi:8.8-1032.1692772289 | |
# The job outputs link to the outputs of the 'rpmbuild' step | |
outputs: | |
rpm : ${{steps.rpmbuild.outputs.RPM}} | |
srpm : ${{steps.rpmbuild.outputs.SRPM}} | |
steps: | |
# Use dnf to install development packages | |
- name: Install development packages | |
run: dnf --assumeyes --disableplugin=subscription-manager install rpm-build go-srpm-macros rpm-build-libs rpm-libs gcc make python38 git wget openssl-devel diffutils delve which | |
# Checkout git repository and submodules | |
# fetch-depth must be 0 to use git describe | |
# See: https://github.com/marketplace/actions/checkout | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
fetch-depth: 0 | |
# - name: Setup Golang | |
# uses: actions/setup-go@v5 | |
# with: | |
# go-version: 'stable' | |
- name: Setup Golang | |
run: | | |
dnf --assumeyes --disableplugin=subscription-manager install \ | |
https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/go-toolset-1.22.9-1.module_el8.10.0+3938+8c723e16.x86_64.rpm \ | |
https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-1.22.9-1.module_el8.10.0+3938+8c723e16.x86_64.rpm \ | |
https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-bin-1.22.9-1.module_el8.10.0+3938+8c723e16.x86_64.rpm \ | |
https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-src-1.22.9-1.module_el8.10.0+3938+8c723e16.noarch.rpm | |
- name: RPM build MetricCollector | |
id: rpmbuild | |
run: | | |
git config --global --add safe.directory /__w/cc-metric-collector/cc-metric-collector | |
make RPM | |
# See: https://github.com/actions/upload-artifact | |
- name: Save RPM as artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: cc-metric-collector RPM for UBI 8 | |
path: ${{ steps.rpmbuild.outputs.RPM }} | |
overwrite: true | |
- name: Save SRPM as artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: cc-metric-collector SRPM for UBI 8 | |
path: ${{ steps.rpmbuild.outputs.SRPM }} | |
overwrite: true | |
# | |
# Build on UBI 9 using go-toolset | |
# | |
UBI-9-RPM-build: | |
runs-on: ubuntu-latest | |
# See: https://catalog.redhat.com/software/containers/ubi8/ubi/5c359854d70cc534b3a3784e?container-tabs=gti | |
container: redhat/ubi9 | |
# The job outputs link to the outputs of the 'rpmbuild' step | |
# The job outputs link to the outputs of the 'rpmbuild' step | |
outputs: | |
rpm : ${{steps.rpmbuild.outputs.RPM}} | |
srpm : ${{steps.rpmbuild.outputs.SRPM}} | |
steps: | |
# Use dnf to install development packages | |
- name: Install development packages | |
run: dnf --assumeyes --disableplugin=subscription-manager install rpm-build go-srpm-macros gcc make python39 git wget openssl-devel diffutils delve | |
# Checkout git repository and submodules | |
# fetch-depth must be 0 to use git describe | |
# See: https://github.com/marketplace/actions/checkout | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
fetch-depth: 0 | |
# See: https://github.com/marketplace/actions/setup-go-environment | |
# - name: Setup Golang | |
# uses: actions/setup-go@v5 | |
# with: | |
# go-version: 'stable' | |
- name: Setup Golang | |
run: | | |
dnf --assumeyes --disableplugin=subscription-manager install \ | |
https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/go-toolset-1.22.7-2.el9_5.x86_64.rpm \ | |
https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/golang-1.22.7-2.el9_5.x86_64.rpm \ | |
https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/golang-bin-1.22.7-2.el9_5.x86_64.rpm \ | |
https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/golang-src-1.22.7-2.el9_5.noarch.rpm \ | |
https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/golang-race-1.22.7-2.el9_5.x86_64.rpm | |
- name: RPM build MetricCollector | |
id: rpmbuild | |
run: | | |
git config --global --add safe.directory /__w/cc-metric-collector/cc-metric-collector | |
make RPM | |
# See: https://github.com/actions/upload-artifact | |
- name: Save RPM as artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: cc-metric-collector RPM for UBI 9 | |
path: ${{ steps.rpmbuild.outputs.RPM }} | |
overwrite: true | |
- name: Save SRPM as artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: cc-metric-collector SRPM for UBI 9 | |
path: ${{ steps.rpmbuild.outputs.SRPM }} | |
overwrite: true | |
# | |
# Build on Ubuntu 22.04 using official go package | |
# | |
Ubuntu-jammy-build: | |
runs-on: ubuntu-latest | |
container: ubuntu:22.04 | |
# The job outputs link to the outputs of the 'debrename' step | |
# Only job outputs can be used in child jobs | |
outputs: | |
deb : ${{steps.debrename.outputs.DEB}} | |
steps: | |
# Use apt to install development packages | |
- name: Install development packages | |
run: | | |
apt update && apt --assume-yes upgrade | |
apt --assume-yes install build-essential sed git wget bash | |
# Checkout git repository and submodules | |
# fetch-depth must be 0 to use git describe | |
# See: https://github.com/marketplace/actions/checkout | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
fetch-depth: 0 | |
- name: Setup Golang | |
uses: actions/setup-go@v5 | |
with: | |
go-version: 'stable' | |
- name: DEB build MetricCollector | |
id: dpkg-build | |
run: | | |
git config --global --add safe.directory /__w/cc-metric-collector/cc-metric-collector | |
make DEB | |
- name: Rename DEB (add '_ubuntu22.04') | |
id: debrename | |
run: | | |
OLD_DEB_NAME=$(echo "${{steps.dpkg-build.outputs.DEB}}" | rev | cut -d '.' -f 2- | rev) | |
NEW_DEB_FILE="${OLD_DEB_NAME}_ubuntu22.04.deb" | |
mv "${{steps.dpkg-build.outputs.DEB}}" "${NEW_DEB_FILE}" | |
echo "DEB=${NEW_DEB_FILE}" >> $GITHUB_OUTPUT | |
# See: https://github.com/actions/upload-artifact | |
- name: Save DEB as artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: cc-metric-collector DEB for Ubuntu 22.04 | |
path: ${{ steps.debrename.outputs.DEB }} | |
overwrite: true | |
# | |
# Build on Ubuntu 24.04 using official go package | |
# | |
Ubuntu-noblenumbat-build: | |
runs-on: ubuntu-latest | |
container: ubuntu:24.04 | |
# The job outputs link to the outputs of the 'debrename' step | |
# Only job outputs can be used in child jobs | |
outputs: | |
deb : ${{steps.debrename.outputs.DEB}} | |
steps: | |
# Use apt to install development packages | |
- name: Install development packages | |
run: | | |
apt update && apt --assume-yes upgrade | |
apt --assume-yes install build-essential sed git wget bash | |
# Checkout git repository and submodules | |
# fetch-depth must be 0 to use git describe | |
# See: https://github.com/marketplace/actions/checkout | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
fetch-depth: 0 | |
- name: Setup Golang | |
uses: actions/setup-go@v5 | |
with: | |
go-version: 'stable' | |
- name: DEB build MetricCollector | |
id: dpkg-build | |
run: | | |
git config --global --add safe.directory /__w/cc-metric-collector/cc-metric-collector | |
make DEB | |
- name: Rename DEB (add '_ubuntu24.04') | |
id: debrename | |
run: | | |
OLD_DEB_NAME=$(echo "${{steps.dpkg-build.outputs.DEB}}" | rev | cut -d '.' -f 2- | rev) | |
NEW_DEB_FILE="${OLD_DEB_NAME}_ubuntu24.04.deb" | |
mv "${{steps.dpkg-build.outputs.DEB}}" "${NEW_DEB_FILE}" | |
echo "DEB=${NEW_DEB_FILE}" >> $GITHUB_OUTPUT | |
# See: https://github.com/actions/upload-artifact | |
- name: Save DEB as artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: cc-metric-collector DEB for Ubuntu 24.04 | |
path: ${{ steps.debrename.outputs.DEB }} | |
overwrite: true | |
# | |
# Create release with fresh RPMs | |
# | |
Release: | |
runs-on: ubuntu-latest | |
# We need the RPMs, so add dependency | |
needs: [AlmaLinux8-RPM-build, AlmaLinux9-RPM-build, UBI-8-RPM-build, UBI-9-RPM-build, Ubuntu-jammy-build, Ubuntu-noblenumbat-build] | |
steps: | |
# See: https://github.com/actions/download-artifact | |
- name: Download AlmaLinux 8 RPM | |
uses: actions/download-artifact@v4 | |
with: | |
name: cc-metric-collector RPM for AlmaLinux 8 | |
- name: Download AlmaLinux 8 SRPM | |
uses: actions/download-artifact@v4 | |
with: | |
name: cc-metric-collector SRPM for AlmaLinux 8 | |
- name: Download AlmaLinux 9 RPM | |
uses: actions/download-artifact@v4 | |
with: | |
name: cc-metric-collector RPM for AlmaLinux 9 | |
- name: Download AlmaLinux 9 SRPM | |
uses: actions/download-artifact@v4 | |
with: | |
name: cc-metric-collector SRPM for AlmaLinux 9 | |
- name: Download UBI 8 RPM | |
uses: actions/download-artifact@v4 | |
with: | |
name: cc-metric-collector RPM for UBI 8 | |
- name: Download UBI 8 SRPM | |
uses: actions/download-artifact@v4 | |
with: | |
name: cc-metric-collector SRPM for UBI 8 | |
- name: Download UBI 9 RPM | |
uses: actions/download-artifact@v4 | |
with: | |
name: cc-metric-collector RPM for UBI 9 | |
- name: Download UBI 9 SRPM | |
uses: actions/download-artifact@v4 | |
with: | |
name: cc-metric-collector SRPM for UBI 9 | |
- name: Download Ubuntu 22.04 DEB | |
uses: actions/download-artifact@v4 | |
with: | |
name: cc-metric-collector DEB for Ubuntu 22.04 | |
- name: Download Ubuntu 24.04 DEB | |
uses: actions/download-artifact@v4 | |
with: | |
name: cc-metric-collector DEB for Ubuntu 24.04 | |
# The download actions do not publish the name of the downloaded file, | |
# so we re-use the job outputs of the parent jobs. The files are all | |
# downloaded to the current folder. | |
# The gh-release action afterwards does not accept file lists but all | |
# files have to be listed at 'files'. The step creates one output per | |
# RPM package (2 per distro) | |
- name: Set RPM variables | |
id: files | |
run: | | |
ALMA_8_RPM=$(basename "${{ needs.AlmaLinux8-RPM-build.outputs.rpm}}") | |
ALMA_8_SRPM=$(basename "${{ needs.AlmaLinux8-RPM-build.outputs.srpm}}") | |
ALMA_9_RPM=$(basename "${{ needs.AlmaLinux9-RPM-build.outputs.rpm}}") | |
ALMA_9_SRPM=$(basename "${{ needs.AlmaLinux9-RPM-build.outputs.srpm}}") | |
UBI_8_RPM=$(basename "${{ needs.UBI-8-RPM-build.outputs.rpm}}") | |
UBI_8_SRPM=$(basename "${{ needs.UBI-8-RPM-build.outputs.srpm}}") | |
UBI_9_RPM=$(basename "${{ needs.UBI-9-RPM-build.outputs.rpm}}") | |
UBI_9_SRPM=$(basename "${{ needs.UBI-9-RPM-build.outputs.srpm}}") | |
U_2204_DEB=$(basename "${{ needs.Ubuntu-jammy-build.outputs.deb}}") | |
U_2404_DEB=$(basename "${{ needs.Ubuntu-noblenumbat-build.outputs.deb}}") | |
echo "ALMA_8_RPM::${ALMA_8_RPM}" | |
echo "ALMA_8_SRPM::${ALMA_8_SRPM}" | |
echo "ALMA_9_RPM::${ALMA_9_RPM}" | |
echo "ALMA_9_SRPM::${ALMA_9_SRPM}" | |
echo "UBI_8_RPM::${UBI_8_RPM}" | |
echo "UBI_8_SRPM::${UBI_8_SRPM}" | |
echo "UBI_9_RPM::${UBI_9_RPM}" | |
echo "UBI_9_SRPM::${UBI_9_SRPM}" | |
echo "U_2204_DEB::${U_2204_DEB}" | |
echo "U_2404_DEB::${U_2404_DEB}" | |
echo "ALMA_8_RPM=${ALMA_8_RPM}" >> $GITHUB_OUTPUT | |
echo "ALMA_8_SRPM=${ALMA_8_SRPM}" >> $GITHUB_OUTPUT | |
echo "ALMA_9_RPM=${ALMA_9_RPM}" >> $GITHUB_OUTPUT | |
echo "ALMA_9_SRPM=${ALMA_9_SRPM}" >> $GITHUB_OUTPUT | |
echo "UBI_8_RPM=${UBI_8_RPM}" >> $GITHUB_OUTPUT | |
echo "UBI_8_SRPM=${UBI_8_SRPM}" >> $GITHUB_OUTPUT | |
echo "UBI_9_RPM=${UBI_9_RPM}" >> $GITHUB_OUTPUT | |
echo "UBI_9_SRPM=${UBI_9_SRPM}" >> $GITHUB_OUTPUT | |
echo "U_2204_DEB=${U_2204_DEB}" >> $GITHUB_OUTPUT | |
echo "U_2404_DEB=${U_2404_DEB}" >> $GITHUB_OUTPUT | |
# See: https://github.com/softprops/action-gh-release | |
- name: Release | |
uses: softprops/action-gh-release@v2 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
name: cc-metric-collector-${{github.ref_name}} | |
files: | | |
${{ steps.files.outputs.ALMA_8_RPM }} | |
${{ steps.files.outputs.ALMA_8_SRPM }} | |
${{ steps.files.outputs.ALMA_9_RPM }} | |
${{ steps.files.outputs.ALMA_9_SRPM }} | |
${{ steps.files.outputs.UBI_8_RPM }} | |
${{ steps.files.outputs.UBI_8_SRPM }} | |
${{ steps.files.outputs.UBI_9_RPM }} | |
${{ steps.files.outputs.UBI_9_SRPM }} | |
${{ steps.files.outputs.U_2204_DEB }} | |
${{ steps.files.outputs.U_2404_DEB }} |