twblue/appveyor.yml

84 lines
3.1 KiB
YAML
Raw Normal View History

2018-09-18 13:56:17 -05:00
pull_requests:
# Avoid building after pull requests. Shall we disable this option?
2018-09-18 13:56:17 -05:00
do_not_increment_build_number: true
# Only build whenever we add tags to the repo.
skip_non_tags: true
2018-09-18 13:56:17 -05:00
2018-09-18 10:52:54 -05:00
environment:
matrix:
2018-09-18 13:56:17 -05:00
# List of python versions we want to work with.
2019-10-03 17:34:28 -05:00
- PYTHON: "C:\\Python37"
PYTHON_VERSION: "3.7.x" # currently 2.7.9
2018-09-18 10:52:54 -05:00
PYTHON_ARCH: "32"
2018-09-18 13:56:17 -05:00
# perhaps we may enable this one in future?
2019-10-03 17:34:28 -05:00
# - PYTHON: "C:\\Python37-x64"
# PYTHON_VERSION: "3.7.x" # currently 2.7.9
2018-09-18 13:56:17 -05:00
# PYTHON_ARCH: "64"
# This is important so we will retrieve everything in submodules as opposed to default method.
2018-09-18 11:10:20 -05:00
clone_script:
2018-09-18 11:18:10 -05:00
- 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
2018-09-18 11:10:20 -05:00
2018-09-18 10:52:54 -05:00
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:/\""
2018-09-18 10:52:54 -05:00
# Check that we have the expected version and architecture for Python
2019-10-03 17:50:26 -05:00
- "SET PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH%"
2018-09-18 10:52:54 -05:00
- "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"
2018-09-18 10:52:54 -05:00
# 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"
2019-10-03 17:55:27 -05:00
- "%CMD_IN_ENV% pip install pyenchant"
2018-09-18 10:52:54 -05:00
build_script:
# Build documentation at first, so setup.py won't fail when copying everything.
2018-09-18 12:43:51 -05:00
- "cd doc"
# Import documentation before building, so strings.py will be created.
2018-09-18 12:43:51 -05:00
- "%CMD_IN_ENV% python documentation_importer.py"
# build doc from src folder so it will generate result files right there.
2018-09-18 12:43:51 -05:00
- "cd ..\\src"
2018-09-18 12:33:34 -05:00
- "%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_python3.zip *
2018-09-18 10:52:54 -05:00
artifacts:
2019-10-03 17:34:28 -05:00
- path: snapshot_python3.zip
2018-09-18 16:50:10 -05:00
deploy:
- provider: FTP
host: twblue.es
protocol: ftp
2018-09-18 17:39:09 -05:00
beta: true
2018-09-18 16:50:10 -05:00
username: twblue
password:
secure: ml/xB8YEoZ7DmjzDr+KSNw==
2019-10-03 21:59:04 -05:00
folder: 'web/pubs'