162 lines
4 KiB
YAML
162 lines
4 KiB
YAML
# SPDX-FileCopyrightText: James Turner <james@flightgear.org>
|
|
#
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
|
|
|
|
variables:
|
|
BUILD_DIR: "$CI_PROJECT_DIR/build"
|
|
PREFIX_DIR: "$CI_PROJECT_DIR/dist"
|
|
|
|
# create a root dir *above* the Simgear checkout, otherwise CMake
|
|
# complains about INTERFACE_INCLUDE_DIRECTORIES being the source dir
|
|
WIN_FG_DIR: $CI_BUILDS_DIR\flightgear
|
|
|
|
# FIXME detect this using vswhere
|
|
VS160COMNTOOLS: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\Common7\\Tools"
|
|
VCVARSALL: "${VS160COMNTOOLS}\\..\\..\\VC\\Auxiliary\\Build\\vcvarsall.bat"
|
|
VCVARSPLATFORM: "x64"
|
|
VCVARSVERSION: "14.29.30133"
|
|
|
|
|
|
linux-build:
|
|
image: registry.gitlab.com/flightgear/flightgear
|
|
stage: build
|
|
rules:
|
|
- if: $CI_PIPELINE_SOURCE != "schedule"
|
|
script:
|
|
- cmake -B $BUILD_DIR -S $CI_PROJECT_DIR -G Ninja
|
|
-DCMAKE_BUILD_TYPE=RelWithDebInfo
|
|
-DCMAKE_INSTALL_PREFIX=$PREFIX_DIR
|
|
- cmake --build $BUILD_DIR
|
|
- cmake --build $BUILD_DIR --target install
|
|
artifacts:
|
|
paths:
|
|
- dist
|
|
needs:
|
|
- project: flightgear/simgear
|
|
job: linux-build
|
|
artifacts: true
|
|
ref: next
|
|
|
|
|
|
windows-build:
|
|
stage: build
|
|
tags:
|
|
- windows
|
|
before_script:
|
|
- Invoke-Expression -Command .gitlab\vcvarsall.ps1
|
|
|
|
# relocate our upstream deps outside the source dir, otherwise
|
|
# CMake gets sad.
|
|
- Move-Item -Path $CI_PROJECT_DIR\boost $WIN_FG_DIR\boost
|
|
- Move-Item -Path $CI_PROJECT_DIR\msvc140 $WIN_FG_DIR\msvc140
|
|
- ls
|
|
script:
|
|
- cmake -B $env:BUILD_DIR -S $env:CI_PROJECT_DIR -G Ninja
|
|
-D CMAKE_BUILD_TYPE=RelWithDebInfo
|
|
-D CMAKE_INSTALL_PREFIX=$env:PREFIX_DIR
|
|
-D MSVC_3RDPARTY_ROOT=$WIN_FG_DIR
|
|
-DOSG_FSTREAM_EXPORT_FIXED:BOOL=ON
|
|
- cmake --build $BUILD_DIR
|
|
- cmake --build $BUILD_DIR --target install
|
|
needs:
|
|
- project: flightgear/simgear
|
|
job: windows-build
|
|
ref: next
|
|
artifacts: true
|
|
- project: flightgear/windows-3rd-party
|
|
job: windows_build_msvc140
|
|
ref: master
|
|
artifacts: true
|
|
artifacts:
|
|
paths:
|
|
- dist
|
|
|
|
macos-build:
|
|
stage: build
|
|
tags:
|
|
- saas-macos-medium-m1
|
|
image: macos-12-xcode-14
|
|
rules:
|
|
- if: $CI_PIPELINE_SOURCE != "schedule"
|
|
before_script:
|
|
- export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
|
|
- export HOMEBREW_NO_INSTALL_CLEANUP=1
|
|
- brew install ninja cmake boost
|
|
script:
|
|
- cmake -B $BUILD_DIR -S $CI_PROJECT_DIR -G Ninja
|
|
-DCMAKE_BUILD_TYPE=RelWithDebInfo
|
|
-DCMAKE_INSTALL_PREFIX=$PREFIX_DIR
|
|
-DCMAKE_OSX_ARCHITECTURES=arm64
|
|
- cmake --build $BUILD_DIR
|
|
- cmake --build $BUILD_DIR --target install
|
|
needs:
|
|
- project: flightgear/simgear
|
|
job: macos-build
|
|
ref: next
|
|
artifacts: true
|
|
artifacts:
|
|
paths:
|
|
- dist
|
|
cache:
|
|
paths:
|
|
- $BUILD_DIR
|
|
|
|
macos-x64-build:
|
|
stage: build
|
|
tags:
|
|
- saas-macos-medium-m1
|
|
image: macos-12-xcode-14
|
|
rules:
|
|
- if: $CI_PIPELINE_SOURCE != "schedule"
|
|
before_script:
|
|
- export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
|
|
- export HOMEBREW_NO_INSTALL_CLEANUP=1
|
|
- brew install ninja cmake boost
|
|
script:
|
|
- cmake -B $BUILD_DIR -S $CI_PROJECT_DIR -G Ninja
|
|
-DCMAKE_BUILD_TYPE=RelWithDebInfo
|
|
-DCMAKE_INSTALL_PREFIX=$PREFIX_DIR
|
|
-DCMAKE_OSX_ARCHITECTURES=x86_64
|
|
|
|
- cmake --build $BUILD_DIR
|
|
- cmake --build $BUILD_DIR --target install
|
|
needs:
|
|
- project: flightgear/simgear
|
|
job: macos-x64-build
|
|
ref: next
|
|
artifacts: true
|
|
artifacts:
|
|
paths:
|
|
- dist
|
|
cache:
|
|
paths:
|
|
- $BUILD_DIR
|
|
|
|
# test:doc:
|
|
# image: registry.gitlab.com/ahayzen/home-dash-alpha-g1
|
|
# stage: test
|
|
# rules:
|
|
# - if: $CI_PIPELINE_SOURCE != "schedule"
|
|
# script:
|
|
# - cargo test --all-features --doc
|
|
# - cargo test --all-features --all-targets
|
|
# cache:
|
|
# paths:
|
|
# - .cargo
|
|
# policy: pull
|
|
# dependencies:
|
|
# - build
|
|
|
|
|
|
# run tests using the binary built before
|
|
test:
|
|
image: registry.gitlab.com/flightgear/flightgear
|
|
stage: test
|
|
needs:
|
|
- job: linux-build
|
|
script:
|
|
- cd $BUILD_DIR
|
|
- ls
|
|
- ./bin/fgfs_test_suite
|
|
|