Skip to content

u

u #6

Workflow file for this run

name: Build
on:
push:
branches:
- master
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
GIT_SUBMODULE_STRATEGY: recursive
permissions:
contents: write
jobs:
build-desktop:
name: ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [windows-latest, ubuntu-latest]
steps:
- name: Fetch sources
uses: actions/checkout@v4
# Cache AUI boot directory
- name: Cache AUI.BOOT deps
id: cache-aui-boot
uses: actions/cache@v3
env:
cache-name: cache-aui-boot
with:
path: ~/.aui
key: ${{ runner.os }}-build-${{ env.cache-name }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}
${{ runner.os }}-build-
${{ runner.os }}-
- name: Install Linux dependencies
if: matrix.os == 'ubuntu-latest'
run: sudo apt-get update && sudo apt-get install pkg-config libglew-dev zlib1g-dev libssl-dev libcrypt-dev libcurl4-openssl-dev libgtk-3-dev libfontconfig-dev ninja-build libpulse-dev
- name: Install macos dependencies
if: matrix.os == 'macos-latest'
run: brew install ninja
- name: Configure CMake
run: cmake -G "${{ matrix.os=='windows-latest' && 'Visual Studio 17 2022' || 'Ninja' }}" -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=RelWithDebInfo ${{matrix.additional_cmake_flags}} -DAUI_INSTALL_RUNTIME_DEPENDENCIES=TRUE
- name: Configure CPack (Windows)
if: matrix.os == 'windows-latest'
run: cmake -B ${{github.workspace}}/build -DCPACK_GENERATOR=INNOSETUP
- name: Configure CPack (Linux)
if: matrix.os == 'ubuntu-latest'
run: cmake -B ${{github.workspace}}/build -DCPACK_GENERATOR=TGZ
- name: Build Project
run: cmake --build ${{github.workspace}}/build --config RelWithDebInfo
- name: Build Tests
run: cmake --build ${{github.workspace}}/build --config RelWithDebInfo --target Tests
- name: Run Tests (Windows)
if: matrix.os == 'windows-latest'
working-directory: ${{github.workspace}}/build/bin/RelWithDebInfo/
run: ${{github.workspace}}/build/bin/RelWithDebInfo/Tests.exe
- name: Run Tests (Linux and macOS)
if: matrix.os == 'ubuntu-latest'
working-directory: ${{github.workspace}}/build/bin
run: ${{github.workspace}}/build/bin/Tests
- name: Pack
working-directory: ${{github.workspace}}/build
run: cpack . -CRelWithDebInfo
- name: Upload (Windows)
if: matrix.os == 'windows-latest'
uses: actions/upload-artifact@v4
with:
path: ${{github.workspace}}/build/*.exe
name: ${{ matrix.os }}
- name: Upload (Linux)
if: matrix.os == 'ubuntu-latest'
uses: actions/upload-artifact@v4
with:
path: ${{github.workspace}}/build/*.gz
name: ${{ matrix.os }}
release-draft:
runs-on: ubuntu-latest
permissions: write-all
if: github.event_name != 'pull_request'
needs: [ build-desktop ]
name: "Release draft"
steps:
- name: Fetch sources
uses: actions/checkout@v4
- name: Extract version
run: |
VERSION=$(grep -Po '[0-9\.]+ (?=# CI_PROJECT_VERSION)' CMakeLists.txt)
echo "VERSION=$VERSION" >> $GITHUB_ENV
echo "VERSION = $VERSION"
# Remove old release drafts
- name: Remove Old Release Drafts
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh api repos/{owner}/{repo}/releases \
--jq '.[] | select(.draft == true) | .id' \
| xargs -I '{}' gh api -X DELETE repos/{owner}/{repo}/releases/{}
- name: Download artifacts
uses: actions/download-artifact@v4
with:
path: artifacts
merge-multiple: 'true'
- name: Create Release Draft
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release create "v${{ env.VERSION }}" \
--draft \
--title "v${{ env.VERSION }}" \
artifacts/*