Skip to content

Commit

Permalink
[CI] Optimize MSYS2 on Appveyor (openframeworks#6573)
Browse files Browse the repository at this point in the history
setup platform matrix
use for: to better separate MSYS2 vs Visual Studio

reinstall MSYS2 from repo
Only install/update required component.
Doing so, decreased installation from 10min to 4 min
  • Loading branch information
oxillo authored Apr 20, 2020
1 parent 6c9654b commit 5453d35
Showing 1 changed file with 65 additions and 47 deletions.
112 changes: 65 additions & 47 deletions .appveyor.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
version: 1.0.{build}

platform:
- x86
- x64

environment:
global:
APPVEYOR_OS_NAME: windows
Expand All @@ -11,67 +15,81 @@ environment:
matrix:
#MSYS2 Building
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
platform: x86
BUILDER: MSYS2
MSYSTEM: MINGW32
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
platform: x64
BUILDER: MSYS2
MSYSTEM: MINGW64
#VisualStudio Building
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
platform: x86
BUILDER : VS
BITS: 32
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
platform: x64
BUILDER : VS
BITS: 64

configuration: Debug
shallow_clone: true
clone_depth: 10


init:
# fix for https://github.com/appveyor/ci/issues/2571
- del C:\Windows\System32\libssl-*.dll C:\Windows\system32\libcrypto-*.dll
- del C:\Windows\SysWOW64\libssl-*.dll C:\Windows\SysWOW64\libcrypto-*.dll
# Upgrade the MSYS2 system and all install packages
- '%MSYS2_PATH%\usr\bin\pacman --noconfirm -Syu'
# Install packages need by download_libs.sh scripts (VS and MSYS2)
- '%MSYS2_PATH%\usr\bin\pacman --noconfirm -S --needed unzip rsync wget libopenssl mingw-w64-i686-openssl'
- if "%BUILDER%"=="VS" set PATH=%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin;%PATH%

# - IF "%BUILDER%"=="VS" set PATH=C:\Program Files (x86)\MSBuild\14.0\Bin;%PATH%

cache:

for:
-
matrix:
only:
- BUILDER: MSYS2

cache:
- .ccache

install:
- if "%BUILDER%"=="VS" (%MSYS2_PATH%\usr\bin\bash -lc "scripts/ci/vs/install.sh")
- if "%BUILDER%"=="MSYS2" (%MSYS2_PATH%\usr\bin\bash -lc "scripts/ci/msys2/install.sh")

before_build:
#- if "%BUILDER%"=="MSYS2" (%MSYS2_PATH%\usr\bin\bash -lc "ccache -z")
- if "%BUILDER%"=="MSYS2" (%MSYS2_PATH%\usr\bin\bash -lc "ccache -s")

build_script:
- if "%BUILDER%"=="MSYS2" (%MSYS2_PATH%\usr\bin\bash -lc "scripts/ci/msys2/build.sh")

- ps: |
if ($env:BUILDER -eq "VS") {
msbuild libs/openFrameworksCompiled/project/vs/openframeworksLib.vcxproj /verbosity:minimal /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
msbuild examples/templates/emptyExample/emptyExample.vcxproj /verbosity:minimal /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
msbuild examples/templates/allAddonsExample/allAddonsExample.vcxproj /verbosity:minimal /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
}
test_script:
- if "%BUILDER%"=="MSYS2" (%MSYS2_PATH%\usr\bin\bash -lc "scripts/ci/msys2/run_tests.sh")
- ps: |
if ($env:BUILDER -eq "VS") {
cd scripts/ci/vs
.\run_tests.bat
}
after_test:
- if "%BUILDER%"=="MSYS2" (%MSYS2_PATH%\usr\bin\bash -lc "ccache -s")
install:
- |-
set MSYSTEM=%platform:86=32%
set MSYSTEM=%MSYSTEM:x=MINGW%
cd C:\
ren msys64 msys64_old
C:\msys64_old\usr\bin\bash -lc "curl -L http://repo.msys2.org/distrib/msys2-x86_64-latest.tar.xz | xz -d | tar -xf -"
%MSYS2_PATH%\usr\bin\bash -lc "pacman --noconfirm -Syu"
%MSYS2_PATH%\usr\bin\pacman --noconfirm -S --needed unzip rsync wget libopenssl
cd "%APPVEYOR_BUILD_FOLDER%"
%MSYS2_PATH%\usr\bin\bash -lc "scripts/ci/msys2/install.sh"
%MSYS2_PATH%\usr\bin\bash -lc "echo $PATH"
before_build:
- |-
%MSYS2_PATH%\usr\bin\bash -lc "ccache -z"
%MSYS2_PATH%\usr\bin\bash -lc "ccache -s"
build_script:
- '%MSYS2_PATH%\usr\bin\bash -lc "scripts/ci/msys2/build.sh"'

test_script:
- '%MSYS2_PATH%\usr\bin\bash -lc "scripts/ci/msys2/run_tests.sh"'

after_test:
- '%MSYS2_PATH%\usr\bin\bash -lc "ccache -s"'


-
matrix:
only:
- BUILDER: VS

install:
- |-
set BITS=%platform:86=32%
set BITS=%BITS:x=%
%MSYS2_PATH%\usr\bin\pacman --noconfirm -S --needed unzip rsync wget libopenssl
set PATH=%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin;%PATH%
%MSYS2_PATH%\usr\bin\bash -lc "scripts/ci/vs/install.sh"
build_script:
- |-
echo BITS=%BITS%
msbuild libs/openFrameworksCompiled/project/vs/openframeworksLib.vcxproj /verbosity:minimal /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
msbuild examples/templates/emptyExample/emptyExample.vcxproj /verbosity:minimal /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
msbuild examples/templates/allAddonsExample/allAddonsExample.vcxproj /verbosity:minimal /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
test_script:
- |-
cd scripts/ci/vs
.\run_tests.bat

0 comments on commit 5453d35

Please sign in to comment.