python-appveyor-demo

Demo project for building Python wheels with appveyor.com

  • 所有者: ogrisel/python-appveyor-demo
  • 平台:
  • 許可證: Creative Commons Zero v1.0 Universal
  • 分類:
  • 主題:
  • 喜歡:
    0
      比較:

Github星跟蹤圖

python-appveyor-demo

AppVeyor

Demo project for building Windows Python wheels
using https://appveyor.com. It supports both Python 2 and 3 on 32 and 64 bit
architectures.

AppVeyor is a continuous integration platform similar to travis-ci.org but for
the Windows platform. AppVeyor is free for Open Source projects and runs on the
Microsoft Azure cloud infrastructure.

This sample Python project has a simple C compiled extension (statically
generated from a Cython source file in this case). The build itself is
configured by in the setup.py file.

This project is meant to document a minimalistic yet working example to help
other Python project maintainers.

Continuous integration setup with AppVeyor

The appveyor.yml file in this repo configures a Windows build environment for
both for 32 bit and 64 bit Python compiled extensions. This demo project is
configured to trigger build jobs at:

https://ci.appveyor.com/project/ogrisel/python-appveyor-demo

In particular:

  • the appveyor/install.ps1 powershell script downloads and
    installs Python and and pip to grab all the development dependencies of the
    project as registered in the dev-requirements.txt file.

  • the appveyor/run_in_env.cmd batch script configures environment variables
    to activate the MSVC++ compiler from the Windows SDK matching the Python
    version and architecture.

The content of the dist/ folder (typically hosting the generated .whl
packages) is archived in the build report (see previous link).

Note: it is possible to activate the "Rolling builds" option to
automatically cancel build on intermediate push events to avoid clogging
the build queue with useless jobs. However it can be problematic as it can
cancel builds triggered by direct push to master outside of any PR. Instead
the appveyor.yml file of this repo uses a specific powershell snippet
to quickly fail if a newer build is queued for the same PR.

Building and testing locally from source

Here are the instructions to replicate the build steps manually.

Install developer dependencies (only nose and wheel at this time):

pip install -r dev-requirements.txt

You can then build with:

python setup.py sdist bdist_wheel

The generated source tarball and platform specific .whl package can be found
in the dist subfolder.

Install the .whl package with with:

pip install dist/python_appveyor_demo-1.0-*.whl

Finally run the tests (from any folder by the source tree):

nosetests -v pyappveyordemo

Under Windows will need a Windows SDK to build the compiled
extension with the MSVC++ compilers. See the following for details:

https://github.com/cython/cython/wiki/CythonExtensionsOnWindows

Credits

Thanks to Feodor Fitsner (@FeodorFitsner) from AppVeyor for the fast support
and for installing the old versions of the Windows SDK required to build
Python projects.

Thanks to Thomas Conté (@tomconte) from Microsoft for your help in scripting
Windows SDKs and MSVC build environments usage.

主要指標

概覽
名稱與所有者ogrisel/python-appveyor-demo
主編程語言PowerShell
編程語言Python (語言數: 4)
平台
許可證Creative Commons Zero v1.0 Universal
所有者活动
創建於2014-07-03 15:10:08
推送於2023-05-24 11:58:31
最后一次提交2023-05-24 13:58:31
發布數0
用户参与
星數155
關注者數11
派生數55
提交數76
已啟用問題?
問題數31
打開的問題數16
拉請求數19
打開的拉請求數3
關閉的拉請求數6
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?