Skip to content

package_arm_rpm

package_arm_rpm #6

name: package_arm_rpm
on:
push:
branches:
- 'master'
paths:
- '**'
tags:
- 'v*.*.*'
- 'v*.*.*-*'
jobs:
build:
permissions:
id-token: write
contents: write
runs-on:
labels: arm-runner-2204
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Go
uses: actions/setup-go@master
with:
go-version: 1.22.1
- name: Adding TAG to ENV
run: echo "GIT_TAG=`echo $(git describe --tags --abbrev=0)`" >> $GITHUB_ENV
- name: Adding a TAG1 to the env
run: echo "GIT_TAG1=`echo $(git describe --tags --abbrev=0)`" | sed 's/-/./g' >> $GITHUB_ENV
- name: Cleaning repo
run: make clean
- name: Building for arm64
run: make bor
- name: Installing some dependencies
run: sudo apt-get update && sudo apt-get install -y rpm
- name: Setup rpm package for binary
run: |
mkdir -p packaging/rpm/SPECS
mkdir -p packaging/rpm/BUILD
mkdir -p packaging/rpm/RPMS
mkdir -p packaging/rpm/SRPMS
touch packaging/rpm/bor.spec
echo "Name: bor" >> packaging/rpm/SPECS/bor.spec
echo "Version: ${{ env.GIT_TAG1 }}" >> packaging/rpm/SPECS/bor.spec
echo "Release: 1%{?dist}" >> packaging/rpm/SPECS/bor.spec
echo "License: GPL/AGPL" >> packaging/rpm/SPECS/bor.spec
echo "BuildArch: aarch64" >> packaging/rpm/SPECS/bor.spec
echo "Summary: bor rpm package" >> packaging/rpm/SPECS/bor.spec
echo "%description" >> packaging/rpm/SPECS/bor.spec
echo "Bor rpm package" >> packaging/rpm/SPECS/bor.spec
echo "%pre" >> packaging/rpm/SPECS/bor.spec
echo "getent group bor >/dev/null || groupadd -r bor" >> packaging/rpm/SPECS/bor.spec
echo "getent passwd bor >/dev/null || useradd -s /bin/false -d /var/lib/bor -r bor -g bor" >> packaging/rpm/SPECS/bor.spec
echo "%install" >> packaging/rpm/SPECS/bor.spec
echo "mkdir -p %{buildroot}/usr/bin" >> packaging/rpm/SPECS/bor.spec
echo "cp /home/runner/work/bor/bor/build/bin/bor %{buildroot}/usr/bin/" >> packaging/rpm/SPECS/bor.spec
echo "%files" >> packaging/rpm/SPECS/bor.spec
echo "/usr/bin/bor" >> packaging/rpm/SPECS/bor.spec
- name: construct rpm package
run: |
rpmbuild --define "_topdir /home/runner/work/bor/bor/packaging/rpm_build" \
--define "_builddir %{_topdir}/BUILD" \
--define "_rpmdir %{_topdir}/RPMS" \
--define "_srcrpmdir %{_topdir}/SRPMS" \
--define "__spec_install_post /bin/true" \
-bb packaging/rpm/SPECS/bor.spec
- name: rename file for post rpm build and for checksum
run: mv /home/runner/work/bor/bor/packaging/rpm_build/RPMS/aarch64/bor-${{ env.GIT_TAG1 }}-1.aarch64.rpm /home/runner/work/bor/bor/packaging/rpm_build/RPMS/aarch64/bor-${{ env.GIT_TAG1 }}.aarch64.rpm
- name: checksum for the rpm package
run: sha256sum /home/runner/work/bor/bor/packaging/rpm_build/RPMS/aarch64/bor-${{ env.GIT_TAG1 }}.aarch64.rpm > /home/runner/work/bor/bor/packaging/rpm_build/RPMS/aarch64/bor-${{ env.GIT_TAG1 }}.aarch64.rpm.checksum
- name: Release bor Packages
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ env.GIT_TAG }}
prerelease: true
files: |
packaging/rpm_build/RPMS/aarch64/bor-**.rpm
packaging/rpm_build/RPMS/aarch64/bor-**.rpm.checksum