mumble/.github/workflows/build.yml
Robert Adam c03521593c CI: Introduce GitHub Actions
Now that Travis CI decided to stop offering their services for free, we
had to look for an alternative solution. GitHub Actions seems to fit the
picture really well and has the benefit of being tightly integrated into
GitHub (obviously).

For now only shared builds for Ubuntu 18.04 and 20.04 are included. The
scripts and the framework for also including static builds is part of
this commit as well but as it stands the static build always failed and
therefore it was given up upon for now.

Adding support for other OS will require a few tweaks and a couple of
new scripts but in general the framework was built with this kind of
extension in mind.
2020-11-29 17:40:15 +01:00

72 lines
1.8 KiB
YAML

name: Build
on: [push, pull_request]
env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Release
CMAKE_OPTIONS: |
-Dtests=ON -Donline-tests=ON -Dsymbols=ON -Dgrpc=ON -Ddisplay-install-paths=ON
MUMBLE_ENVIRONMENT_SOURCE: 'https://dl.mumble.info/build/vcpkg/'
jobs:
build:
strategy:
fail-fast: false
matrix:
os: [ubuntu-18.04, ubuntu-20.04]
type: [shared] # Currently the "static" build doesn't work for Linux systems
arch: [64bit]
runs-on: ${{ matrix.os }}
steps:
- name: Print diskspace
run: df -BM
shell: bash
- uses: actions/checkout@v2
with:
submodules: 'recursive'
- name: Set environment variables
run: $GITHUB_WORKSPACE/.github/workflows/set_environment_variables.sh "${{ matrix.os }}" "${{ matrix.type }}" "${{ matrix.arch }}" "${{ runner.workspace }}"
shell: bash
- uses: actions/cache@v2
with:
path: '${{ env.MUMBLE_BUILD_ENV_PATH }}'
key: ${{ env.MUMBLE_ENVIRONMENT_VERSION }}
- uses: ./.github/actions/install-dependencies
with:
type: ${{ matrix.type }}
os: ${{ matrix.os }}
arch: ${{ matrix.arch }}
- name: Create build dir
run: cmake -E make_directory ${{runner.workspace}}/build
- name: Run CMake
run: |
cmake -G Ninja -S $GITHUB_WORKSPACE -B ${{runner.workspace}}/build -DCMAKE_BUILD_TYPE=$BUILD_TYPE $CMAKE_OPTIONS \
$ADDITIONAL_CMAKE_OPTIONS $VCPKG_CMAKE_OPTIONS
shell: bash
- name: Build
working-directory: ${{runner.workspace}}/build
run: cmake --build . --config $BUILD_TYPE
shell: bash
- name: Test
working-directory: ${{runner.workspace}}/build
shell: bash
run: ctest -v -C $BUILD_TYPE