OpenTTD-patches/.github/workflows/ci-build.yml

275 lines
6.6 KiB
YAML
Raw Normal View History

2019-10-05 20:25:07 +00:00
name: CI
on:
pull_request:
push:
branches:
- master
env:
CTEST_OUTPUT_ON_FAILURE: 1
2019-10-05 20:25:07 +00:00
jobs:
emscripten:
name: Emscripten
runs-on: ubuntu-20.04
container:
# If you change this version, change the number in the cache step too.
image: emscripten/emsdk:2.0.10
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Setup cache
uses: actions/cache@v2
with:
path: /emsdk/upstream/emscripten/cache
key: 2.0.10-${{ runner.os }}
- name: Build (host tools)
run: |
mkdir build-host
cd build-host
echo "::group::CMake"
cmake .. -DOPTION_TOOLS_ONLY=ON
echo "::endgroup::"
echo "::group::Build"
echo "Running on $(nproc) cores"
make -j$(nproc) tools
echo "::endgroup::"
- name: Install GCC problem matcher
uses: ammaraskar/gcc-problem-matcher@master
- name: Build
run: |
mkdir build
cd build
echo "::group::CMake"
emcmake cmake .. -DHOST_BINARY_DIR=../build-host
echo "::endgroup::"
echo "::group::Build"
echo "Running on $(nproc) cores"
emmake make -j$(nproc)
echo "::endgroup::"
2019-10-05 20:25:07 +00:00
linux:
name: Linux
strategy:
fail-fast: false
matrix:
include:
- compiler: clang
cxxcompiler: clang++
- compiler: gcc
cxxcompiler: g++
runs-on: ubuntu-20.04
2019-10-05 20:25:07 +00:00
env:
CC: ${{ matrix.compiler }}
CXX: ${{ matrix.cxxcompiler }}
steps:
- name: Checkout
uses: actions/checkout@v2
2019-10-05 20:25:07 +00:00
- name: Install dependencies
run: |
echo "::group::Update apt"
sudo apt-get update
echo "::endgroup::"
echo "::group::Install dependencies"
2019-10-05 20:25:07 +00:00
sudo apt-get install -y --no-install-recommends \
libfontconfig-dev \
libicu-dev \
liblzma-dev \
liblzo2-dev \
libsdl1.2-dev \
libsdl2-dev \
zlib1g-dev \
# EOF
echo "::endgroup::"
env:
DEBIAN_FRONTEND: noninteractive
2019-10-05 20:25:07 +00:00
- name: Get OpenGFX
run: |
mkdir -p ~/.local/share/openttd/baseset
cd ~/.local/share/openttd/baseset
echo "::group::Download OpenGFX"
2019-10-05 20:25:07 +00:00
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"
2019-10-05 20:25:07 +00:00
unzip opengfx-all.zip
echo "::endgroup::"
2019-10-05 20:25:07 +00:00
rm -f opengfx-all.zip
- name: Install GCC problem matcher
uses: ammaraskar/gcc-problem-matcher@master
2019-10-05 20:25:07 +00:00
- name: Build
run: |
mkdir build
cd build
echo "::group::CMake"
cmake ..
echo "::endgroup::"
echo "::group::Build"
echo "Running on $(nproc) cores"
make -j$(nproc)
echo "::endgroup::"
2019-10-05 20:25:07 +00:00
- name: Test
run: |
cd build
make -j$(nproc) test
2019-10-05 20:25:07 +00:00
macos:
name: Mac OS
2019-10-05 20:25:07 +00:00
strategy:
fail-fast: false
matrix:
include:
- arch: x64
full_arch: x86_64
runs-on: macos-latest
env:
MACOSX_DEPLOYMENT_TARGET: 10.9
2019-10-05 20:25:07 +00:00
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Prepare vcpkg (with cache)
uses: lukka/run-vcpkg@v6
2019-10-05 20:25:07 +00:00
with:
vcpkgDirectory: '/usr/local/share/vcpkg'
doNotUpdateVcpkg: false
vcpkgGitCommitId: 2a42024b53ebb512fb5dd63c523338bf26c8489c
vcpkgArguments: 'liblzma lzo'
vcpkgTriplet: '${{ matrix.arch }}-osx'
2019-10-05 20:25:07 +00:00
- name: Install OpenGFX
run: |
mkdir -p ~/Documents/OpenTTD/baseset
cd ~/Documents//OpenTTD/baseset
echo "::group::Download OpenGFX"
2019-10-05 20:25:07 +00:00
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"
2019-10-05 20:25:07 +00:00
unzip opengfx-all.zip
echo "::endgroup::"
2019-10-05 20:25:07 +00:00
rm -f opengfx-all.zip
- 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::"
2019-10-05 20:25:07 +00:00
- name: Test
run: |
cd build
make -j$(sysctl -n hw.logicalcpu) test
2019-10-05 20:25:07 +00:00
windows:
name: Windows
2019-10-05 20:25:07 +00:00
strategy:
fail-fast: false
matrix:
os: [windows-latest, windows-2016]
arch: [x86, x64]
runs-on: ${{ matrix.os }}
2019-10-05 20:25:07 +00:00
steps:
- name: Checkout
uses: actions/checkout@v2
# "restore-cache" which is done by "run-vcpkg" uses Windows tar.
# A git clone on windows marks a few files as read-only; when Windows tar
# tries to extract the cache over this folder, it fails, despite the files
# being identical. This failure shows up as an warning in the logs. We
# avoid this by simply removing the read-only mark from the git folder.
# In other words: this is a hack!
# See: https://github.com/lukka/run-vcpkg/issues/61
- name: Remove read-only flag from vcpkg git folder
shell: powershell
run: |
attrib -r "c:\vcpkg\.git\*.*" /s
- 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'
2019-10-05 20:25:07 +00:00
- name: Install OpenGFX
shell: bash
2019-10-05 20:25:07 +00:00
run: |
mkdir -p "C:/Users/Public/Documents/OpenTTD/baseset"
cd "C:/Users/Public/Documents/OpenTTD/baseset"
echo "::group::Download OpenGFX"
2019-10-05 20:25:07 +00:00
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"
2019-10-05 20:25:07 +00:00
unzip opengfx-all.zip
echo "::endgroup::"
2019-10-05 20:25:07 +00:00
rm -f opengfx-all.zip
- name: Install MSVC problem matcher
uses: ammaraskar/msvc-problem-matcher@master
2019-10-05 20:25:07 +00:00
- name: Build
uses: lukka/run-cmake@v3
with:
cmakeListsOrSettingsJson: CMakeListsTxtAdvanced
useVcpkgToolchainFile: true
buildDirectory: '${{ github.workspace }}/build'
cmakeAppendedArgs: ' -GNinja'
2019-10-05 20:25:07 +00:00
- name: Test
shell: bash
run: |
cd ${GITHUB_WORKSPACE}/build
ctest -C Debug