2018-07-19 13:01:08 -03:00
|
|
|
# Build version
|
|
|
|
version: "{build}"
|
2018-11-25 17:10:42 -04:00
|
|
|
# shallow clone the main repo
|
|
|
|
clone_depth: 1
|
2018-07-19 13:01:08 -03:00
|
|
|
|
2018-08-01 15:03:03 -03:00
|
|
|
branches:
|
|
|
|
only:
|
|
|
|
- master
|
|
|
|
- beta
|
|
|
|
- stable
|
|
|
|
|
2018-07-19 13:01:08 -03:00
|
|
|
# Build worker image (build VM template)
|
|
|
|
image: Visual Studio 2017
|
|
|
|
|
|
|
|
# build platform, i.e. Win32 (instead of x86), x64, Any CPU. This setting is optional.
|
|
|
|
platform:
|
|
|
|
- x64
|
|
|
|
|
|
|
|
# scripts that are called at very beginning, before repo cloning
|
|
|
|
init:
|
|
|
|
- ver
|
|
|
|
|
|
|
|
install:
|
2018-11-15 12:18:23 -04:00
|
|
|
# if the toolchain wasn't restored from build cache download and install it
|
|
|
|
- ps: >-
|
|
|
|
if (-not (Test-Path C:\PX4)) {
|
2018-11-25 11:25:02 -04:00
|
|
|
Invoke-WebRequest https://s3-us-west-2.amazonaws.com/px4-tools/PX4+Windows+Cygwin+Toolchain/PX4+Windows+Cygwin+Toolchain+0.5.msi -OutFile C:\Toolchain.msi
|
2018-11-15 12:18:23 -04:00
|
|
|
Start-Process -Wait msiexec -ArgumentList '/I C:\Toolchain.msi /quiet /qn /norestart /log C:\install.log'
|
|
|
|
}
|
|
|
|
|
|
|
|
# Note: using Start-Process -Wait is important
|
2018-07-26 04:42:31 -03:00
|
|
|
# because otherwise the install begins but non-blocking and the result cannot be used just after
|
|
|
|
|
2018-07-19 13:01:08 -03:00
|
|
|
build_script:
|
2018-11-25 11:25:02 -04:00
|
|
|
# FIXME Temporary we need to create the home folder because it's not contained in installer 0.5 and CI fails if it doesn't exist
|
|
|
|
- mkdir C:\PX4\home
|
2018-07-26 04:42:31 -03:00
|
|
|
# setup the environmental variables to work within the installed cygwin toolchain
|
2018-11-25 11:25:02 -04:00
|
|
|
- call C:\PX4\toolchain\scripts\setup-environment.bat x
|
2018-07-26 04:42:31 -03:00
|
|
|
# safe the repopath for switching to it in cygwin bash
|
|
|
|
- for /f %%i in ('cygpath -u %%CD%%') do set repopath=%%i
|
|
|
|
# fetch all submodules in parallel
|
2018-11-15 12:18:23 -04:00
|
|
|
- call bash --login -c "cd $repopath && git submodule -q update --init --recursive --jobs=10"
|
2018-07-26 04:42:31 -03:00
|
|
|
# make SITL
|
|
|
|
- call bash --login -c "cd $repopath && make posix"
|
|
|
|
# make pixracer to check NuttX build
|
|
|
|
- call bash --login -c "cd $repopath && make px4fmu-v4_default"
|
2018-11-21 08:59:27 -04:00
|
|
|
# run tests
|
|
|
|
- call bash --login -c "cd $repopath && make tests"
|
2018-07-26 04:42:31 -03:00
|
|
|
|
|
|
|
# Note: using bash --login is important
|
|
|
|
# because otherwise certain things (like python; import numpy) do not work
|
2018-07-25 10:54:48 -03:00
|
|
|
|
|
|
|
cache:
|
2018-11-15 12:18:23 -04:00
|
|
|
# cache the entire toolchain installation folder to avoid
|
|
|
|
# downloading it from AWS S3 and installing the MSI each time
|
|
|
|
# it's ~1.8GB > 1GB free limit for build caches
|
|
|
|
- C:\PX4 -> appveyor.yml
|