diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 3ef53e4..0000000 --- a/.travis.yml +++ /dev/null @@ -1,177 +0,0 @@ -language: cpp - -matrix: - include: - - os: linux - compiler: gcc - dist: trusty - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-5 - env: - - CC_COMPILER=gcc-5 CXX_COMPILER=g++-5 - - - os: linux - compiler: gcc - dist: trusty - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-5 - env: - - CC_COMPILER=gcc-5 CXX_COMPILER=g++-5 PERL_BINDING=1 - - - os: linux - compiler: gcc - dist: trusty - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-5 - env: - - CC_COMPILER=gcc-5 CXX_COMPILER=g++-5 PYTHON_BINDING=1 PYTHON=3.5 - - - os: linux - compiler: gcc - dist: bionic - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-5 - env: - - CC_COMPILER=gcc-5 CXX_COMPILER=g++-5 JAVA_BINDING=1 - - - os: osx - compiler: clang - - - os: osx - compiler: clang - env: - - PERL_BINDING=1 - - - os: osx - compiler: clang - env: - - PYTHON_BINDING=1 PYTHON=3.6 - - - os: osx - compiler: clang - osx_image: xcode11.2 - env: - - JAVA_BINDING=1 - -before_install: - - | - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then - HOMEBREW_NO_AUTO_UPDATE=1 brew install swig - brew link --force swig - - if [[ "$PERL_BINDING" == "1" ]]; then - HOMEBREW_NO_AUTO_UPDATE=1 brew install perl - perl --version - fi - - elif [[ "$TRAVIS_OS_NAME" == "linux" ]]; then - sudo apt-get update - sudo apt-get install -qq swig - - if [[ "$PERL_BINDING" == "1" ]]; then - sudo apt-get install perl - alias perl="/usr/bin/perl" - perl --version - fi - - # this is only working for python3.5 - if [[ "$PYTHON_BINDING" == "1" ]]; then - sudo apt-get install python$PYTHON - sudo apt-get install python$PYTHON-dev - alias python="/usr/bin/python$PYTHON" - python --version - fi - - if [[ "$JAVA_BINDING" == "1" ]]; then - sudo apt-get install openjdk-8-jdk - javac -version - fi - fi - -install: - - if [[ "${CXX_COMPILER}" != "" ]]; then export CXX=${CXX_COMPILER}; export CXX_FOR_BUILD=${CXX_COMPILER}; fi - - if [[ "${CC_COMPILER}" != "" ]]; then export CC=${CC_COMPILER}; export CC_FOR_BUILD=${CC_COMPILER}; fi - -script: - - | - mkdir build - cd build - cmake -DBUILD_BINDINGS_PERL=$PERL_BINDING -DBUILD_BINDINGS_PYTHON=$PYTHON_BINDING -DPYTHON_VERSION=$PYTHON -DBUILD_BINDINGS_JAVA=$JAVA_BINDING .. - make - ./core/test_core - -before_deploy: - - | - cd $TRAVIS_BUILD_DIR - - VERSION=$(head -1 version.txt) - VERSION=${VERSION//./_} - - if [[ "$PERL_BINDING" == "1" ]]; then - BUNDLE_NAME=sourcetraildb_perl_${VERSION}-${TRAVIS_OS_NAME}-64bit-${TRAVIS_COMPILER} - - mkdir -p $BUNDLE_NAME - cp build/bindings_perl/sourcetraildb.* $BUNDLE_NAME - - elif [[ "$PYTHON_BINDING" == "1" ]]; then - PYTHON_VERSION=${PYTHON//.} - PYTHON_VERSION=${PYTHON_VERSION:0:2} - BUNDLE_NAME=sourcetraildb_python${PYTHON_VERSION}_${VERSION}-${TRAVIS_OS_NAME}-64bit-${TRAVIS_COMPILER} - - mkdir -p $BUNDLE_NAME - cp build/bindings_python/sourcetraildb.py $BUNDLE_NAME - cp build/bindings_python/_sourcetraildb* $BUNDLE_NAME/_sourcetraildb.so - - elif [[ "$JAVA_BINDING" == "1" ]]; then - BUNDLE_NAME=sourcetraildb_java_${VERSION}-${TRAVIS_OS_NAME}-64bit-${TRAVIS_COMPILER} - - mkdir -p $BUNDLE_NAME - cp build/bindings_java/SourcetrailDB.jar $BUNDLE_NAME - cp build/bindings_java/lib_sourcetraildb* $BUNDLE_NAME - - else - BUNDLE_NAME=sourcetraildb_core_${VERSION}-${TRAVIS_OS_NAME}-64bit-${TRAVIS_COMPILER} - - mkdir -p $BUNDLE_NAME/include - mkdir -p $BUNDLE_NAME/lib - cp build/core/*.a $BUNDLE_NAME/lib - cp core/include/* $BUNDLE_NAME/include - cp build/core/include/* $BUNDLE_NAME/include - - fi - - mkdir -p $BUNDLE_NAME/license - cp LICENSE.txt $BUNDLE_NAME/license/license_sourcetraildb.txt - cp external/catch/license_catch.txt $BUNDLE_NAME/license/ - cp external/cpp_sqlite/license_cpp_sqlite.txt $BUNDLE_NAME/license/ - cp external/json/license_json.txt $BUNDLE_NAME/license/ - - zip -r $BUNDLE_NAME $BUNDLE_NAME - -deploy: - provider: releases - api_key: - secure: UwuiE6SrjorpBr1CzTRadX1zq83hwbnur+MvzBueqEHM7Yyu5Y0xMkwchRlX41HzMuSkC0azM0S8GfqJT1E7pIrqgJGvFbXR3t9ZG8HtvrcM4PvTS8b0G0d8aWHfTP2Zv+PAK3MMnYtxmOFPs4IaqO1m+imjQWtpvCRG5tvc4DNIPAMh0S8LCjxUdz35BYAM4pwM7WB9Qt+YhbyP1h3oSQ7qtr1fZYCC0H4G1cjVBLeP9g66/tfg0MIQVf1wxU8KF3H6esilPhFDCnsBYcnYrKyJN9OkMXZvLoxsjqQvTlsSNO2wIQ32dW8fk+1VFebWjN3RnNUV2Zb3wdz2y6e6A08J8T/+QrJ003eUJAGassQEgsuQ85ldcbylbKCVdi+iA+W6pKSJoHIlyr2KQG77OZ+q3obvY09IMNX2qVnUJKG8g9vZHKk8TlvUtIDODUxqJ/XUVwG5aKiUPuE5UMeLnZlO7cWpABb28BjXGehLCDtqg2eu39n+N9hyEjmsJLcOuS03+C55YrjJHW09qZomorMyIa//4jxSAOU9Iah7cRzPGUl/eSwQ2kf0OGWfySd2PreOThWepH0ymvG9htlTUSMM4wRuKnNAmG7NY6TykttJY2KsTLpki+P4MFBlSvL0VvoHQintK69udSVeUrJaGx508w8V59AdZwJjMxhjOXw= - file_glob: true - file: $TRAVIS_BUILD_DIR/*.zip - overwrite: true - skip_cleanup: true - on: - tags: true - repo: CoatiSoftware/SourcetrailDB diff --git a/appveyor.yml b/appveyor.yml index fabd050..9a0795c 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,241 +1,14 @@ version: 0.0.0.{build} -image: Visual Studio 2017 +image: + - Visual Studio 2017 + - Ubuntu + - macos -environment: - matrix: - - MBITS: 32 - PYTHON_VERSION: 37 - MSVC_VERSION: 15 - DEPLOY_CORE: 1 - DEPLOY_PYTHON_BINDINGS: 1 - DEPLOY_JAVA_BINDINGS: 1 - DEPLOY_PERL_BINDINGS: 1 - DEPLOY_CSHARP_BINDINGS: 1 - - MBITS: 64 - PYTHON_VERSION: 37 - MSVC_VERSION: 15 - DEPLOY_CORE: 1 - DEPLOY_PYTHON_BINDINGS: 1 - DEPLOY_JAVA_BINDINGS: 1 - DEPLOY_PERL_BINDINGS: 1 - DEPLOY_CSHARP_BINDINGS: 1 - - - MBITS: 32 - PYTHON_VERSION: 37 - MSVC_VERSION: 14 - DEPLOY_CORE: 1 - - MBITS: 64 - PYTHON_VERSION: 37 - MSVC_VERSION: 14 - DEPLOY_CORE: 1 +platform: x64 - -install: - - ps: | - if ($env:MBITS -eq "32") { - echo "Architecture set to 32 bit." - $env:CMAKE_GENERATOR="Visual Studio $env:MSVC_VERSION" - $env:PYTHON_PATH="C:/Python$env:PYTHON_VERSION" - } elseif ($env:MBITS -eq "64") { - 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:MBITS -eq "32") { - choco install -y --no-progress --forcex86 strawberryperl - } elseif ($env:MBITS -eq "64") { - 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:DEPLOY_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:DEPLOY_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 +configuration: Release build_script: - - cd build - - msbuild /p:configuration=Release /v:m ALL_BUILD.vcxproj - - cd ../ - - ps: | - if ($Env:DEPLOY_PERL_BINDINGS -eq "1") { - cd build-perl - gmake - if ($LastExitCode -ne 0) { throw "Perl bindings: gmake failed with exit code $LastExitCode" } - cd ../ - } - - -after_build: - - ps: $env:CORE_PACKAGE_NAME = 'sourcetraildb_core_' + $env:UNDERSCORED_CORE_VERSION + '-windows-' + $env:MBITS + 'bit-msvc' + $env:MSVC_VERSION - - ps: $env:PYTHON_PACKAGE_NAME = 'sourcetraildb_python' + $env:PYTHON_VERSION + '_' + $env:UNDERSCORED_CORE_VERSION + '-windows-' + $env:MBITS + 'bit' - - ps: $env:JAVA_PACKAGE_NAME = 'sourcetraildb_java_' + $env:UNDERSCORED_CORE_VERSION + '-windows-' + $env:MBITS + 'bit' - - ps: $env:PERL_PACKAGE_NAME = 'sourcetraildb_strawberry-perl-' + $env:PERL_VERSION + '_' + $env:UNDERSCORED_CORE_VERSION + '-windows-' + $env:MBITS + 'bit' - - ps: $env:CSHARP_PACKAGE_NAME = 'sourcetraildb_csharp_' + $env:UNDERSCORED_CORE_VERSION + '-windows-' + $env:MBITS + 'bit' - - ps: echo $env:CORE_PACKAGE_NAME - - ps: echo $env:PYTHON_PACKAGE_NAME - - ps: echo $env:JAVA_PACKAGE_NAME - - ps: echo $env:PERL_PACKAGE_NAME - - ps: echo $env:CSHARP_PACKAGE_NAME - - - ps: $env:ARTIFACTS_TO_DEPLOY = "" - - - ps: | - mkdir artifacts_core - if ($env:DEPLOY_CORE -eq "1") { - cd artifacts_core - mkdir $env:CORE_PACKAGE_NAME - cd $env:CORE_PACKAGE_NAME - mkdir lib - mkdir include - mkdir license - cd ../.. - - copy build/core/release/sourcetraildb.lib artifacts_core/$env:CORE_PACKAGE_NAME/lib/ - copy build/core/include/version.h artifacts_core/$env:CORE_PACKAGE_NAME/include/ - copy core/include/* artifacts_core/$env:CORE_PACKAGE_NAME/include/ - copy LICENSE.txt artifacts_core/$env:CORE_PACKAGE_NAME/license/license_sourcetraildb.txt - copy external/catch/license_catch.txt artifacts_core/$env:CORE_PACKAGE_NAME/license/ - copy external/cpp_sqlite/license_cpp_sqlite.txt artifacts_core/$env:CORE_PACKAGE_NAME/license/ - copy external/json/license_json.txt artifacts_core/$env:CORE_PACKAGE_NAME/license/ - - $env:ARTIFACTS_TO_DEPLOY = $env:ARTIFACTS_TO_DEPLOY + "," + $env:CORE_PACKAGE_NAME - } - - ps: | - mkdir artifacts_bindings_python - if ($env:DEPLOY_PYTHON_BINDINGS -eq "1") { - cd artifacts_bindings_python - mkdir $env:PYTHON_PACKAGE_NAME - cd $env:PYTHON_PACKAGE_NAME - mkdir license - cd ../.. - - copy build/bindings_python/release/_sourcetraildb.pyd artifacts_bindings_python/$env:PYTHON_PACKAGE_NAME/ - copy build/bindings_python/sourcetraildb.py artifacts_bindings_python/$env:PYTHON_PACKAGE_NAME/ - copy LICENSE.txt artifacts_bindings_python/$env:PYTHON_PACKAGE_NAME/license/license_sourcetraildb.txt - copy external/catch/license_catch.txt artifacts_bindings_python/$env:PYTHON_PACKAGE_NAME/license/ - copy external/cpp_sqlite/license_cpp_sqlite.txt artifacts_bindings_python/$env:PYTHON_PACKAGE_NAME/license/ - copy external/json/license_json.txt artifacts_bindings_python/$env:PYTHON_PACKAGE_NAME/license/ - - $env:ARTIFACTS_TO_DEPLOY = $env:ARTIFACTS_TO_DEPLOY + "," + $env:PYTHON_PACKAGE_NAME - } - - ps: | - mkdir artifacts_bindings_java - if ($env:DEPLOY_JAVA_BINDINGS -eq "1") { - cd artifacts_bindings_java - mkdir $env:JAVA_PACKAGE_NAME - cd $env:JAVA_PACKAGE_NAME - mkdir license - cd ../.. - - copy build/bindings_java/release/_sourcetraildb.dll artifacts_bindings_java/$env:JAVA_PACKAGE_NAME/ - copy build/bindings_java/SourcetrailDB.jar artifacts_bindings_java/$env:JAVA_PACKAGE_NAME/ - copy LICENSE.txt artifacts_bindings_java/$env:JAVA_PACKAGE_NAME/license/license_sourcetraildb.txt - copy external/catch/license_catch.txt artifacts_bindings_java/$env:JAVA_PACKAGE_NAME/license/ - copy external/cpp_sqlite/license_cpp_sqlite.txt artifacts_bindings_java/$env:JAVA_PACKAGE_NAME/license/ - copy external/json/license_json.txt artifacts_bindings_java/$env:JAVA_PACKAGE_NAME/license/ - - $env:ARTIFACTS_TO_DEPLOY = $env:ARTIFACTS_TO_DEPLOY + "," + $env:JAVA_PACKAGE_NAME - } - - ps: | - mkdir artifacts_bindings_perl - if ($env:DEPLOY_PERL_BINDINGS -eq "1") { - cd artifacts_bindings_perl - mkdir $env:PERL_PACKAGE_NAME - cd $env:PERL_PACKAGE_NAME - mkdir license - cd ../.. - - copy build-perl/bindings_perl/sourcetraildb.dll artifacts_bindings_perl/$env:PERL_PACKAGE_NAME/ - copy build-perl/bindings_perl/sourcetraildb.pm artifacts_bindings_perl/$env:PERL_PACKAGE_NAME/ - copy LICENSE.txt artifacts_bindings_perl/$env:PERL_PACKAGE_NAME/license/license_sourcetraildb.txt - copy external/catch/license_catch.txt artifacts_bindings_perl/$env:PERL_PACKAGE_NAME/license/ - copy external/cpp_sqlite/license_cpp_sqlite.txt artifacts_bindings_perl/$env:PERL_PACKAGE_NAME/license/ - copy external/json/license_json.txt artifacts_bindings_perl/$env:PERL_PACKAGE_NAME/license/ - - $env:ARTIFACTS_TO_DEPLOY = $env:ARTIFACTS_TO_DEPLOY + "," + $env:PERL_PACKAGE_NAME - } - - ps: | - mkdir artifacts_bindings_csharp - if ($env:DEPLOY_CSHARP_BINDINGS -eq "1") { - cd artifacts_bindings_csharp - mkdir $env:CSHARP_PACKAGE_NAME - cd $env:CSHARP_PACKAGE_NAME - mkdir license - cd ../.. - - copy build/bindings_csharp/release/SourcetrailDB.dll artifacts_bindings_csharp/$env:CSHARP_PACKAGE_NAME/ - copy build/bindings_csharp/DefinitionKind.cs artifacts_bindings_csharp/$env:CSHARP_PACKAGE_NAME/ - copy build/bindings_csharp/ReferenceKind.cs artifacts_bindings_csharp/$env:CSHARP_PACKAGE_NAME/ - copy build/bindings_csharp/sourcetraildb.cs artifacts_bindings_csharp/$env:CSHARP_PACKAGE_NAME/ - copy build/bindings_csharp/sourcetraildbPINVOKE.cs artifacts_bindings_csharp/$env:CSHARP_PACKAGE_NAME/ - copy build/bindings_csharp/SymbolKind.cs artifacts_bindings_csharp/$env:CSHARP_PACKAGE_NAME/ - copy LICENSE.txt artifacts_bindings_csharp/$env:CSHARP_PACKAGE_NAME/license/license_sourcetraildb.txt - copy external/catch/license_catch.txt artifacts_bindings_csharp/$env:CSHARP_PACKAGE_NAME/license/ - copy external/cpp_sqlite/license_cpp_sqlite.txt artifacts_bindings_csharp/$env:CSHARP_PACKAGE_NAME/license/ - copy external/json/license_json.txt artifacts_bindings_csharp/$env:CSHARP_PACKAGE_NAME/license/ - - $env:ARTIFACTS_TO_DEPLOY = $env:ARTIFACTS_TO_DEPLOY + "," + $env:CSHARP_PACKAGE_NAME - } - - ps: | - $env:ARTIFACTS_TO_DEPLOY = $env:ARTIFACTS_TO_DEPLOY.substring(1) - echo $env:ARTIFACTS_TO_DEPLOY - - -test_script: - - "build\\core\\release\\test_core.exe" - - -artifacts: - - path: artifacts_core - name: $(CORE_PACKAGE_NAME) - type: Zip - - path: artifacts_bindings_python - name: $(PYTHON_PACKAGE_NAME) - type: Zip - - path: artifacts_bindings_java - name: $(JAVA_PACKAGE_NAME) - type: Zip - - path: artifacts_bindings_perl - name: $(PERL_PACKAGE_NAME) - type: Zip - - path: artifacts_bindings_csharp - name: $(CSHARP_PACKAGE_NAME) - type: Zip - - -deploy: - provider: GitHub - artifact: $(ARTIFACTS_TO_DEPLOY) - auth_token: - secure: 8UwbjFrtR19GxLgL3O3efUT0Su2mp3+X23YioThJITupEvexmQJPAf3Whmmb3eeL - on: - appveyor_repo_tag: true + - echo running! \ No newline at end of file