Files
SourcetrailDB/appveyor.yml
T
2021-07-26 18:46:44 +02:00

175 lines
5.8 KiB
YAML

version: 0.0.0.{build}
image:
- Visual Studio 2017
- Ubuntu
- macos
environment:
PYTHON_BINDINGS: 1
JAVA_BINDINGS: 1
PERL_BINDINGS: 1
platform: x64
configuration: Release
for:
-
matrix:
only:
- image: Visual Studio 2017
install:
- cmd: |
echo Building on Windows!
echo Python: %PYTHON_BINDINGS%
echo Java: %JAVA_BINDINGS%
echo Perl: %PERL_BINDINGS%
- ps: |
$env:PYTHON_VERSION=37
$env:MSVC_VERSION=15
- ps: |
if ($env:PLATFORM -eq "x86") {
echo "Architecture set to 32 bit."
$env:CMAKE_GENERATOR="Visual Studio $env:MSVC_VERSION"
$env:PYTHON_PATH="C:/Python$env:PYTHON_VERSION"
} elseif ($env:PLATFORM -eq "x64") {
echo "Architecture set to 64 bit."
$env:CMAKE_GENERATOR="Visual Studio $env:MSVC_VERSION Win64"
$env:PYTHON_PATH="C:/Python$env:PYTHON_VERSION-x64"
} else {
echo "No architecture set. Build will be canceled."
}
# Install SWIG by Choco
choco install -y --no-progress swig --version 4.0.1
choco install -y --no-progress openjdk
# Install Strawberry Perl and put before any other Perls in %PATH%
if ($env:PLATFORM -eq "x86") {
choco install -y --no-progress --forcex86 strawberryperl
} elseif ($env:PLATFORM -eq "x64") {
choco install -y --no-progress strawberryperl
} else {
echo "No architecture set. Build will be canceled."
}
$env:PATH="C:\strawberry\perl\bin;C:\strawberry\perl\site\bin;C:\strawberry\c\bin;$env:PATH"
$env:PERL_VERSION=$(perl -e 'print $^V')
before_build:
- mkdir build
- cd build
- cmake -G "%CMAKE_GENERATOR%" ../ -DBUILD_BINDINGS_PYTHON=%DEPLOY_PYTHON_BINDINGS% -DPYTHON_LIBRARY="%PYTHON_PATH%/libs/python%PYTHON_VERSION%.lib" -DBUILD_BINDINGS_JAVA=%DEPLOY_JAVA_BINDINGS% -DBUILD_BINDINGS_CSHARP=%DEPLOY_CSHARP_BINDINGS%
- cd ../
- ps: |
if ($Env:PERL_BINDINGS -eq "1") {
mkdir build-perl
cd build-perl
# Need to use Unix Makefiles because Strawberry Perl is a MinGW environment
cmake -G "Unix Makefiles" ../ -DBUILD_BINDINGS_PERL=$Env:PERL_BINDINGS
if ($LastExitCode -ne 0) { throw "Perl bindings: cmake failed with exit code $LastExitCode" }
cd ../
}
- ps: $env:CORE_VERSION = Get-Content -Path ./version.txt
- ps: $env:UNDERSCORED_CORE_VERSION = $env:CORE_VERSION.Replace(".", "_")
- ps: echo "Core version is $env:CORE_VERSION"
# TODO: use the core version to update appveyor version here
# - ps: $env:BUILD_VERSION = "0.0.1." + $env:APPVEYOR_BUILD_NUMBER
# - ps: echo update build version to $env:BUILD_VERSION
# - ps: Update-AppveyorBuild -Version $env:BUILD_VERSION
build_script:
- cd build
- msbuild /p:configuration=Release /v:m ALL_BUILD.vcxproj
- cd ../
- ps: |
if ($Env:PERL_BINDINGS -eq "1") {
cd build-perl
gmake
if ($LastExitCode -ne 0) { throw "Perl bindings: gmake failed with exit code $LastExitCode" }
cd ../
}
test_script:
- "build\\core\\release\\test_core.exe"
-
matrix:
only:
- image: Ubuntu
install:
- sh: |
echo Building on Ubuntu!
echo Python: $PYTHON_BINDINGS
echo Java: $JAVA_BINDINGS
echo Perl: $PERL_BINDINGS
- sh: |
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install -qq swig
if [[ "$PYTHON_BINDINGS" == "1" ]]; then
sudo apt-get -y install python3.5
sudo apt-get -y install python3.5-dev
alias python="/usr/bin/python3.5"
python --version
fi
if [[ "$JAVA_BINDINGS" == "1" ]]; then
#installing Java not required, as image already comes with Java 9
#sudo apt-get install openjdk-8-jdk
javac -version
fi
if [[ "$PERL_BINDINGS" == "1" ]]; then
#installing Perl not required, as image already comes with Perl 5
#sudo apt-get install perl
#alias perl="/usr/bin/perl"
perl --version
fi
build_script:
- sh: |
mkdir build
cd build
cmake -DBUILD_BINDINGS_PERL=$PERL_BINDINGS -DBUILD_BINDINGS_PYTHON=$PYTHON_BINDINGS -DPYTHON_VERSION=3.5 -DBUILD_BINDINGS_JAVA=$JAVA_BINDINGS ..
make
test_script:
- sh: |
./core/test_core
-
matrix:
only:
- image: macos
install:
- sh: |
echo Building the Java bindings is currently disabled in CI because JNI cannot be found by CMake
JAVA_BINDINGS=0
- sh: |
echo Building on Mac OS!
echo Python: $PYTHON_BINDINGS
echo Java: $JAVA_BINDINGS
echo Perl: $PERL_BINDINGS
- sh: |
HOMEBREW_NO_AUTO_UPDATE=1 brew install swig
brew link --force swig
if [[ "$JAVA_BINDINGS" == "1" ]]; then
HOMEBREW_NO_AUTO_UPDATE=1 brew install openjdk
fi
if [[ "$PERL_BINDINGS" == "1" ]]; then
# installing Perl not required, as image already comes with Perl 5
#HOMEBREW_NO_AUTO_UPDATE=1 brew install perl
perl --version
fi
build_script:
- sh: |
mkdir build
cd build
cmake -DBUILD_BINDINGS_PERL=$PERL_BINDINGS -DBUILD_BINDINGS_PYTHON=$PYTHON_BINDINGS -DPYTHON_VERSION=3.6 -DBUILD_BINDINGS_JAVA=$JAVA_BINDINGS ..
make
test_script:
- sh: |
./core/test_core
build_script:
- echo ERROR - Empty default script was executed!
- exit 1