Files
Chloride/.github/workflows/release.yml
2025-07-13 18:28:05 +01:00

71 lines
1.9 KiB
YAML

# SPDX-FileCopyrightText: 2025 William Bell
#
# SPDX-License-Identifier: GPL-3.0-or-later
name: Build and Release
on:
push:
tags:
- '*' # Trigger on any tag push
jobs:
build_and_release:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
submodules: recursive
- name: Setup Python (needed for Conan)
uses: actions/setup-python@v4
with:
python-version: '3.x'
- name: Install Conan
run: |
python -m pip install --upgrade pip
pip install conan
- name: Configure Conan
run: |
conan profile detect
- name: Install dependencies and build with Conan
run: |
conan install . --build=missing
conan build .
- name: Determine if prerelease
id: prerelease_check
run: |
TAG=${GITHUB_REF##refs/tags/}
if [[ "$TAG" == prerelease-* ]]; then
echo "true" > prerelease.txt
else
echo "false" > prerelease.txt
fi
echo "prerelease=$(cat prerelease.txt)" >> $GITHUB_OUTPUT
- name: Archive build folder
run: |
TAG=${GITHUB_REF##refs/tags/}
ARCH=$(uname -m)
FOLDER_NAME="chloride-$TAG-linux-${ARCH}"
TAR_NAME="$FOLDER_NAME.tar.gz"
mv build/bin "$FOLDER_NAME"
cp LICENSE "$FOLDER_NAME"
tar -czf "$TAR_NAME" "$FOLDER_NAME"
echo "TAR_NAME=$TAR_NAME" >> $GITHUB_ENV
- name: Create GitHub Release
id: create_release
uses: ncipollo/release-action@v1
with:
tag: ${{ github.ref_name }}
name: Release ${{ github.ref_name }}
body: |
Automated release based on tag ${{ github.ref_name }}
draft: false
prerelease: ${{ steps.prerelease_check.outputs.prerelease }}
artifacts: ${{ env.TAR_NAME }}