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:\\Python37" PYTHON_VERSION: "3.7.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_python3.zip * artifacts: - path: snapshot_python3.zip deploy: - provider: FTP host: twblue.es protocol: ftp beta: true username: twblue password: secure: ml/xB8YEoZ7DmjzDr+KSNw== folder: 'web/pubs'