Skip to content

Merge pull request #179 from roberthawdon/rc2 #5

Merge pull request #179 from roberthawdon/rc2

Merge pull request #179 from roberthawdon/rc2 #5

Workflow file for this run

name: Create Release with Tarball
on:
push:
tags:
- 'v*.*.*' # Standard releases: v1.0.0, v2.1.3
- 'v*.*.*-alpha*' # Alpha releases: v1.0.0-alpha, v1.0.0-alpha1
- 'v*.*.*-beta*' # Beta releases: v1.0.0-beta, v1.0.0-beta2
- 'v*.*.*-rc*' # Release candidates: v1.0.0-rc1, v1.0.0-rc10
workflow_dispatch:
jobs:
build-and-release:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0 # Fetch full history for git describe
- name: Install development dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
autotools-dev \
autoconf \
automake \
libtool \
build-essential \
pkg-config \
ncurses-dev \
libncursesw5-dev \
libconfig-dev \
libacl1-dev \
gettext \
gettext-base \
autopoint
- name: Create tarball version file
run: |
# Create version file for tarball distributions
git describe --tags --dirty --always > .tarball-version
- name: Run bootstrap script
run: ./bootstrap
- name: Configure the build
run: ./configure
- name: Create distribution tarball
run: make dist
- name: Find generated tarball
id: find-tarball
run: |
TARBALL=$(ls *.tar.gz | head -n1)
echo "tarball=$TARBALL" >> $GITHUB_OUTPUT
echo "Found tarball: $TARBALL"
- name: Determine if pre-release
id: prerelease
run: |
if [[ "${{ github.ref_name }}" =~ -alpha|-beta|-rc ]]; then
echo "prerelease=true" >> $GITHUB_OUTPUT
echo "This is a pre-release version"
else
echo "prerelease=false" >> $GITHUB_OUTPUT
echo "This is a stable release"
fi
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
if: github.ref_type == 'tag'
with:
files: ${{ steps.find-tarball.outputs.tarball }}
prerelease: ${{ steps.prerelease.outputs.prerelease }}
generate_release_notes: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}