Urho3D/.travis.yml
2020-08-31 01:40:48 +08:00

407 lines
20 KiB
YAML

#
# Copyright (c) 2008-2020 the Urho3D project.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
#
---
dist: trusty
addons: {apt: {packages: [docker-ce]}}
cache: {directories: [$HOME/urho3d_home_dir/.ccache]}
env:
global:
- secure: SLJCjkjDsTMbCIV9Wecz5JATnhk0fuzlnLMeZdvvFDv+8NL8cXyutkU0VfyRSLf3HSD1Js79a6fRMROyVGWj/w/BRrjqGnZzsB6+ZeJNnadiVIF5Gh+w90We5ccvSp2G4DyYgwkNnkKlJK7zNEWGu/K+bHL1EOCA+EIVrFMyA44=
- secure: ecj/PwpbHkH9AYFsc2TMeRuNm5E3xMM8A0x4AcGhzpwDuZWdFx3R1T4G9u45Z5aUyTJWGqOeX1JPaEVVFZuYnNBKRy0kmiUrM9EE0j7WsT57K48tP1ysn2ynyvHgbYkKOfYR0t8XAMWTBbulT9DVVk3DS69//2WgiXGDVUEJTyI=
- numjobs=4
- URHO3D_DEPLOYMENT_TARGET=generic
matrix:
# Linux native 64-bit
- LINUX=1 URHO3D_LIB_TYPE=STATIC URHO3D_UPDATE_SOURCE_TREE=1 SF_DEFAULT=linux:Linux-64bit-STATIC.tar.gz # GCC
- LINUX=1 URHO3D_LIB_TYPE=SHARED
- LINUX=1 URHO3D_LIB_TYPE=STATIC CC=clang CXX=clang++ # Clang
- LINUX=1 URHO3D_LIB_TYPE=SHARED CC=clang CXX=clang++
- LINUX=1 URHO3D_LIB_TYPE=STATIC URHO3D_SSL=1
- LINUX=1 URHO3D_LIB_TYPE=SHARED URHO3D_SSL=1
- LINUX=1 URHO3D_LIB_TYPE=STATIC URHO3D_SSL=1 URHO3D_SSL_DYNAMIC=1
- LINUX=1 URHO3D_LIB_TYPE=SHARED URHO3D_SSL=1 URHO3D_SSL_DYNAMIC=1
# Linux native 32-bit
- LINUX=1 URHO3D_LIB_TYPE=STATIC URHO3D_64BIT=0
- LINUX=1 URHO3D_LIB_TYPE=SHARED URHO3D_64BIT=0
- LINUX=1 URHO3D_LIB_TYPE=STATIC URHO3D_64BIT=0 CC=clang CXX=clang++
- LINUX=1 URHO3D_LIB_TYPE=SHARED URHO3D_64BIT=0 CC=clang CXX=clang++
# MinGW cross-compiling 64-bit
- MINGW=1 URHO3D_LIB_TYPE=STATIC # OpenGL
- MINGW=1 URHO3D_LIB_TYPE=SHARED
- MINGW=1 URHO3D_LIB_TYPE=STATIC URHO3D_OPENGL=0 # D3D9
- MINGW=1 URHO3D_LIB_TYPE=SHARED URHO3D_OPENGL=0
- MINGW=1 URHO3D_LIB_TYPE=STATIC URHO3D_D3D11=1 # D3D11
- MINGW=1 URHO3D_LIB_TYPE=SHARED URHO3D_D3D11=1
# MinGW cross-compiling 32-bit
- MINGW=1 URHO3D_LIB_TYPE=STATIC URHO3D_64BIT=0
- MINGW=1 URHO3D_LIB_TYPE=SHARED URHO3D_64BIT=0
- MINGW=1 URHO3D_LIB_TYPE=STATIC URHO3D_OPENGL=0 URHO3D_64BIT=0
- MINGW=1 URHO3D_LIB_TYPE=SHARED URHO3D_OPENGL=0 URHO3D_64BIT=0
- MINGW=1 URHO3D_LIB_TYPE=STATIC URHO3D_D3D11=1 URHO3D_64BIT=0
- MINGW=1 URHO3D_LIB_TYPE=SHARED URHO3D_D3D11=1 URHO3D_64BIT=0
stage: release build configuration
before_script:
- rake ci_timer
# Rely on git directly to detect the commit message and the release tag instead of using the corresponding Travis's environment variable because we may be querying for different commit SHA
- if [[ "$TRAVIS_PULL_REQUEST" == "false" ]]; then export COMMIT_MESSAGE=$(git log --format=%B -n 1 $TRAVIS_COMMIT); fi
- export TAG=$(git describe --exact-match $TRAVIS_COMMIT 2>/dev/null); if [[ $TAG =~ [[:digit:]]+\.[[:digit:]]+ ]]; then export RELEASE_TAG=$TAG; fi
# Travis-CI has a special case handling for release tag where it checks out directly from the tag branch instead of the default 'master' branch
- if [[ $RELEASE_TAG ]] || ([[ "$TRAVIS_BRANCH" == "master" ]] && [[ "$TRAVIS_PULL_REQUEST" == "false" ]]); then if [[ ${TRAVIS_JOB_NUMBER##*.} == 1 ]]; then export SITE_UPDATE=1; fi; if [[ ! $CC ]] && [[ ! $CMAKE_BUILD_TYPE ]] && ([[ $RELEASE_TAG ]] || echo $COMMIT_MESSAGE |grep -cq '\[ci package\]'); then export PACKAGE_UPLOAD=1; fi; fi
- if [[ $URHO3D_BINDINGS ]]; then git clone --depth 1 https://github.com/urho3d/llvm-clang.git && export LLVM_CLANG_ROOT=$(pwd)/llvm-clang; fi
- if [[ $LINUX ]]; then export PLATFORM=native; else export PLATFORM=mingw; fi
- rake ci_setup_cache
script: script/dockerized.sh $PLATFORM rake ci && if [[ $SITE_UPDATE ]]; then script/dockerized.sh $PLATFORM rake ci_site_update; fi && if [[ $PACKAGE_UPLOAD ]]; then script/dockerized.sh $PLATFORM rake ci_package_upload; fi && rake ci_timer
after_script: if [[ ${TRAVIS_JOB_NUMBER##*.} == 1 ]] && [[ "$TRAVIS_PULL_REQUEST" == "false" ]]; then rake ci_create_mirrors; fi
notifications: {email: {on_success: never, on_failure: change}}
# Below are our custom data to preset build stages for other documents in this YAML stream, we do this because YAML anchor cannot be referenced across document boundary
data:
stages:
base: &base
addons:
before_script:
after_script:
housekeep:
<<: *base
cache:
before_cache:
env:
before_script: export TAG=$(git describe --exact-match $TRAVIS_COMMIT~ 2>/dev/null); if [[ $TAG =~ [[:digit:]]+\.[[:digit:]]+ ]]; then export RELEASE_TAG=$TAG; fi
script: rake ci_delete_mirror
matrix:
fast_finish: true
include:
- &debug-build-stage
stage: debug build configuration
env: LINUX=1 URHO3D_LIB_TYPE=STATIC CMAKE_BUILD_TYPE=Debug
- <<: *debug-build-stage
env: LINUX=1 URHO3D_LIB_TYPE=SHARED CMAKE_BUILD_TYPE=Debug
- <<: *debug-build-stage
env: MINGW=1 URHO3D_LIB_TYPE=STATIC CMAKE_BUILD_TYPE=Debug
- <<: *debug-build-stage
env: MINGW=1 URHO3D_LIB_TYPE=SHARED CMAKE_BUILD_TYPE=Debug
- stage: lint
env: LINUX=1 URHO3D_LINT=1
---
branch: {name: MinGW-CI, active: yes, appveyor: yes}
version: '{build}'
image: Visual Studio 2019
platform:
- x86
- x64
clone_depth: 50
cache:
# Cache the MinGW compiler toolchains so that our CI builds do not chalk up their download stats
- C:\tools\mingw32
- C:\tools\mingw64
environment:
GIT_NAME:
secure: JatNbOZZZKMvMHL8sRq9XpHgESzJ13eh9NHbMK99rX8=
GIT_EMAIL:
secure: 7EAYZJ5nFqEhMKcPmUvnqPp81XAoJEILzDJJ2qZXrKA=
GH_TOKEN:
secure: xx7og+aLQbdBSsdVo79OTGtdfqedOpYpIJjduNlzjFSXsTkD8NX8fEPq0XE1KT5n
SF_KEY:
secure: 6Vuo+sNP2YT/iI4ilNDdyJbKpu1AYxSpkdwjJxeZ3BVXM0XQQnG7VS/6IspV9kgWXmYpeVnUTqpoxAg7GDf3MTN9SeXgwHuSsblIAHDaOJk=
SF_API:
secure: gEDrho4yNr5++SbgkWsxQiFA62GJfTLrZU9Dzjz9HCUcS7XwjTGg3XsFm84w6B1s
# We cannot afford to have a large matrix on AppVeyor at the moment
URHO3D_D3D11: 1
URHO3D_LUAJIT: 1
MINGW: 1
# MinGW-w64 on Windows is NOT multilib capable
x86_64-posix-seh: https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/8.1.0/threads-posix/seh/x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z
i686-posix-dwarf: https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/8.1.0/threads-posix/dwarf/i686-8.1.0-release-posix-dwarf-rt_v6-rev0.7z
matrix:
- URHO3D_LIB_TYPE: STATIC
- URHO3D_LIB_TYPE: SHARED
before_build:
- rake ci_timer
- set "APPVEYOR_REPO_COMMIT=%APPVEYOR_REPO_COMMIT%~"
- ps: $env:COMMIT_MESSAGE = $(git log --format=%B -n 1 $env:APPVEYOR_REPO_COMMIT);
if ($env:APPVEYOR_REPO_TAG -eq "true") { $env:RELEASE_TAG = $env:APPVEYOR_REPO_TAG_NAME };
if ($env:RELEASE_TAG -or ($env:APPVEYOR_REPO_BRANCH -notmatch "[^-]+-[^-]+-CI" -and (select-string '\[ci package\]' -inputobject $env:COMMIT_MESSAGE)))
{
$env:PACKAGE_UPLOAD = "1";
do { "Installing doxygen and graphviz..."; choco install doxygen.install graphviz >$null } until ($?);
}
else
{
$env:URHO3D_TOOLS = "0";
iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-desktop.ps1'))
}
- if "%PLATFORM%" == "x64" (set "URHO3D_64BIT=1" && set "MINGW_URL=%x86_64-posix-seh%" && set "ARCH=64") else (set "MINGW_URL=%i686-posix-dwarf%" && set "ARCH=32")
- if not exist "C:\tools\mingw%ARCH%" curl -fsSLo "mingw.7z" "%MINGW_URL%" && 7z x -y -o"C:\tools" "mingw.7z" >nul && echo "Installed MinGW compiler toolchain to C:\tools"
- set "PATH=C:\tools\mingw%ARCH%\bin;%PATH%"
build_script:
- rake ci && if "%PACKAGE_UPLOAD%" == "1" rake ci_package_upload
- rake ci_timer
after_build:
- if "%PLATFORM%:%URHO3D_LIB_TYPE%" == "x64:SHARED" rake ci_delete_mirror
test: off
deploy: off
---
branch: {name: Coverity-Scan, active: no}
language: cpp
compiler: gcc
cache: ccache
dist: trusty
addons:
apt:
packages: [libpulse-dev]
coverity_scan:
project:
name: $TRAVIS_REPO_SLUG
description: Urho3D is a free lightweight, cross-platform 2D and 3D game engine implemented in C++ and released under the MIT license. Greatly inspired by OGRE and Horde3D.
notification_email: urho3d.travis.ci@gmail.com
build_command_prepend: rake cmake URHO3D_LUA=0 URHO3D_SAMPLES=1 URHO3D_TOOLS=1 URHO3D_EXTRAS=1 URHO3D_DATABASE_SQLITE=1 URHO3D_LIB_TYPE=SHARED
build_command: rake make numjobs=4
branch_pattern: .*Coverity-Scan$
env:
global:
- secure: SLJCjkjDsTMbCIV9Wecz5JATnhk0fuzlnLMeZdvvFDv+8NL8cXyutkU0VfyRSLf3HSD1Js79a6fRMROyVGWj/w/BRrjqGnZzsB6+ZeJNnadiVIF5Gh+w90We5ccvSp2G4DyYgwkNnkKlJK7zNEWGu/K+bHL1EOCA+EIVrFMyA44=
- secure: itgWNvH4Zj0hQpkUctVxMwJwVX3hIluVuvUbzO2XG7dxQaMMfcLGwVKgq8X1HOf4dJCUv5WL0jcSMWXbdc8tvqQJwBb5R2Z2JJYpTTAgtmLy7TNn6zgetZtGrYEJuTlxSItbS/NF4iPDO25ih7j5Ma0ffXRpBnlURQaytfYfFaQ=
- LINUX=1
- USE_CCACHE=1
- CCACHE_SLOPPINESS=pch_defines,time_macros
- CCACHE_COMPRESS=1
stage: scan
before_script:
- export TRAVIS_COMMIT=$TRAVIS_COMMIT~
- export COMMIT_MESSAGE=$(git log --format=%B -n 1 $TRAVIS_COMMIT)
script: true
after_script: rake ci_delete_mirror
---
branch: {name: Annotate, active: no}
language: cpp
compiler: gcc
cache: ccache
dist: trusty
addons: {apt: {packages: [libpulse-dev]}}
env:
global:
- secure: SLJCjkjDsTMbCIV9Wecz5JATnhk0fuzlnLMeZdvvFDv+8NL8cXyutkU0VfyRSLf3HSD1Js79a6fRMROyVGWj/w/BRrjqGnZzsB6+ZeJNnadiVIF5Gh+w90We5ccvSp2G4DyYgwkNnkKlJK7zNEWGu/K+bHL1EOCA+EIVrFMyA44=
- numjobs=4
- USE_CCACHE=1
- CCACHE_SLOPPINESS=pch_defines,time_macros
- CCACHE_COMPRESS=1
stage: annotate
before_script:
- export TRAVIS_COMMIT=$TRAVIS_COMMIT~
- export COMMIT_MESSAGE=$(git log --format=%B -n 1 $TRAVIS_COMMIT)
- git clone --depth 1 https://github.com/urho3d/llvm-clang.git && export LLVM_CLANG_ROOT=$(pwd)/llvm-clang
script: rake ci_annotate
after_script: rake ci_delete_mirror
---
branch: {name: Android-CI, active: yes}
dist: trusty
addons: {apt: {packages: [docker-ce]}}
cache:
directories:
- $HOME/urho3d_home_dir/.android/build-cache
- $HOME/urho3d_home_dir/.ccache
- $HOME/urho3d_home_dir/.gradle/caches
- $HOME/urho3d_home_dir/.gradle/wrapper
# before_cache: [] # intentionally leave it blank because for our case cleaning '.gradle' dir is pointless when the '.ccache' dir is guaranteed to be dirtied by our build job
env:
global:
- secure: SLJCjkjDsTMbCIV9Wecz5JATnhk0fuzlnLMeZdvvFDv+8NL8cXyutkU0VfyRSLf3HSD1Js79a6fRMROyVGWj/w/BRrjqGnZzsB6+ZeJNnadiVIF5Gh+w90We5ccvSp2G4DyYgwkNnkKlJK7zNEWGu/K+bHL1EOCA+EIVrFMyA44=
- secure: ecj/PwpbHkH9AYFsc2TMeRuNm5E3xMM8A0x4AcGhzpwDuZWdFx3R1T4G9u45Z5aUyTJWGqOeX1JPaEVVFZuYnNBKRy0kmiUrM9EE0j7WsT57K48tP1ysn2ynyvHgbYkKOfYR0t8XAMWTBbulT9DVVk3DS69//2WgiXGDVUEJTyI=
- secure: S6Vb3QUW8mDLkLrsIRSullTjwHM1ZIeG4rUT1Nwqx4XSovTZDvq9OThrzAvnuA6sYzeyDI2WHCeBUgmiKFyVBiB2NZwZZjRlTTAC2GVyRZKph9ErhJH3O0DfbPErICQAxL+RI6uCU6nSRPzq4L64UbZi5t04n6f95JXWmfeX2oY=
- ANDROID=1
- ORG_GRADLE_PROJECT_URHO3D_LUAJIT=1
- HOT=$HOME/urho3d_home_dir/.ccache/.hot
matrix:
- ORG_GRADLE_PROJECT_URHO3D_LIB_TYPE=STATIC
- ORG_GRADLE_PROJECT_URHO3D_LIB_TYPE=SHARED
stage: universal build configuration
before_script:
- rake ci_timer
- export TRAVIS_COMMIT=$TRAVIS_COMMIT~
- export COMMIT_MESSAGE=$(git log --format=%B -n1 $TRAVIS_COMMIT)
- export TAG=$(git describe --exact-match $TRAVIS_COMMIT 2>/dev/null); if [[ $TAG =~ [[:digit:]]+\.[[:digit:]]+ ]]; then export RELEASE_TAG=$TAG; fi
- if [[ $RELEASE_TAG ]] || (! [[ $TRAVIS_BRANCH =~ [^-]+-[^-]+-CI ]] && echo $COMMIT_MESSAGE |grep -cq '\[ci package\]'); then export bintrayUpload=bintrayUpload; fi
- if (echo $COMMIT_MESSAGE |grep -cq '\[cache clear\]' || [[ ! -e $HOT ]]); then export ORG_GRADLE_PROJECT_ANDROID_ABI=arm64-v8a,armeabi-v7a; unset bintrayUpload; fi; touch $HOT
- if [[ "$ORG_GRADLE_PROJECT_URHO3D_LIB_TYPE" == "STATIC" ]]; then export ORG_GRADLE_PROJECT_URHO3D_SAMPLES=0; fi
- rake ci_setup_cache
script: script/dockerized.sh android ./gradlew build $bintrayUpload --console plain && rake ci_timer
matrix:
fast_finish: true
include: [stage: housekeep]
---
branch: {name: RPI-CI, active: yes}
dist: trusty
addons: {apt: {packages: [docker-ce]}}
cache: {directories: [$HOME/urho3d_home_dir/.ccache]}
env:
global:
- secure: SLJCjkjDsTMbCIV9Wecz5JATnhk0fuzlnLMeZdvvFDv+8NL8cXyutkU0VfyRSLf3HSD1Js79a6fRMROyVGWj/w/BRrjqGnZzsB6+ZeJNnadiVIF5Gh+w90We5ccvSp2G4DyYgwkNnkKlJK7zNEWGu/K+bHL1EOCA+EIVrFMyA44=
- secure: ecj/PwpbHkH9AYFsc2TMeRuNm5E3xMM8A0x4AcGhzpwDuZWdFx3R1T4G9u45Z5aUyTJWGqOeX1JPaEVVFZuYnNBKRy0kmiUrM9EE0j7WsT57K48tP1ysn2ynyvHgbYkKOfYR0t8XAMWTBbulT9DVVk3DS69//2WgiXGDVUEJTyI=
- numjobs=4
- RPI=1
matrix:
# RPI 4 64-bit
- URHO3D_LIB_TYPE=STATIC RPI_ABI=RPI4
- URHO3D_LIB_TYPE=SHARED RPI_ABI=RPI4
# RPI 3
- URHO3D_64BIT=0 URHO3D_LIB_TYPE=STATIC RPI_ABI=RPI3
- URHO3D_64BIT=0 URHO3D_LIB_TYPE=SHARED RPI_ABI=RPI3
stage: release build configuration
before_script:
- rake ci_timer
- export TRAVIS_COMMIT=$TRAVIS_COMMIT~
- export COMMIT_MESSAGE=$(git log --format=%B -n 1 $TRAVIS_COMMIT)
- export TAG=$(git describe --exact-match $TRAVIS_COMMIT 2>/dev/null); if [[ $TAG =~ [[:digit:]]+\.[[:digit:]]+ ]]; then export RELEASE_TAG=$TAG; fi
- if [[ $RELEASE_TAG ]] || (! [[ $TRAVIS_BRANCH =~ [^-]+-[^-]+-CI ]] && echo $COMMIT_MESSAGE |grep -cq '\[ci package\]'); then export PACKAGE_UPLOAD=1; fi
- rake ci_setup_cache
script: script/dockerized.sh rpi rake ci && if [[ $PACKAGE_UPLOAD ]]; then script/dockerized.sh rpi rake ci_package_upload; fi && rake ci_timer
matrix:
fast_finish: true
include: [stage: housekeep]
---
branch: {name: ARM-CI, active: yes}
dist: trusty
addons: {apt: {packages: [docker-ce]}}
cache: {directories: [$HOME/urho3d_home_dir/.ccache]}
env:
global:
- secure: SLJCjkjDsTMbCIV9Wecz5JATnhk0fuzlnLMeZdvvFDv+8NL8cXyutkU0VfyRSLf3HSD1Js79a6fRMROyVGWj/w/BRrjqGnZzsB6+ZeJNnadiVIF5Gh+w90We5ccvSp2G4DyYgwkNnkKlJK7zNEWGu/K+bHL1EOCA+EIVrFMyA44=
- secure: ecj/PwpbHkH9AYFsc2TMeRuNm5E3xMM8A0x4AcGhzpwDuZWdFx3R1T4G9u45Z5aUyTJWGqOeX1JPaEVVFZuYnNBKRy0kmiUrM9EE0j7WsT57K48tP1ysn2ynyvHgbYkKOfYR0t8XAMWTBbulT9DVVk3DS69//2WgiXGDVUEJTyI=
- numjobs=4
- ARM=1
matrix:
# ODROID-C2
- URHO3D_LIB_TYPE=STATIC ARM_ABI_FLAGS='-mcpu=cortex-a53'
- URHO3D_LIB_TYPE=SHARED ARM_ABI_FLAGS='-mcpu=cortex-a53'
# ODROID-X2
- URHO3D_64BIT=0 URHO3D_LIB_TYPE=STATIC ARM_ABI_FLAGS='-mcpu=cortex-a9 -mfpu=neon-fp16'
- URHO3D_64BIT=0 URHO3D_LIB_TYPE=SHARED ARM_ABI_FLAGS='-mcpu=cortex-a9 -mfpu=neon-fp16'
stage: release build configuration
before_script:
- rake ci_timer
- export TRAVIS_COMMIT=$TRAVIS_COMMIT~
- export COMMIT_MESSAGE=$(git log --format=%B -n 1 $TRAVIS_COMMIT)
- export TAG=$(git describe --exact-match $TRAVIS_COMMIT 2>/dev/null); if [[ $TAG =~ [[:digit:]]+\.[[:digit:]]+ ]]; then export RELEASE_TAG=$TAG; fi
- if [[ $RELEASE_TAG ]] || (! [[ $TRAVIS_BRANCH =~ [^-]+-[^-]+-CI ]] && echo $COMMIT_MESSAGE |grep -cq '\[ci package\]'); then export PACKAGE_UPLOAD=1; fi
- rake ci_setup_cache
script: script/dockerized.sh arm rake ci && if [[ $PACKAGE_UPLOAD ]]; then script/dockerized.sh arm rake ci_package_upload; fi && rake ci_timer
matrix:
fast_finish: true
include: [stage: housekeep]
---
branch: {name: Web-CI, active: yes}
dist: trusty
addons: {apt: {packages: [docker-ce]}}
cache:
directories:
- $HOME/urho3d_home_dir/.ccache
- $HOME/urho3d_home_dir/.emscripten_cache
- $HOME/urho3d_home_dir/initial-build-tree
env:
global:
- secure: SLJCjkjDsTMbCIV9Wecz5JATnhk0fuzlnLMeZdvvFDv+8NL8cXyutkU0VfyRSLf3HSD1Js79a6fRMROyVGWj/w/BRrjqGnZzsB6+ZeJNnadiVIF5Gh+w90We5ccvSp2G4DyYgwkNnkKlJK7zNEWGu/K+bHL1EOCA+EIVrFMyA44=
- secure: ecj/PwpbHkH9AYFsc2TMeRuNm5E3xMM8A0x4AcGhzpwDuZWdFx3R1T4G9u45Z5aUyTJWGqOeX1JPaEVVFZuYnNBKRy0kmiUrM9EE0j7WsT57K48tP1ysn2ynyvHgbYkKOfYR0t8XAMWTBbulT9DVVk3DS69//2WgiXGDVUEJTyI=
- numjobs=4
- WEB=1
- HOT=/home/travis/urho3d_home_dir/.ccache/.hot
matrix:
- EMSCRIPTEN_SHARE_DATA=1
- EMSCRIPTEN_SHARE_DATA=0
stage: release build configuration
before_script:
- rake ci_timer
- export TRAVIS_COMMIT=$TRAVIS_COMMIT~
- export COMMIT_MESSAGE=$(git log --format=%B -n 1 $TRAVIS_COMMIT)
- export TAG=$(git describe --exact-match $TRAVIS_COMMIT 2>/dev/null); if [[ $TAG =~ [[:digit:]]+\.[[:digit:]]+ ]]; then export RELEASE_TAG=$TAG; fi
- if [[ $RELEASE_TAG ]] || (! [[ $TRAVIS_BRANCH =~ [^-]+-[^-]+-CI ]] && echo $COMMIT_MESSAGE |grep -cq '\[ci package\]'); then export PACKAGE_UPLOAD=1; fi
- if echo $COMMIT_MESSAGE |grep -cq '\[cache clear\]' || [[ ! -e $HOT ]]; then export URHO3D_SAMPLES=0; else export URHO3D_SAMPLES=1; fi; touch $HOT
- if [[ $URHO3D_SAMPLES = 1 ]] && [[ "$TRAVIS_BRANCH" == "Web-CI" ]] && [[ "$TRAVIS_PULL_REQUEST" == "false" ]]; then export SAMPLE_UPLOAD=1; fi
- rake ci_setup_cache
script: script/dockerized.sh web rake ci && if [[ $EMSCRIPTEN_SHARE_DATA = 1 ]]; then if [[ $PACKAGE_UPLOAD ]]; then script/dockerized.sh web rake ci_package_upload; fi && if [[ $SAMPLE_UPLOAD ]]; then script/dockerized.sh web rake ci_emscripten_samples_update; fi; fi && rake ci_timer
matrix:
fast_finish: true
include: [stage: housekeep]
---
branch: {name: OSX-CI, active: yes}
language: objective-c
cache:
directories:
- $HOME/.ccache
- $HOME/initial-build-tree
osx_image: xcode11.6
env:
global:
- secure: SLJCjkjDsTMbCIV9Wecz5JATnhk0fuzlnLMeZdvvFDv+8NL8cXyutkU0VfyRSLf3HSD1Js79a6fRMROyVGWj/w/BRrjqGnZzsB6+ZeJNnadiVIF5Gh+w90We5ccvSp2G4DyYgwkNnkKlJK7zNEWGu/K+bHL1EOCA+EIVrFMyA44=
- secure: ecj/PwpbHkH9AYFsc2TMeRuNm5E3xMM8A0x4AcGhzpwDuZWdFx3R1T4G9u45Z5aUyTJWGqOeX1JPaEVVFZuYnNBKRy0kmiUrM9EE0j7WsT57K48tP1ysn2ynyvHgbYkKOfYR0t8XAMWTBbulT9DVVk3DS69//2WgiXGDVUEJTyI=
- numjobs=3
- OSX=1
- CCACHE_SLOPPINESS=pch_defines,time_macros
- CCACHE_COMPRESS=1
matrix:
- XCODE=1 TVOS=1 URHO3D_LIB_TYPE=STATIC APPLETVOS_DEPLOYMENT_TARGET=13.4 sdk=appletvsimulator
- XCODE=1 IOS=1 URHO3D_LIB_TYPE=STATIC IPHONEOS_DEPLOYMENT_TARGET=13.4 sdk=iphonesimulator
- XCODE=1 URHO3D_LIB_TYPE=STATIC CMAKE_OSX_DEPLOYMENT_TARGET=10.15 SF_DEFAULT=mac:OSX-64bit-STATIC.tar.gz
- XCODE=1 URHO3D_LIB_TYPE=SHARED CMAKE_OSX_DEPLOYMENT_TARGET=10.15
- MAKEFILE=1 URHO3D_LIB_TYPE=STATIC URHO3D_DEPLOYMENT_TARGET=generic
- MAKEFILE=1 URHO3D_LIB_TYPE=SHARED URHO3D_DEPLOYMENT_TARGET=generic
stage: release build configuration
before_script:
- rake ci_timer
- export TRAVIS_COMMIT=$TRAVIS_COMMIT~
- export COMMIT_MESSAGE=$(git log --format=%B -n 1 $TRAVIS_COMMIT)
- export TAG=$(git describe --exact-match $TRAVIS_COMMIT 2>/dev/null); if [[ $TAG =~ [[:digit:]]+\.[[:digit:]]+ ]]; then export RELEASE_TAG=$TAG; fi
- if [[ $XCODE ]] && ([[ $RELEASE_TAG ]] || (! [[ $TRAVIS_BRANCH =~ [^-]+-[^-]+-CI ]] && echo $COMMIT_MESSAGE |grep -cq '\[ci package\]')); then export PACKAGE_UPLOAD=1; fi
- brew update
- which cmake >/dev/null 2>&1 || cmake=cmake
- if [[ $MAKEFILE ]]; then ccache=ccache; fi
- travis_retry brew install doxygen graphviz $cmake $ccache
- if [[ ! $cmake ]]; then brew outdated cmake || brew upgrade cmake; fi
- if [[ $ccache ]]; then export PATH=$(brew info ccache |grep -o '\S*lib\S*'):$PATH USE_CCACHE=1; fi
- if [[ $XCODE ]]; then export config=Release; if [[ $IOS ]]; then redundant=AppleTV,Watch; elif [[ $TVOS ]]; then redundant=iPhone,Watch; else redundant=iPhone,AppleTV,Watch; fi && eval sudo rm -rf /Applications/Xcode.app/Contents/Developer/Platforms/{$redundant}{OS,Simulator}.platform; fi
script: rake ci && if [[ $PACKAGE_UPLOAD ]]; then rake ci_package_upload; fi && rake ci_timer
matrix:
fast_finish: true
include: [stage: housekeep]
...
# vi: set ts=2 sw=2 expandtab: