summaryrefslogtreecommitdiff
path: root/.github/workflows
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows')
-rw-r--r--.github/workflows/ci-build.yml170
1 files changed, 121 insertions, 49 deletions
diff --git a/.github/workflows/ci-build.yml b/.github/workflows/ci-build.yml
index 8786c079b..31d0b511d 100644
--- a/.github/workflows/ci-build.yml
+++ b/.github/workflows/ci-build.yml
@@ -6,29 +6,38 @@ on:
branches:
- master
+env:
+ CTEST_OUTPUT_ON_FAILURE: 1
+
jobs:
linux:
name: Linux
- runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
- compiler: [clang, gcc]
include:
- compiler: clang
cxxcompiler: clang++
- compiler: gcc
cxxcompiler: g++
+
+ runs-on: ubuntu-20.04
env:
- CTEST_OUTPUT_ON_FAILURE: 1
CC: ${{ matrix.compiler }}
CXX: ${{ matrix.cxxcompiler }}
steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+
- name: Install dependencies
run: |
+ echo "::group::Update apt"
sudo apt-get update
+ echo "::endgroup::"
+
+ echo "::group::Install dependencies"
sudo apt-get install -y --no-install-recommends \
libfontconfig-dev \
libicu-dev \
@@ -39,104 +48,167 @@ jobs:
libxdg-basedir-dev \
zlib1g-dev \
# EOF
-
- - name: Checkout
- uses: actions/checkout@v2
+ echo "::endgroup::"
+ env:
+ DEBIAN_FRONTEND: noninteractive
- name: Get OpenGFX
run: |
mkdir -p ~/.local/share/openttd/baseset
cd ~/.local/share/openttd/baseset
+
+ echo "::group::Download OpenGFX"
curl -L https://cdn.openttd.org/opengfx-releases/0.6.0/opengfx-0.6.0-all.zip -o opengfx-all.zip
+ echo "::endgroup::"
+
+ echo "::group::Unpack OpenGFX"
unzip opengfx-all.zip
+ echo "::endgroup::"
+
rm -f opengfx-all.zip
- - name: CMake
- run: mkdir build && cd build && cmake ..
+ - name: Install GCC problem matcher
+ uses: ammaraskar/gcc-problem-matcher@master
- - uses: ammaraskar/gcc-problem-matcher@master
- name: Build
- run: cd build && make -j2
+ run: |
+ mkdir build
+ cd build
+
+ echo "::group::CMake"
+ cmake ..
+ echo "::endgroup::"
+
+ echo "::group::Build"
+ echo "Running on $(nproc) cores"
+ make -j$(nproc)
+ echo "::endgroup::"
- name: Test
- run: cd build && make -j2 test
+ run: |
+ cd build
+ make -j$(nproc) test
- windows:
- name: Windows
+ macos:
+ name: Mac OS
- runs-on: windows-latest
strategy:
fail-fast: false
matrix:
- arch: [x86, x64]
+ include:
+ - arch: x64
+ full_arch: x86_64
+
+ runs-on: macos-latest
+ env:
+ MACOSX_DEPLOYMENT_TARGET: 10.9
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Prepare vcpkg (with cache)
- uses: lukka/run-vcpkg@v4
+ uses: lukka/run-vcpkg@v6
with:
- vcpkgDirectory: 'c:/vcpkg'
+ vcpkgDirectory: '/usr/local/share/vcpkg'
doNotUpdateVcpkg: true
- vcpkgArguments: 'liblzma libpng lzo zlib'
- vcpkgTriplet: '${{ matrix.arch }}-windows-static'
-
- - uses: ammaraskar/msvc-problem-matcher@master
- - name: 'Build'
- uses: lukka/run-cmake@v3
- with:
- cmakeListsOrSettingsJson: CMakeListsTxtBasic
- useVcpkgToolchainFile: true
- buildDirectory: '${{ runner.workspace }}/build'
+ vcpkgArguments: 'freetype liblzma lzo'
+ vcpkgTriplet: '${{ matrix.arch }}-osx'
- name: Install OpenGFX
run: |
- mkdir -p "C:/Users/Public/Documents/OpenTTD/baseset"
- cd "C:/Users/Public/Documents/OpenTTD/baseset"
+ mkdir -p ~/Documents/OpenTTD/baseset
+ cd ~/Documents//OpenTTD/baseset
+
+ echo "::group::Download OpenGFX"
curl -L https://cdn.openttd.org/opengfx-releases/0.6.0/opengfx-0.6.0-all.zip -o opengfx-all.zip
+ echo "::endgroup::"
+
+ echo "::group::Unpack OpenGFX"
unzip opengfx-all.zip
+ echo "::endgroup::"
+
rm -f opengfx-all.zip
- shell: bash
+
+ - name: Install GCC problem matcher
+ uses: ammaraskar/gcc-problem-matcher@master
+
+ - name: Build
+ run: |
+ mkdir build
+ cd build
+
+ echo "::group::CMake"
+ cmake ${GITHUB_WORKSPACE} \
+ -DCMAKE_OSX_ARCHITECTURES=${{ matrix.full_arch }} \
+ -DVCPKG_TARGET_TRIPLET=${{ matrix.arch }}-osx \
+ -DCMAKE_TOOLCHAIN_FILE=/usr/local/share/vcpkg/scripts/buildsystems/vcpkg.cmake \
+ # EOF
+ echo "::endgroup::"
+
+ echo "::group::Build"
+ echo "Running on $(sysctl -n hw.logicalcpu) cores"
+ make -j$(sysctl -n hw.logicalcpu)
+ echo "::endgroup::"
- name: Test
run: |
- cd ${{ runner.workspace }}/build
- ctest -C Debug
+ cd build
+ make -j$(sysctl -n hw.logicalcpu) test
- macos:
- name: Mac OS
+ windows:
+ name: Windows
- runs-on: macos-latest
strategy:
fail-fast: false
- env:
- CTEST_OUTPUT_ON_FAILURE: 1
- MACOSX_DEPLOYMENT_TARGET: 10.9
+ matrix:
+ include:
+ - arch: x86
+ - arch: x64
+
+ runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- - name: Install dependencies
- run: brew install pkg-config lzo xz libpng freetype
- env:
- HOMEBREW_NO_AUTO_UPDATE: 1
+ - name: Prepare vcpkg (with cache)
+ uses: lukka/run-vcpkg@v6
+ with:
+ vcpkgDirectory: 'c:/vcpkg'
+ doNotUpdateVcpkg: true
+ vcpkgArguments: 'liblzma libpng lzo zlib'
+ vcpkgTriplet: '${{ matrix.arch }}-windows-static'
- name: Install OpenGFX
+ shell: bash
run: |
- mkdir -p ~/Documents/OpenTTD/baseset
- cd ~/Documents//OpenTTD/baseset
+ mkdir -p "C:/Users/Public/Documents/OpenTTD/baseset"
+ cd "C:/Users/Public/Documents/OpenTTD/baseset"
+
+ echo "::group::Download OpenGFX"
curl -L https://cdn.openttd.org/opengfx-releases/0.6.0/opengfx-0.6.0-all.zip -o opengfx-all.zip
+ echo "::endgroup::"
+
+ echo "::group::Unpack OpenGFX"
unzip opengfx-all.zip
+ echo "::endgroup::"
+
rm -f opengfx-all.zip
- - name: CMake
- run: mkdir build && cd build && cmake ..
+ - name: Install MSVC problem matcher
+ uses: ammaraskar/msvc-problem-matcher@master
- - uses: ammaraskar/gcc-problem-matcher@master
- name: Build
- run: cd build && make -j2
+ uses: lukka/run-cmake@v3
+ with:
+ cmakeListsOrSettingsJson: CMakeListsTxtAdvanced
+ useVcpkgToolchainFile: true
+ buildDirectory: '${{ github.workspace }}/build'
+ cmakeAppendedArgs: ' -GNinja'
- name: Test
- run: cd build && make -j2 test
+ shell: bash
+ run: |
+ cd ${GITHUB_WORKSPACE}/build
+ ctest -C Debug