# Build version version: "{build}" # do not shallow clone because we want to infer the version from the last tag branches: only: - master - beta - stable # Build worker image (build VM template) image: Visual Studio 2017 environment: matrix: - PX4_CONFIG: tests # this builds posix in px4_sitl_test folder and runs tests - PX4_CONFIG: px4_fmu-v5_default install: # if the toolchain wasn't restored from build cache download and install it - ps: >- if (-not (Test-Path C:\PX4)) { 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 Start-Process -Wait msiexec -ArgumentList '/I C:\Toolchain.msi /quiet /qn /norestart /log C:\install.log' } # Note: using Start-Process -Wait is important # because otherwise the install begins but non-blocking and the result cannot be used just after build_script: # 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 - if not exist "C:\PX4\home" mkdir C:\PX4\home # setup the environmental variables to work within the installed cygwin toolchain - call C:\PX4\toolchain\scripts\setup-environment.bat x # safe the repopath for switching to it in cygwin bash - for /f %%i in ('cygpath -u %%CD%%') do set repopath=%%i # build the make target - call bash --login -c "cd $repopath && make $PX4_CONFIG" # Note: using bash --login is important # because otherwise certain things (like python; import numpy) do not work cache: # 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