Giter Site home page Giter Site logo

openastronomy / azure-pipelines-templates Goto Github PK

View Code? Open in Web Editor NEW
11.0 11.0 20.0 311 KB

An opinionated set of Azure Pipelines templates for Python projects using pyproject.toml (PEP517) and tox

Home Page: https://openastronomy-azure-pipelines.readthedocs.io/en/latest/

License: BSD 2-Clause "Simplified" License

Python 36.25% C 0.56% Cython 5.83% Shell 57.36%

azure-pipelines-templates's Introduction

openastronomy

General repo

azure-pipelines-templates's People

Contributors

astrofrog avatar astrojuanlu avatar ayshih avatar cadair avatar conormacbride avatar dstansby avatar nabobalis avatar odidev avatar samaloney avatar stanczakdominik avatar wtbarnes avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

azure-pipelines-templates's Issues

Allow tox version to be specified

Allow a version to passed to the tox install command:

- ${{ if variables.docker_image }}:
- script: docker exec -i -w /project ${{ variables.docker_name }} ${{ variables.setarch }} ${{ variables.docker_python_exec }} -m pip install --upgrade tox ${{ variables.toxdeps }}
displayName: Install tox

- ${{ if not(variables.docker_image) }}:
- script: python -m pip install --upgrade tox ${{ variables.toxdeps }}
displayName: Install tox

Allow installing from brew cask?

Currently one can do

jobs:
- template: run-tox-env.yml@OpenAstronomy
  parameters:
    libraries:
      brew:
        - gfortran

But in this example installing gfortran doesn't work, because it needs to install from cask (ie. brew cask install gfortran). It would be nice if there was an option to install packages using brew cask.

Allow PublishTestResults to be skipped

Currently PublishTestResults is always run in the tox template, but this doesn't make sense for e.g. pep8 or docs builds, so it might be good to have a way to control this.

Build aarch64 wheels

Wheels for aarch64 are very desirable because ARM can be more cost-effective for cloud computing (e.g. AWS Graviton EC2 instance types). PyPI, pip, manylinux, and cibuildwheel have all supported aarch64 for some time now.

By and large, free CI services are not yet providing aarch64 runners. However, cibuildwheel can automatically build wheels for non-native archs using qemu:

--archs ARCHS         Comma-separated list of CPU architectures to build
                      for. When set to 'auto', builds the architectures
                      natively supported on this machine. Set this option to
                      build an architecture via emulation, for example,
                      using binfmt_misc and QEMU. Default: auto. Choices:
                      auto, native, all, x86_64, i686, aarch64, ppc64le,
                      s390x, x86, AMD64

It should be as simple as setting CIBW_ARCHS="x86_64 aarch64".

Don't set posargs for docs builds

Currently the junit etc. arguments get passed to tox for any environment, but we don't want this for non-test builds. I'm not sure what the correct way is to deal with this, but just something to think about, otherwise we can't have {posargs} for non-pytest envs.

Add some quick exit thing for [ci skip]?

We could add something here which insta-passes the build if [ci skip] etc are in the commit message? We could even add the ability to have an individual skip for each build?

Allow xvfb to be specified per job

Currently we are a bit inconsistent in which things can be set at job level and which ones globally. I think we should add xvfb to the job level.

Add support for 32-bit linux

For several astropy packages I'd like to keep testing 32-bit linux. It might be a bit trickier to do this and we might need a special branch in the template, but I think it'd be worth it! We could always explicitly not support e.g. conda on there.

Explain why submodules: false might be needed

For astropy core I had to set submodules: false but I don't understand why Azure wasn't able to check out the submodule. We should probably explain in the docs why this is needed.

Allow posargs to be specified globally

Currently we are a bit inconsistent in which things can be set at job level and which ones globally. I think we should add posargs to the global level.

Building wheels with auditwheel and external libraries?

I was trying to build wheels for sunkit-image which requires an external dependency on fftw3 (sunpy/sunkit-image#41) and was unable to pass through the libraries for it (which I can pass into for the tests).

I would also require auditwheel (https://github.com/pypa/auditwheel) to repair the wheel after creation. I see that cibuildwheels in the last version has added support for calling repair but I would need to still be able to install libraries at the publish stage.

Is this possible right now or something that would need to be added?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.