Add Windows build.

pull/493/head
KmolYuan 2019-09-23 13:28:43 +08:00
parent cfe0c75f30
commit d9abfe3d52
3 changed files with 82 additions and 15 deletions

View File

@ -1,5 +1,3 @@
language: python
matrix: matrix:
include: include:
@ -34,9 +32,10 @@ matrix:
os: linux os: linux
sudo: required sudo: required
dist: xenial dist: xenial
language: python
python: "3.6" python: "3.6"
install: &python-install install: &python-install
- cd cython && python3 -m pip install -r requirements.txt && cd - - python3 -m pip install -r cython/requirements.txt
script: &python-script script: &python-script
- cd cython && python3 setup.py test && cd - - cd cython && python3 setup.py test && cd -
deploy: deploy:
@ -74,7 +73,7 @@ matrix:
script: *python-script script: *python-script
after_success: after_success:
# PyPI deployment # PyPI deployment
- if [ -n "$TRAVIS_TAG" ]; then - if [ "$TRAVIS_REPO_SLUG" == "KmolYuan/solvespace" && -n "$TRAVIS_TAG" ]; then
python3 -m pip install twine; python3 -m pip install twine;
python3 setup.py sdist bdist_wheel; python3 setup.py sdist bdist_wheel;
python3 -m twine upload cython/dist/*.whl --skip-existing; python3 -m twine upload cython/dist/*.whl --skip-existing;

View File

@ -1,7 +1,17 @@
version: '{build}' version: '{build}'
clone_depth: 1 clone_depth: 1
environment:
MSYS_DIR: C:\msys64
matrix:
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
PYTHON_DIR: C:\Python36-x64
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
PYTHON_DIR: C:\Python37-x64
for: for:
- image: Visual Studio 2013 - matrix:
only:
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013
before_build: before_build:
- git submodule update --init - git submodule update --init
- set tag=x%APPVEYOR_REPO_TAG_NAME% - set tag=x%APPVEYOR_REPO_TAG_NAME%
@ -14,6 +24,55 @@ for:
- msbuild "build\test\solvespace-testsuite.vcxproj" /verbosity:minimal /property:Configuration=%BUILD_TYPE% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" - msbuild "build\test\solvespace-testsuite.vcxproj" /verbosity:minimal /property:Configuration=%BUILD_TYPE% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
test_script: test_script:
- build\bin\%BUILD_TYPE%\solvespace-testsuite.exe - build\bin\%BUILD_TYPE%\solvespace-testsuite.exe
deploy:
- provider: GitHub
auth_token:
secure: P9/pf2nM+jlWKe7pCjMp41HycBNP/+5AsmE/TETrDUoBOa/9WFHelqdVFrbRn9IC
description: ""
artifact: solvespace.exe,solvespace-cli.exe,solvespace.pdb
on:
APPVEYOR_REPO_NAME: solvespace/solvespace
APPVEYOR_REPO_TAG: true
- matrix:
only:
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
PYTHON_DIR: C:\Python36-x64
install: &python-install
# Environment variables
- set Path=%MSYS_DIR%\mingw64\bin;%MSYS_DIR%\usr\bin;%Path%
- set Path=%PYTHON_DIR%;%PYTHON_DIR%\Scripts;%Path%
# Show Python
- python --version
- pip --version
# Upgrade setuptools
- pip install setuptools -U
# Set Python compiler to MinGW
- cython\platform\set_pycompiler %PYTHON_DIR%
# Install modules
- pip install -r cython\requirements.txt
# Show tool kits
- gcc --version
- mingw32-make --version
build_script: &python-script
- cd cython && python setup.py test && cd ..
deploy_script: &python-deploy
# PyPI deployment
- IF "%APPVEYOR_REPO_TAG%"=="true"
IF "%APPVEYOR_REPO_NAME%"=="KmolYuan/solvespace" (
pip install twine &&
cd cython &&
python setup.py bdist_wheel &&
twine upload dist\*.whl --skip-existing
)
- matrix:
only:
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
PYTHON_DIR: C:\Python37-x64
install: *python-install
build_script: *python-script
deploy_script: *python-deploy
artifacts: artifacts:
- path: build\bin\%BUILD_TYPE%\solvespace.exe - path: build\bin\%BUILD_TYPE%\solvespace.exe
@ -22,13 +81,4 @@ artifacts:
name: solvespace-cli.exe name: solvespace-cli.exe
- path: build\bin\%BUILD_TYPE%\solvespace.pdb - path: build\bin\%BUILD_TYPE%\solvespace.pdb
name: solvespace.pdb name: solvespace.pdb
- path: cython\dist\*.whl
deploy:
- provider: GitHub
auth_token:
secure: P9/pf2nM+jlWKe7pCjMp41HycBNP/+5AsmE/TETrDUoBOa/9WFHelqdVFrbRn9IC
description: ""
artifact: solvespace.exe,solvespace-cli.exe,solvespace.pdb
on:
APPVEYOR_REPO_NAME: solvespace/solvespace
APPVEYOR_REPO_TAG: true

View File

@ -0,0 +1,18 @@
echo off
REM Usage: set_pycompiler C:\Python37
REM Where %PYTHON_DIR% is the directory of your Python installation.
REM In Pyslvs project.
set HERE=%~dp0
set PYTHON_DIR=%1
REM Create "distutils.cfg"
echo [build]>> "%PYTHON_DIR%\Lib\distutils\distutils.cfg"
echo compiler=mingw32>> "%PYTHON_DIR%\Lib\distutils\distutils.cfg"
REM Apply the patch of "cygwinccompiler.py".
REM Unix "patch" command of Msys.
patch "%PYTHON_DIR%\lib\distutils\cygwinccompiler.py" "%HERE%patch.diff"
REM Copy "vcruntime140.dll" to "libs".
copy "%PYTHON_DIR%\vcruntime140.dll" "%PYTHON_DIR%\libs"