mirror of
https://github.com/MCV-Software/TWBlue.git
synced 2024-11-26 20:53:13 -06:00
84 lines
3.1 KiB
YAML
84 lines
3.1 KiB
YAML
pull_requests:
|
|
# Avoid building after pull requests. Shall we disable this option?
|
|
do_not_increment_build_number: true
|
|
|
|
# Only build whenever we add tags to the repo.
|
|
skip_non_tags: true
|
|
|
|
environment:
|
|
|
|
matrix:
|
|
|
|
# List of python versions we want to work with.
|
|
- PYTHON: "C:\\Python38"
|
|
PYTHON_VERSION: "3.8.x" # currently 2.7.9
|
|
PYTHON_ARCH: "32"
|
|
|
|
# perhaps we may enable this one in future?
|
|
# - PYTHON: "C:\\Python37-x64"
|
|
# PYTHON_VERSION: "3.7.x" # currently 2.7.9
|
|
# PYTHON_ARCH: "64"
|
|
|
|
# This is important so we will retrieve everything in submodules as opposed to default method.
|
|
clone_script:
|
|
- cmd: >-
|
|
git clone -q --branch=%APPVEYOR_REPO_BRANCH% https://github.com/%APPVEYOR_REPO_NAME%.git %APPVEYOR_BUILD_FOLDER%
|
|
&& cd %APPVEYOR_BUILD_FOLDER%
|
|
&& git checkout -qf %APPVEYOR_REPO_COMMIT%
|
|
&& git submodule update --init --recursive
|
|
|
|
install:
|
|
# If there is a newer build queued for the same PR, cancel this one.
|
|
# The AppVeyor 'rollout builds' option is supposed to serve the same
|
|
# purpose but it is problematic because it tends to cancel builds pushed
|
|
# directly to master instead of just PR builds (or the converse).
|
|
# credits: JuliaLang developers.
|
|
- ps: if ($env:APPVEYOR_PULL_REQUEST_NUMBER -and $env:APPVEYOR_BUILD_NUMBER -ne ((Invoke-RestMethod `
|
|
https://ci.appveyor.com/api/projects/$env:APPVEYOR_ACCOUNT_NAME/$env:APPVEYOR_PROJECT_SLUG/history?recordsNumber=50).builds | `
|
|
Where-Object pullRequestId -eq $env:APPVEYOR_PULL_REQUEST_NUMBER)[0].buildNumber) { `
|
|
throw "There are newer queued builds for this pull request, failing early." }
|
|
# - ECHO "Filesystem root:"
|
|
# - ps: "ls \"C:/\""
|
|
|
|
# Check that we have the expected version and architecture for Python
|
|
- "SET PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH%"
|
|
- "python --version"
|
|
- "python -c \"import struct; print(struct.calcsize('P') * 8)\""
|
|
|
|
# Upgrade to the latest version of pip to avoid it displaying warnings
|
|
# about it being out of date.
|
|
- "python -m pip install --upgrade pip setuptools"
|
|
|
|
# Install the build dependencies of the project. If some dependencies contain
|
|
# compiled extensions and are not provided as pre-built wheel packages,
|
|
# pip will build them from source using the MSVC compiler matching the
|
|
# target Python version and architecture
|
|
- "%CMD_IN_ENV% pip install -r requirements.txt"
|
|
- "%CMD_IN_ENV% pip install pyenchant"
|
|
|
|
build_script:
|
|
# Build documentation at first, so setup.py won't fail when copying everything.
|
|
- "cd doc"
|
|
# Import documentation before building, so strings.py will be created.
|
|
- "%CMD_IN_ENV% python documentation_importer.py"
|
|
# build doc from src folder so it will generate result files right there.
|
|
- "cd ..\\src"
|
|
- "%CMD_IN_ENV% python ..\\doc\\generator.py"
|
|
# Build distributable files.
|
|
- "%CMD_IN_ENV% python setup.py build"
|
|
- "cd dist"
|
|
# Zip it all.
|
|
- cmd: 7z a ..\..\snapshot.zip *
|
|
|
|
artifacts:
|
|
- path: snapshot.zip
|
|
|
|
deploy:
|
|
- provider: FTP
|
|
host: twblue.es
|
|
protocol: ftp
|
|
beta: true
|
|
username: twblue.es
|
|
password:
|
|
secure: lQZqpYRnHf4LLVOg0C42NQ==
|
|
folder: 'web/pubs' |