Skip to content

Build RPM packages for toolenv #11

Build RPM packages for toolenv

Build RPM packages for toolenv #11

Workflow file for this run

name: Build RPM packages for toolenv
on:
push:
tags:
- "*.*.*"
workflow_dispatch:
env:
PACKAGE_VERSION: 0.1.1
PACKAGE_NAME: ${{ github.event.repository.name }}
jobs:
create_tarball:
name: Create tarball file
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
ref: ${{ env.PACKAGE_VERSION }}
fetch-depth: 0
- name: Make the sources directory
run: |
mkdir "${{ env.PACKAGE_NAME }}-${{ env.PACKAGE_VERSION }}"
cp data/toolenv.sh "${{ env.PACKAGE_NAME }}-${{ env.PACKAGE_VERSION }}"
cp toolenv "${{ env.PACKAGE_NAME }}-${{ env.PACKAGE_VERSION }}"
- name: Compress the sources directory into a tarball
run: |
tar --create --file "${{ env.PACKAGE_NAME }}-${{ env.PACKAGE_VERSION }}.tar.gz" "${{ env.PACKAGE_NAME }}-${{ env.PACKAGE_VERSION }}"
- name: Upload the tarball
uses: actions/upload-artifact@v3
with:
name: ${{ env.PACKAGE_NAME }}-${{ env.PACKAGE_VERSION }}.tar.gz
path: ${{ env.PACKAGE_NAME }}-${{ env.PACKAGE_VERSION }}.tar.gz
build_rpm:
name: Build RPM packages
runs-on: ubuntu-latest
needs: create_tarball
container: fedora:${{ matrix.fedora-version }}
strategy:
matrix:
fedora-version: [37, 38, 39]
steps:
- name: Checkout
uses: actions/checkout@v3
with:
ref: ${{ env.PACKAGE_VERSION }}
fetch-depth: 0
- name: Install RPM packaging tools
run: |
dnf install -y rpmdevtools rpmlint
- name: Setup RPM directory structure
run: |
rpmdev-setuptree
- name: Download toolenv tarball
uses: actions/download-artifact@v3
with:
name: ${{ env.PACKAGE_NAME }}-${{ env.PACKAGE_VERSION }}.tar.gz
- name: Move tarball to SOURCES directory
run: |
mv "${{ env.PACKAGE_NAME }}-${{ env.PACKAGE_VERSION }}.tar.gz" $(rpm --eval '%{_sourcedir}')
- name: Move spec file to SPECS directory
run: |
mv rpm/toolenv.spec $(rpm --eval '%{_specdir}')
- name: Build the RPM package
run: |
rpmbuild -bb "$(rpm --eval '%{_specdir}')/toolenv.spec"
- name: Set RPM package path variable
run: |
echo "RPM_PACKAGE_PATH=$(rpm --eval '%{_rpmdir}')/noarch/${{ env.PACKAGE_NAME }}-${{ env.PACKAGE_VERSION }}-1.fc${{ matrix.fedora-version }}.noarch.rpm" >> $GITHUB_ENV
- name: Upload the RPM package
uses: actions/upload-artifact@v3
with:
name: ${{ env.PACKAGE_NAME }}-${{ env.PACKAGE_VERSION }}-1.fc${{ matrix.fedora-version }}.noarch.rpm
path: ${{ env.RPM_PACKAGE_PATH }}
- name: Release the RPM package
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
draft: false
generate_release_notes: true
files: ${{ env.RPM_PACKAGE_PATH }}
build_srpm:
name: Build SRPM package
runs-on: ubuntu-latest
needs: create_tarball
container: fedora:39
steps:
- name: Checkout
uses: actions/checkout@v3
with:
ref: ${{ env.PACKAGE_VERSION }}
fetch-depth: 0
- name: Install RPM packaging tools
run: |
dnf install -y rpmdevtools rpmlint
- name: Setup RPM directory structure
run: |
rpmdev-setuptree
- name: Download toolenv tarball
uses: actions/download-artifact@v3
with:
name: ${{ env.PACKAGE_NAME }}-${{ env.PACKAGE_VERSION }}.tar.gz
- name: Move tarball to SOURCES directory
run: |
mv "${{ env.PACKAGE_NAME }}-${{ env.PACKAGE_VERSION }}.tar.gz" $(rpm --eval '%{_sourcedir}')
- name: Move spec file to SPECS directory
run: |
mv rpm/toolenv.spec $(rpm --eval '%{_specdir}')
- name: Build the SRPM package
run: |
rpmbuild -bs "$(rpm --eval '%{_specdir}')/toolenv.spec"
- name: Rename the SRPM package
run: |
mv $(rpm --eval '%{_srcrpmdir}')/${{ env.PACKAGE_NAME }}-${{ env.PACKAGE_VERSION }}-1.fc39.src.rpm $(rpm --eval '%{_srcrpmdir}')/${{ env.PACKAGE_NAME }}-${{ env.PACKAGE_VERSION }}-1.src.rpm
- name: Set SRPM package path variable
run: |
echo "SRPM_PACKAGE_PATH=$(rpm --eval '%{_srcrpmdir}')/${{ env.PACKAGE_NAME }}-${{ env.PACKAGE_VERSION }}-1.src.rpm" >> $GITHUB_ENV
- name: Upload the SRPM package
uses: actions/upload-artifact@v3
with:
name: ${{ env.PACKAGE_NAME }}-${{ env.PACKAGE_VERSION }}-1.src.rpm
path: ${{ env.SRPM_PACKAGE_PATH }}
- name: Release the SRPM package
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
draft: false
generate_release_notes: true
files: ${{ env.SRPM_PACKAGE_PATH }}