twblue/appveyor.yml

84 lines
3.1 KiB
YAML
Raw Normal View History

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