mirror of
https://github.com/troglobit/finit.git
synced 2026-10-01 13:33:09 +07:00
85 lines
3.0 KiB
YAML
85 lines
3.0 KiB
YAML
name: Release General
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- '[0-9]+.[0-9]+*'
|
|
|
|
permissions:
|
|
contents: write
|
|
|
|
jobs:
|
|
release:
|
|
name: Build and upload release tarball
|
|
if: startsWith(github.ref, 'refs/tags/')
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
MAKEFLAGS: -j3
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Installing dependencies ...
|
|
run: |
|
|
sudo apt-get -y update
|
|
sudo apt-get -y install pkg-config jq libcap-dev
|
|
wget https://github.com/troglobit/libuev/releases/download/v2.4.1/libuev-2.4.1.tar.xz
|
|
wget https://github.com/troglobit/libite/releases/download/v2.6.2/libite-2.6.2.tar.gz
|
|
tar xf libuev-2.4.1.tar.xz
|
|
tar xf libite-2.6.2.tar.gz
|
|
(cd libuev-2.4.1 && ./configure && make && sudo make install-strip)
|
|
(cd libite-2.6.2 && ./configure && make && sudo make install-strip)
|
|
sudo ldconfig
|
|
- name: Setting release variables ...
|
|
id: build
|
|
run: |
|
|
ver=${GITHUB_REF#refs/tags/}
|
|
echo "ver=${ver}" >> $GITHUB_OUTPUT
|
|
if echo $ver | grep -qE '^[0-9]+\.[0-9]+(\.[0-9]+)?(-alpha|-beta|-rc)[0-9]*$'; then
|
|
echo "pre=true" >> $GITHUB_OUTPUT
|
|
else
|
|
echo "pre=false" >> $GITHUB_OUTPUT
|
|
fi
|
|
if echo $ver | grep -qE '^[0-9.]+\.[0-9.]+(\.[0-9]+)?$'; then
|
|
echo "latest=true" >> $GITHUB_OUTPUT
|
|
else
|
|
echo "latest=false" >> $GITHUB_OUTPUT
|
|
fi
|
|
- name: Creating Makefiles ...
|
|
run: |
|
|
./autogen.sh
|
|
./configure --prefix=/usr --exec-prefix= --sysconfdir=/etc \
|
|
--localstatedir=/var --enable-x11-common-plugin \
|
|
--enable-testserv-plugin --with-watchdog \
|
|
--with-keventd --with-libsystemd
|
|
- name: Enable unprivileged userns (unshare)
|
|
run: |
|
|
sudo sysctl kernel.apparmor_restrict_unprivileged_userns=0
|
|
- name: Build release ...
|
|
run: |
|
|
# Get version for finding distcheck build directory
|
|
./configure --version | head -1
|
|
ver=$(./configure --version | head -1 | awk '{print $NF}')
|
|
dir=finit-$ver/_build/sub
|
|
|
|
make release || (cat $dir/test/test-suite.log; false)
|
|
ls -lF ../
|
|
mkdir -p artifacts/
|
|
mv ../*.tar.* artifacts/
|
|
- name: Upload Test Results
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: finit-release-test-logs
|
|
path: finit-*/_build/sub/test/*.log
|
|
- name: Extract ChangeLog entry ...
|
|
run: |
|
|
awk '/-----*/{if (x == 1) exit; x=1;next}x' doc/ChangeLog.md \
|
|
|head -n -1 > release.md
|
|
cat release.md
|
|
- uses: ncipollo/release-action@v1
|
|
with:
|
|
name: Finit v${{ github.ref_name }}
|
|
prerelease: ${{ steps.build.outputs.pre }}
|
|
makeLatest: ${{ steps.build.outputs.latest }}
|
|
bodyFile: "release.md"
|
|
artifacts: "artifacts/*"
|