From b4b0b53103933baedab79cf4ddaa3d0b6ffb614c Mon Sep 17 00:00:00 2001 From: Saksham Bansal Date: Thu, 19 Jul 2018 22:43:15 +0700 Subject: [PATCH] appveyor.yml: Mobanise appveyor Closes https://github.com/coala/coala-quickstart/issues/265 --- .ci/appveyor.yml | 33 +++++++---- .ci/run_with_env.cmd | 135 ++++++++++++++++++++++++++++--------------- .moban.yaml | 4 ++ 3 files changed, 115 insertions(+), 57 deletions(-) diff --git a/.ci/appveyor.yml b/.ci/appveyor.yml index e1f5ce1..53a5bfe 100644 --- a/.ci/appveyor.yml +++ b/.ci/appveyor.yml @@ -4,18 +4,22 @@ environment: # /E:ON and /V:ON options are not enabled in the batch script intepreter # See: http://stackoverflow.com/a/13751649/163740 CMD_IN_ENV: "cmd /E:ON /V:ON /C .\\.ci\\run_with_env.cmd" + PIP_CACHE_DIR: C:\pip_cache matrix: - PYTHON: "C:\\Python34" - PYTHON_VERSION: "3.4" + PYTHON_VERSION: "3.4.4" PYTHON_ARCH: "32" - PYTHON: "C:\\Python34-x64" - PYTHON_VERSION: "3.4" + PYTHON_VERSION: "3.4.4" PYTHON_ARCH: "64" cache: - "C:\\pip_cache" + - "node_modules" + - "C:\\Users\\appveyor\\AppData\\Local\\coala-bears\\coala-bears" + - "C:\\Users\\appveyor\\AppData\\Roaming\\nltk_data" branches: except: @@ -25,23 +29,32 @@ install: # Prepend newly installed Python to the PATH of this build (this cannot be # done from inside the powershell script as it would require to restart # the parent CMD process). - - set PATH=%PYTHON%;%PYTHON%\Scripts;%PATH%; + - "SET PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH%" # Check that we have the expected version and architecture for Python - "python --version" - "python -c \"import struct; print(struct.calcsize('P') * 8)\"" - - - > - "%CMD_IN_ENV% python -m pip install --upgrade pip setuptools - - > - "%CMD_IN_ENV% python -m pip install - --cache-dir=C:\\pip_cache -r requirements.txt -r test-requirements.txt + - "%CMD_IN_ENV% python -m pip install --upgrade setuptools==21" + - "%CMD_IN_ENV% python -m pip install -r requirements.txt \ + -r test-requirements.txt" build: false # Not a C# project, build stuff at the test step instead. test_script: - - "%CMD_IN_ENV% pytest" + - "%CMD_IN_ENV% py.test" - "%CMD_IN_ENV% python setup.py install" + - "%CMD_IN_ENV% python -m pip install \ + git+https://github.com/coala/coala" + - "%CMD_IN_ENV% python -m pip install \ + git+https://github.com/coala/coala-bears" + - sed -i '/ShellCheckBear/d' .coafile + - "%CMD_IN_ENV% coala --ci" + +on_success: + - codecov + +on_failure: + - codecov matrix: fast_finish: true diff --git a/.ci/run_with_env.cmd b/.ci/run_with_env.cmd index 8204051..5da547c 100644 --- a/.ci/run_with_env.cmd +++ b/.ci/run_with_env.cmd @@ -1,47 +1,88 @@ -:: To build extensions for 64 bit Python 3, we need to configure environment -:: variables to use the MSVC 2010 C++ compilers from GRMSDKX_EN_DVD.iso of: -:: MS Windows SDK for Windows 7 and .NET Framework 4 (SDK v7.1) -:: -:: To build extensions for 64 bit Python 2, we need to configure environment -:: variables to use the MSVC 2008 C++ compilers from GRMSDKX_EN_DVD.iso of: -:: MS Windows SDK for Windows 7 and .NET Framework 3.5 (SDK v7.0) -:: -:: 32 bit builds do not require specific environment configurations. -:: -:: Note: this script needs to be run with the /E:ON and /V:ON flags for the -:: cmd interpreter, at least for (SDK v7.0) -:: -:: More details at: -:: https://github.com/cython/cython/wiki/64BitCythonExtensionsOnWindows -:: http://stackoverflow.com/a/13751649/163740 -:: -:: Author: Olivier Grisel -:: License: CC0 1.0 Universal: http://creativecommons.org/publicdomain/zero/1.0/ -@ECHO OFF - -SET COMMAND_TO_RUN=%* -SET WIN_SDK_ROOT=C:\Program Files\Microsoft SDKs\Windows - -SET MAJOR_PYTHON_VERSION="%PYTHON_VERSION:~0,1%" -IF %MAJOR_PYTHON_VERSION% == "2" ( - SET WINDOWS_SDK_VERSION="v7.0" -) ELSE IF %MAJOR_PYTHON_VERSION% == "3" ( - SET WINDOWS_SDK_VERSION="v7.1" -) ELSE ( - ECHO Unsupported Python version: "%MAJOR_PYTHON_VERSION%" - EXIT 1 -) - -IF "%PYTHON_ARCH%"=="64" ( - ECHO Configuring Windows SDK %WINDOWS_SDK_VERSION% for Python %MAJOR_PYTHON_VERSION% on a 64 bit architecture - SET DISTUTILS_USE_SDK=1 - SET MSSdk=1 - "%WIN_SDK_ROOT%\%WINDOWS_SDK_VERSION%\Setup\WindowsSdkVer.exe" -q -version:%WINDOWS_SDK_VERSION% - "%WIN_SDK_ROOT%\%WINDOWS_SDK_VERSION%\Bin\SetEnv.cmd" /x64 /release - ECHO Executing: %COMMAND_TO_RUN% - call %COMMAND_TO_RUN% || EXIT 1 -) ELSE ( - ECHO Using default MSVC build environment for 32 bit architecture - ECHO Executing: %COMMAND_TO_RUN% - call %COMMAND_TO_RUN% || EXIT 1 -) +:: To build extensions for 64 bit Python 3, we need to configure environment +:: variables to use the MSVC 2010 C++ compilers from GRMSDKX_EN_DVD.iso of: +:: MS Windows SDK for Windows 7 and .NET Framework 4 (SDK v7.1) +:: +:: To build extensions for 64 bit Python 2, we need to configure environment +:: variables to use the MSVC 2008 C++ compilers from GRMSDKX_EN_DVD.iso of: +:: MS Windows SDK for Windows 7 and .NET Framework 3.5 (SDK v7.0) +:: +:: 32 bit builds, and 64-bit builds for 3.5 and beyond, do not require specific +:: environment configurations. +:: +:: Note: this script needs to be run with the /E:ON and /V:ON flags for the +:: cmd interpreter, at least for (SDK v7.0) +:: +:: More details at: +:: https://github.com/cython/cython/wiki/64BitCythonExtensionsOnWindows +:: http://stackoverflow.com/a/13751649/163740 +:: +:: Author: Olivier Grisel +:: License: CC0 1.0 Universal: http://creativecommons.org/publicdomain/zero/1.0/ +:: +:: Notes about batch files for Python people: +:: +:: Quotes in values are literally part of the values: +:: SET FOO="bar" +:: FOO is now five characters long: " b a r " +:: If you don't want quotes, don't include them on the right-hand side. +:: +:: The CALL lines at the end of this file look redundant, but if you move them +:: outside of the IF clauses, they do not run properly in the SET_SDK_64==Y +:: case, I don't know why. +@ECHO OFF + +SET COMMAND_TO_RUN=%* +SET WIN_SDK_ROOT=C:\Program Files\Microsoft SDKs\Windows +SET WIN_WDK=c:\Program Files (x86)\Windows Kits\10\Include\wdf + +:: Extract the major and minor versions, and allow for the minor version to be +:: more than 9. This requires the version number to have two dots in it. +SET MAJOR_PYTHON_VERSION=%PYTHON_VERSION:~0,1% +IF "%PYTHON_VERSION:~3,1%" == "." ( + SET MINOR_PYTHON_VERSION=%PYTHON_VERSION:~2,1% +) ELSE ( + SET MINOR_PYTHON_VERSION=%PYTHON_VERSION:~2,2% +) + +:: Based on the Python version, determine what SDK version to use, and whether +:: to set the SDK for 64-bit. +IF %MAJOR_PYTHON_VERSION% == 2 ( + SET WINDOWS_SDK_VERSION="v7.0" + SET SET_SDK_64=Y +) ELSE ( + IF %MAJOR_PYTHON_VERSION% == 3 ( + SET WINDOWS_SDK_VERSION="v7.1" + IF %MINOR_PYTHON_VERSION% LEQ 4 ( + SET SET_SDK_64=Y + ) ELSE ( + SET SET_SDK_64=N + IF EXIST "%WIN_WDK%" ( + :: See: https://connect.microsoft.com/VisualStudio/feedback/details/1610302/ + REN "%WIN_WDK%" 0wdf + ) + ) + ) ELSE ( + ECHO Unsupported Python version: "%MAJOR_PYTHON_VERSION%" + EXIT 1 + ) +) + +IF %PYTHON_ARCH% == 64 ( + IF %SET_SDK_64% == Y ( + ECHO Configuring Windows SDK %WINDOWS_SDK_VERSION% for Python %MAJOR_PYTHON_VERSION% on a 64 bit architecture + SET DISTUTILS_USE_SDK=1 + SET MSSdk=1 + "%WIN_SDK_ROOT%\%WINDOWS_SDK_VERSION%\Setup\WindowsSdkVer.exe" -q -version:%WINDOWS_SDK_VERSION% + "%WIN_SDK_ROOT%\%WINDOWS_SDK_VERSION%\Bin\SetEnv.cmd" /x64 /release + ECHO Executing: %COMMAND_TO_RUN% + call %COMMAND_TO_RUN% || EXIT 1 + ) ELSE ( + ECHO Using default MSVC build environment for 64 bit architecture + ECHO Executing: %COMMAND_TO_RUN% + call %COMMAND_TO_RUN% || EXIT 1 + ) +) ELSE ( + ECHO Using default MSVC build environment for 32 bit architecture + ECHO Executing: %COMMAND_TO_RUN% + call %COMMAND_TO_RUN% || EXIT 1 +) diff --git a/.moban.yaml b/.moban.yaml index b78a238..e746bf7 100644 --- a/.moban.yaml +++ b/.moban.yaml @@ -9,6 +9,7 @@ build_version: 0.4.0 package_module: coala_quickstart url: https://github.com/coala/coala-quickstart docs_dir: false +test_py36: false maintainers: false maintainer_list: @@ -38,6 +39,7 @@ dependencies: configuration: template_dir: - ../coala-mobans/templates/ + - ../coala-mobans/assets/ configuration: .moban.yaml configuration_dir: ../coala-mobans/ targets: @@ -46,3 +48,5 @@ targets: - test-requirements.txt: test-requirements.txt.jj2 - coala_quickstart/VERSION: VERSION.jj2 - coala_quickstart/__init__.py: __init__.py.jj2 + - .ci/appveyor.yml: ci/appveyor.yml.jj2 + - .ci/run_with_env.cmd: run_with_env.cmd