1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-01-11 00:39:59 +00:00
OpenMW/.gitlab-ci.yml

674 lines
20 KiB
YAML
Raw Normal View History

2022-06-08 19:05:13 +00:00
default:
interruptible: true
# Note: We set `needs` on each job to control the job DAG.
# See https://docs.gitlab.com/ee/ci/yaml/#needs
2018-06-22 15:14:09 +00:00
stages:
- build
2022-06-05 23:10:33 +00:00
- test
# https://blog.nimbleways.com/let-s-make-faster-gitlab-ci-cd-pipelines/
variables:
FF_USE_NEW_SHELL_ESCAPE: "true"
FF_USE_FASTZIP: "true"
# These can be specified per job or per pipeline
ARTIFACT_COMPRESSION_LEVEL: "fast"
CACHE_COMPRESSION_LEVEL: "fast"
.Ubuntu_Image:
2018-06-22 15:29:27 +00:00
tags:
- docker
- linux
2022-07-28 21:03:50 +00:00
image: ubuntu:22.04
rules:
2022-06-08 19:05:13 +00:00
- if: $CI_PIPELINE_SOURCE == "push"
.Ubuntu:
extends: .Ubuntu_Image
2018-06-12 12:46:19 +00:00
cache:
paths:
2018-06-22 15:13:09 +00:00
- apt-cache/
2020-01-07 06:49:53 +00:00
- ccache/
2018-06-22 15:20:38 +00:00
stage: build
variables:
CMAKE_EXE_LINKER_FLAGS: -fuse-ld=mold
2020-01-07 06:49:53 +00:00
script:
- df -h
2020-01-07 06:49:53 +00:00
- export CCACHE_BASEDIR="`pwd`"
- export CCACHE_DIR="`pwd`/ccache" && mkdir -pv "$CCACHE_DIR"
- ccache -z -M "${CCACHE_SIZE}"
- CI/before_script.linux.sh
- cd build
- cmake --build . -- -j $(nproc)
- df -h
- du -sh .
- find . | grep '\.o$' | xargs rm -f
- df -h
- du -sh .
- cmake --install .
- if [[ "${BUILD_TESTS_ONLY}" ]]; then ./openmw_test_suite --gtest_output="xml:tests.xml"; fi
- if [[ "${BUILD_TESTS_ONLY}" && ! "${BUILD_WITH_CODE_COVERAGE}" ]]; then ./openmw_detournavigator_navmeshtilescache_benchmark; fi
2020-01-07 06:49:53 +00:00
- ccache -s
- df -h
- if [[ "${BUILD_WITH_CODE_COVERAGE}" ]]; then gcovr --xml-pretty --exclude-unreachable-branches --print-summary --root "${CI_PROJECT_DIR}" -j $(nproc) -o ../coverage.xml; fi
- ls | grep -v -e '^extern$' -e '^install$' -e '^tests.xml$' | xargs -I '{}' rm -rf './{}'
- cd ..
- df -h
- du -sh build/
- du -sh build/install/
- du -sh apt-cache/
- du -sh ccache/
2018-06-22 15:20:38 +00:00
artifacts:
paths:
- build/install/
2021-04-09 14:51:44 +00:00
Coverity:
tags:
- docker
- linux
image: ubuntu:22.04
stage: build
rules:
- if: $CI_PIPELINE_SOURCE == "schedule"
cache:
key: Coverity.ubuntu_22.04.v1
paths:
- apt-cache/
- ccache/
variables:
CCACHE_SIZE: 2G
CC: clang
CXX: clang++
CMAKE_BUILD_TYPE: Debug
CMAKE_CXX_FLAGS_DEBUG: -O0
2021-04-09 14:51:44 +00:00
before_script:
2022-08-16 07:50:07 +00:00
- CI/install_debian_deps.sh clang openmw-deps openmw-deps-dynamic
- curl -o /tmp/cov-analysis-linux64.tgz https://scan.coverity.com/download/linux64
--form project=$COVERITY_SCAN_PROJECT_NAME --form token=$COVERITY_SCAN_TOKEN
2021-04-09 14:51:44 +00:00
- tar xfz /tmp/cov-analysis-linux64.tgz
script:
- export CCACHE_BASEDIR="$(pwd)"
- export CCACHE_DIR="$(pwd)/ccache"
- mkdir -pv "${CCACHE_DIR}"
- ccache -z -M "${CCACHE_SIZE}"
2021-04-09 14:51:44 +00:00
- CI/before_script.linux.sh
- cov-analysis-linux64-*/bin/cov-configure --template --comptype prefix --compiler ccache
2021-07-17 17:55:30 +00:00
# Remove the specific targets and build everything once we can do it under 3h
- cov-analysis-linux64-*/bin/cov-build --dir cov-int cmake --build build -- -j $(nproc)
- ccache -s
2021-04-09 14:51:44 +00:00
after_script:
- tar cfz cov-int.tar.gz cov-int
- curl https://scan.coverity.com/builds?project=$COVERITY_SCAN_PROJECT_NAME
--form token=$COVERITY_SCAN_TOKEN --form email=$GITLAB_USER_EMAIL
2021-12-20 17:31:39 +00:00
--form file=@cov-int.tar.gz --form version="$CI_COMMIT_REF_NAME:$CI_COMMIT_SHORT_SHA"
--form description="CI_COMMIT_SHORT_SHA / $CI_COMMIT_TITLE / $CI_COMMIT_REF_NAME:$CI_PIPELINE_ID"
artifacts:
paths:
- /builds/OpenMW/openmw/cov-int/build-log.txt
2021-04-09 14:51:44 +00:00
Ubuntu_GCC:
extends: .Ubuntu
cache:
2022-07-28 21:03:50 +00:00
key: Ubuntu_GCC.ubuntu_22.04.v1
before_script:
- CI/install_debian_deps.sh gcc openmw-deps openmw-deps-dynamic
variables:
CC: gcc
CXX: g++
CCACHE_SIZE: 4G
2020-11-17 16:45:13 +00:00
# When CCache doesn't exist (e.g. first build on a fork), build takes more than 1h, which is the default for forks.
timeout: 2h
Ubuntu_GCC_Debug:
extends: .Ubuntu
cache:
key: Ubuntu_GCC_Debug.ubuntu_22.04.v1
before_script:
- CI/install_debian_deps.sh gcc openmw-deps openmw-deps-dynamic
variables:
CC: gcc
CXX: g++
CCACHE_SIZE: 4G
CMAKE_BUILD_TYPE: Debug
CMAKE_CXX_FLAGS_DEBUG: -O0
# When CCache doesn't exist (e.g. first build on a fork), build takes more than 1h, which is the default for forks.
timeout: 2h
Ubuntu_GCC_tests:
extends: Ubuntu_GCC
cache:
2022-07-28 21:03:50 +00:00
key: Ubuntu_GCC_tests.ubuntu_22.04.v1
variables:
CCACHE_SIZE: 1G
BUILD_TESTS_ONLY: 1
artifacts:
paths: []
name: ${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHA}
when: always
reports:
junit: build/tests.xml
2022-06-08 19:05:13 +00:00
.Ubuntu_GCC_tests_Debug:
extends: Ubuntu_GCC
cache:
2022-07-28 21:03:50 +00:00
key: Ubuntu_GCC_tests_Debug.ubuntu_22.04.v1
variables:
CCACHE_SIZE: 1G
BUILD_TESTS_ONLY: 1
CMAKE_BUILD_TYPE: Debug
CMAKE_CXX_FLAGS_DEBUG: -g -O0 -D_GLIBCXX_ASSERTIONS
artifacts:
paths: []
name: ${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHA}
when: always
reports:
junit: build/tests.xml
Ubuntu_GCC_tests_asan:
extends: Ubuntu_GCC
cache:
2022-07-28 21:03:50 +00:00
key: Ubuntu_GCC_asan.ubuntu_22.04.v1
variables:
CCACHE_SIZE: 1G
BUILD_TESTS_ONLY: 1
CMAKE_BUILD_TYPE: Debug
CMAKE_CXX_FLAGS_DEBUG: -g -O1 -fno-omit-frame-pointer -fsanitize=address -fsanitize=pointer-compare -fsanitize=pointer-subtract -fsanitize=leak
CMAKE_EXE_LINKER_FLAGS: -fsanitize=address -fsanitize=pointer-compare -fsanitize=pointer-subtract -fsanitize=leak -fuse-ld=mold
ASAN_OPTIONS: halt_on_error=1:strict_string_checks=1:detect_stack_use_after_return=1:check_initialization_order=1:strict_init_order=1
artifacts:
paths: []
name: ${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHA}
when: always
reports:
junit: build/tests.xml
Ubuntu_GCC_tests_ubsan:
extends: Ubuntu_GCC
cache:
2022-07-28 21:03:50 +00:00
key: Ubuntu_GCC_ubsan.ubuntu_22.04.v1
variables:
CCACHE_SIZE: 1G
BUILD_TESTS_ONLY: 1
CMAKE_BUILD_TYPE: Debug
CMAKE_CXX_FLAGS_DEBUG: -g -O0 -fsanitize=undefined
UBSAN_OPTIONS: print_stacktrace=1:halt_on_error=1
artifacts:
paths: []
name: ${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHA}
when: always
reports:
junit: build/tests.xml
2022-06-08 19:05:13 +00:00
.Ubuntu_GCC_tests_tsan:
extends: Ubuntu_GCC
cache:
2022-07-28 21:03:50 +00:00
key: Ubuntu_GCC_tsan.ubuntu_22.04.v1
variables:
CCACHE_SIZE: 1G
BUILD_TESTS_ONLY: 1
CMAKE_BUILD_TYPE: Debug
CMAKE_CXX_FLAGS_DEBUG: -g -O2 -fno-omit-frame-pointer -fno-optimize-sibling-calls -fsanitize=thread -fPIE
CMAKE_EXE_LINKER_FLAGS: -pthread -pie -fsanitize=thread -fuse-ld=mold
TSAN_OPTIONS: second_deadlock_stack=1:halt_on_error=1
artifacts:
paths: []
name: ${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHA}
when: always
reports:
junit: build/tests.xml
Ubuntu_GCC_tests_coverage:
2022-06-08 19:05:13 +00:00
extends: .Ubuntu_GCC_tests_Debug
cache:
2022-07-28 21:03:50 +00:00
key: Ubuntu_GCC_tests_coverage.ubuntu_22.04.v1
variables:
BUILD_WITH_CODE_COVERAGE: 1
before_script:
- CI/install_debian_deps.sh gcc openmw-deps openmw-deps-dynamic openmw-coverage
coverage: /^\s*lines:\s*\d+.\d+\%/
artifacts:
paths: []
name: ${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHA}
when: always
reports:
2022-05-06 19:41:29 +00:00
coverage_report:
coverage_format: cobertura
path: coverage.xml
junit: build/tests.xml
2022-06-08 19:05:13 +00:00
.Ubuntu_Static_Deps:
extends: Ubuntu_Clang
rules:
2022-06-08 19:05:13 +00:00
- if: $CI_PIPELINE_SOURCE == "push"
changes:
- "**/CMakeLists.txt"
- "cmake/**/*"
- "CI/**/*"
- ".gitlab-ci.yml"
cache:
2022-07-28 21:03:50 +00:00
key: Ubuntu_Static_Deps.ubuntu_22.04.v1
paths:
- apt-cache/
- ccache/
- build/extern/fetched/
before_script:
- CI/install_debian_deps.sh clang openmw-deps openmw-deps-static
variables:
CI_OPENMW_USE_STATIC_DEPS: 1
CC: clang
CXX: clang++
CXXFLAGS: -O0
2021-07-29 18:44:11 +00:00
timeout: 3h
2022-06-08 19:05:13 +00:00
.Ubuntu_Static_Deps_tests:
extends: .Ubuntu_Static_Deps
cache:
2022-07-28 21:03:50 +00:00
key: Ubuntu_Static_Deps_tests.ubuntu_22.04.v1
variables:
CCACHE_SIZE: 1G
BUILD_TESTS_ONLY: 1
CC: clang
CXX: clang++
CXXFLAGS: -O0
artifacts:
paths: []
name: ${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHA}
when: always
reports:
junit: build/tests.xml
Ubuntu_Clang:
extends: .Ubuntu
before_script:
2022-07-31 13:52:01 +00:00
- CI/install_debian_deps.sh clang openmw-deps openmw-deps-dynamic
cache:
2022-07-31 13:52:01 +00:00
key: Ubuntu_Clang.ubuntu_22.04.v2
variables:
CC: clang
CXX: clang++
CCACHE_SIZE: 2G
# When CCache doesn't exist (e.g. first build on a fork), build takes more than 1h, which is the default for forks.
2022-07-28 21:03:50 +00:00
timeout: 3h
2022-07-31 13:52:01 +00:00
Ubuntu_Clang_Tidy:
extends: Ubuntu_Clang
before_script:
- CI/install_debian_deps.sh clang clang-tidy openmw-deps openmw-deps-dynamic
cache:
key: Ubuntu_Clang_Tidy.ubuntu_22.04.v1
variables:
CMAKE_BUILD_TYPE: Debug
CMAKE_CXX_FLAGS_DEBUG: -O0
CI_CLANG_TIDY: 1
# When CCache doesn't exist (e.g. first build on a fork), build takes more than 1h, which is the default for forks.
timeout: 3h
2022-06-08 19:05:13 +00:00
.Ubuntu_Clang_tests:
extends: Ubuntu_Clang
cache:
2022-07-28 21:03:50 +00:00
key: Ubuntu_Clang_tests.ubuntu_22.04.v1
variables:
CCACHE_SIZE: 1G
BUILD_TESTS_ONLY: 1
artifacts:
paths: []
name: ${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHA}
when: always
reports:
junit: build/tests.xml
Ubuntu_Clang_tests_Debug:
extends: Ubuntu_Clang
cache:
2022-07-28 21:03:50 +00:00
key: Ubuntu_Clang_tests_Debug.ubuntu_22.04.v1
variables:
CCACHE_SIZE: 1G
BUILD_TESTS_ONLY: 1
CMAKE_BUILD_TYPE: Debug
artifacts:
paths: []
name: ${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHA}
when: always
reports:
junit: build/tests.xml
2022-06-05 23:10:33 +00:00
Ubuntu_Clang_integration_tests:
extends: .Ubuntu_Image
stage: test
needs:
- Ubuntu_Clang
variables:
PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
cache:
2022-07-28 21:03:50 +00:00
key: Ubuntu_Clang_integration_tests.ubuntu_22.04.v1
2022-06-05 23:10:33 +00:00
paths:
- .cache/pip
- apt-cache/
before_script:
- CI/install_debian_deps.sh openmw-integration-tests
- pip3 install --user numpy matplotlib termtables click
script:
- CI/run_integration_tests.sh
.MacOS:
image: macos-11-xcode-12
2018-06-22 15:29:27 +00:00
tags:
- shared-macos-amd64
2018-06-22 15:20:38 +00:00
stage: build
only:
variables:
- $CI_PROJECT_ID == "7107382"
cache:
paths:
- ccache/
2018-06-23 13:50:58 +00:00
script:
- rm -fr build # remove the build directory
2021-04-16 11:36:45 +00:00
- CI/before_install.osx.sh
- export CCACHE_BASEDIR="$(pwd)"
- export CCACHE_DIR="$(pwd)/ccache"
- mkdir -pv "${CCACHE_DIR}"
2021-04-12 14:02:57 +00:00
- ccache -z -M "${CCACHE_SIZE}"
2018-06-23 13:50:58 +00:00
- CI/before_script.osx.sh
- cd build; make -j $(sysctl -n hw.logicalcpu) package
- for dmg in *.dmg; do mv "$dmg" "${dmg%.dmg}_${CI_COMMIT_REF_NAME##*/}_${CI_JOB_ID}.dmg"; done
2021-04-12 14:02:57 +00:00
- ccache -s
2018-06-22 15:20:38 +00:00
artifacts:
paths:
2018-06-27 11:57:51 +00:00
- build/OpenMW-*.dmg
2020-10-09 13:56:21 +00:00
- "build/**/*.log"
2018-06-27 11:57:51 +00:00
macOS12_Xcode13:
extends: .MacOS
image: macos-12-xcode-13
cache:
key: macOS12_Xcode13.v1
variables:
CCACHE_SIZE: 3G
2020-07-11 15:36:21 +00:00
.Windows_Ninja_Base:
2018-06-27 11:57:51 +00:00
tags:
2020-04-21 21:44:55 +00:00
- windows
rules:
2022-06-08 19:05:13 +00:00
- if: $CI_PIPELINE_SOURCE == "push"
before_script:
- Import-Module "$env:ChocolateyInstall\helpers\chocolateyProfile.psm1"
2020-10-21 23:30:39 +00:00
- choco source add -n=openmw-proxy -s="https://repo.openmw.org/repository/Chocolatey/" --priority=1
- choco source disable -n=chocolatey
- choco install git --force --params "/GitAndUnixToolsOnPath" -y
- choco install 7zip -y
2022-03-02 09:06:58 +00:00
- choco install ccache -y
- choco install cmake.install --installargs 'ADD_CMAKE_TO_PATH=System' -y
- choco install vswhere -y
- choco install ninja -y
- choco install python -y
- refreshenv
- |
function Make-SafeFileName {
param(
[Parameter(Mandatory=$true)]
[String]
$FileName
)
[IO.Path]::GetInvalidFileNameChars() | ForEach-Object {
$FileName = $FileName.Replace($_, '_')
}
return $FileName
}
stage: build
script:
- $time = (Get-Date -Format "HH:mm:ss")
- echo ${time}
- echo "started by ${GITLAB_USER_NAME}"
2022-03-02 09:06:58 +00:00
- $env:CCACHE_BASEDIR = Get-Location
- $env:CCACHE_DIR = "$(Get-Location)\ccache"
- New-Item -Type Directory -Force -Path $env:CCACHE_DIR
- sh CI/before_script.msvc.sh -c $config -p Win64 -v 2019 -k -V -N -b -t -C $multiview -E
- cd MSVC2019_64_Ninja
- .\ActivateMSVC.ps1
2022-06-14 20:43:49 +00:00
- cmake --build . --config $config
2022-03-02 09:06:58 +00:00
- ccache --show-stats
- cd $config
2021-02-12 19:21:07 +00:00
- echo "CI_COMMIT_REF_NAME ${CI_COMMIT_REF_NAME}`nCI_JOB_ID ${CI_JOB_ID}`nCI_COMMIT_SHA ${CI_COMMIT_SHA}" | Out-File -Encoding UTF8 CI-ID.txt
- Get-ChildItem -Recurse *.ilk | Remove-Item
- |
if (Get-ChildItem -Recurse *.pdb) {
2022-06-14 20:43:49 +00:00
7z a -tzip "..\..\$(Make-SafeFileName("OpenMW_MSVC2019_64_${config}_${CI_COMMIT_REF_NAME}_${CI_JOB_ID}_symbols.zip"))" '*.pdb' CI-ID.txt
Get-ChildItem -Recurse *.pdb | Remove-Item
}
2022-06-14 20:43:49 +00:00
- 7z a -tzip "..\..\$(Make-SafeFileName("OpenMW_MSVC2019_64_${config}_${CI_COMMIT_REF_NAME}.zip"))" '*'
- if ($executables) { foreach ($exe in $executables.Split(',')) { & .\$exe } }
after_script:
- Copy-Item C:\ProgramData\chocolatey\logs\chocolatey.log
cache:
key: ninja-v4
paths:
2022-03-02 09:06:58 +00:00
- ccache
- deps
- MSVC2019_64_Ninja/deps/Qt
artifacts:
when: always
paths:
2020-06-27 01:08:25 +00:00
- "*.zip"
- "*.log"
2020-07-11 21:46:12 +00:00
- MSVC2019_64_Ninja/*.log
- MSVC2019_64_Ninja/*/*.log
- MSVC2019_64_Ninja/*/*/*.log
- MSVC2019_64_Ninja/*/*/*/*.log
- MSVC2019_64_Ninja/*/*/*/*/*.log
- MSVC2019_64_Ninja/*/*/*/*/*/*.log
- MSVC2019_64_Ninja/*/*/*/*/*/*/*.log
- MSVC2019_64_Ninja/*/*/*/*/*/*/*/*.log
# When CCache doesn't exist (e.g. first build on a fork), build takes more than 1h, which is the default for forks.
timeout: 2h
2022-06-08 19:05:13 +00:00
2022-06-14 20:43:49 +00:00
.Windows_Ninja_Release:
extends:
- .Windows_Ninja_Base
variables:
config: "Release"
2022-06-14 20:43:49 +00:00
.Windows_Ninja_Release_MultiView:
extends:
- .Windows_Ninja_Base
variables:
multiview: "-M"
config: "Release"
2022-06-14 20:43:49 +00:00
.Windows_Ninja_Debug:
extends:
- .Windows_Ninja_Base
variables:
config: "Debug"
2022-06-14 20:43:49 +00:00
.Windows_Ninja_RelWithDebInfo:
extends:
- .Windows_Ninja_Base
variables:
config: "RelWithDebInfo"
# Gitlab can't successfully execute following binaries due to unknown reason
# executables: "openmw_test_suite.exe,openmw_detournavigator_navmeshtilescache_benchmark.exe"
2020-07-11 15:36:21 +00:00
.Windows_MSBuild_Base:
tags:
- windows
rules:
2022-06-08 19:05:13 +00:00
- if: $CI_PIPELINE_SOURCE == "push"
before_script:
- Import-Module "$env:ChocolateyInstall\helpers\chocolateyProfile.psm1"
2020-10-21 23:30:39 +00:00
- choco source add -n=openmw-proxy -s="https://repo.openmw.org/repository/Chocolatey/" --priority=1
- choco source disable -n=chocolatey
- choco install git --force --params "/GitAndUnixToolsOnPath" -y
- choco install 7zip -y
2022-03-02 09:06:58 +00:00
- choco install ccache -y
- choco install cmake.install --installargs 'ADD_CMAKE_TO_PATH=System' -y
- choco install vswhere -y
- choco install python -y
- refreshenv
- |
function Make-SafeFileName {
param(
[Parameter(Mandatory=$true)]
[String]
$FileName
)
[IO.Path]::GetInvalidFileNameChars() | ForEach-Object {
$FileName = $FileName.Replace($_, '_')
}
return $FileName
}
2018-06-27 11:57:51 +00:00
stage: build
script:
- $time = (Get-Date -Format "HH:mm:ss")
- echo ${time}
- echo "started by ${GITLAB_USER_NAME}"
2022-03-02 09:06:58 +00:00
- $env:CCACHE_BASEDIR = Get-Location
- $env:CCACHE_DIR = "$(Get-Location)\ccache"
- New-Item -Type Directory -Force -Path $env:CCACHE_DIR
- sh CI/before_script.msvc.sh -c $config -p Win64 -v 2019 -k -V -b -t -C $multiview -E
- cd MSVC2019_64
2022-06-14 20:43:49 +00:00
- cmake --build . --config $config
2022-03-02 09:06:58 +00:00
- ccache --show-stats
- cd $config
2021-02-12 19:21:07 +00:00
- echo "CI_COMMIT_REF_NAME ${CI_COMMIT_REF_NAME}`nCI_JOB_ID ${CI_JOB_ID}`nCI_COMMIT_SHA ${CI_COMMIT_SHA}" | Out-File -Encoding UTF8 CI-ID.txt
- Get-ChildItem -Recurse *.ilk | Remove-Item
- |
if (Get-ChildItem -Recurse *.pdb) {
2022-06-14 20:43:49 +00:00
7z a -tzip "..\..\$(Make-SafeFileName("OpenMW_MSVC2019_64_${config}_${CI_COMMIT_REF_NAME}_${CI_JOB_ID}_symbols.zip"))" '*.pdb' CI-ID.txt
Get-ChildItem -Recurse *.pdb | Remove-Item
}
2022-06-14 20:43:49 +00:00
- 7z a -tzip "..\..\$(Make-SafeFileName("OpenMW_MSVC2019_64_${config}_${CI_COMMIT_REF_NAME}.zip"))" '*'
- if ($executables) { foreach ($exe in $executables.Split(',')) { & .\$exe } }
after_script:
- Copy-Item C:\ProgramData\chocolatey\logs\chocolatey.log
2018-06-27 11:57:51 +00:00
cache:
key: msbuild-v4
2018-06-27 11:57:51 +00:00
paths:
2022-03-02 09:06:58 +00:00
- ccache
2018-06-27 13:25:23 +00:00
- deps
- MSVC2019_64/deps/Qt
2018-06-27 11:57:51 +00:00
artifacts:
when: always
2018-06-27 11:57:51 +00:00
paths:
2020-06-27 01:08:25 +00:00
- "*.zip"
- "*.log"
2020-07-11 21:46:12 +00:00
- MSVC2019_64/*.log
- MSVC2019_64/*/*.log
- MSVC2019_64/*/*/*.log
- MSVC2019_64/*/*/*/*.log
- MSVC2019_64/*/*/*/*/*.log
- MSVC2019_64/*/*/*/*/*/*.log
- MSVC2019_64/*/*/*/*/*/*/*.log
- MSVC2019_64/*/*/*/*/*/*/*/*.log
# When CCache doesn't exist (e.g. first build on a fork), build takes more than 1h, which is the default for forks.
timeout: 2h
2020-07-11 15:36:21 +00:00
2022-06-14 20:43:49 +00:00
.Windows_MSBuild_Release:
extends:
- .Windows_MSBuild_Base
variables:
config: "Release"
# temporarily disabled while this isn't the thing we link on the downloads page
# rules:
# # run this for both pushes and schedules so 'latest successful pipeline for branch' always includes it
# - if: $CI_PIPELINE_SOURCE == "push"
# - if: $CI_PIPELINE_SOURCE == "schedule"
2022-06-14 20:43:49 +00:00
.Windows_MSBuild_Debug:
extends:
- .Windows_MSBuild_Base
variables:
config: "Debug"
2022-06-14 20:43:49 +00:00
Windows_MSBuild_RelWithDebInfo:
extends:
- .Windows_MSBuild_Base
variables:
config: "RelWithDebInfo"
# Gitlab can't successfully execute following binaries due to unknown reason
# executables: "openmw_test_suite.exe,openmw_detournavigator_navmeshtilescache_benchmark.exe"
# temporarily enabled while we're linking these on the downloads page
rules:
# run this for both pushes and schedules so 'latest successful pipeline for branch' always includes it
- if: $CI_PIPELINE_SOURCE == "push"
- if: $CI_PIPELINE_SOURCE == "schedule"
.Ubuntu_AndroidNDK_arm64-v8a:
2020-10-19 08:27:38 +00:00
tags:
- linux
image: psi29a/android-ndk:focal-ndk22
rules:
2022-06-08 19:05:13 +00:00
- if: $CI_PIPELINE_SOURCE == "push"
2020-10-19 08:27:38 +00:00
variables:
CCACHE_SIZE: 3G
cache:
key: Ubuntu__Focal_AndroidNDK_r22b_arm64-v8a.v2
2020-10-19 08:27:38 +00:00
paths:
- apt-cache/
- ccache/
- build/extern/fetched/
2020-10-19 08:27:38 +00:00
before_script:
2022-07-31 18:02:32 +00:00
- CI/install_debian_deps.sh android
2020-10-19 08:27:38 +00:00
stage: build
script:
- df -h
2020-10-19 08:27:38 +00:00
- export CCACHE_BASEDIR="`pwd`"
- export CCACHE_DIR="`pwd`/ccache" && mkdir -pv "$CCACHE_DIR"
- ccache -z -M "${CCACHE_SIZE}"
- CI/before_install.android.sh
- CI/before_script.android.sh
- cd build
- cmake --build . -- -j $(nproc)
2022-07-06 07:56:31 +00:00
# - cmake --install . # no one uses builds anyway, disable until 'no space left' is resolved
2020-10-19 08:27:38 +00:00
- ccache -s
- df -h
- ls | grep -v -e '^extern$' -e '^install$' | xargs -I '{}' rm -rf './{}'
- cd ..
- df -h
- du -sh build/
2022-07-06 08:41:54 +00:00
# - du -sh build/install/ # no install dir because it's commented out above
- du -sh apt-cache/
- du -sh ccache/
- du -sh build/extern/fetched/
2020-10-19 08:27:38 +00:00
artifacts:
paths:
- build/install/
# When CCache doesn't exist (e.g. first build on a fork), build takes more than 1h, which is the default for forks.
timeout: 1h30m
2021-05-21 15:07:55 +00:00
2022-06-08 19:05:13 +00:00
.FindMissingMergeRequests:
2021-11-03 15:31:21 +00:00
image: python:latest
stage: build
rules:
- if: '$CI_PIPELINE_SOURCE == "schedule"'
variables:
PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
cache:
key: FindMissingMergeRequests.v1
paths:
- .cache/pip
before_script:
- pip3 install --user requests click discord_webhook
script:
- scripts/find_missing_merge_requests.py --project_id=$CI_PROJECT_ID --ignored_mrs_path=$CI_PROJECT_DIR/.resubmitted_merge_requests.txt
2022-06-30 13:06:28 +00:00
2022-08-17 06:59:43 +00:00
.flatpak:
2022-06-30 13:06:28 +00:00
image: 'docker.io/bilelmoussaoui/flatpak-github-actions'
stage: build
script:
- flatpak install -y flathub org.kde.Platform/x86_64/5.15-21.08
- flatpak install -y flathub org.kde.Sdk/x86_64/5.15-21.08
- flatpak-builder --ccache --force-clean --repo=repo build CI/org.openmw.OpenMW.devel.yaml
- flatpak build-bundle ./repo openmw.flatpak org.openmw.OpenMW.devel
cache:
key: flatpak
paths:
- ".flatpak-builder"
artifacts:
untracked: false
paths:
- "openmw.flatpak"
# When CCache doesn't exist (e.g. first build on a fork), build takes more than 1h, which is the default for forks.
# Flatpak Builds compile all dependencies aswell so need more time. Build results of libraries are cached
2022-08-17 06:59:43 +00:00
timeout: 4h