Pipelines support

Issue #241 new
Thomas Hondema created an issue

To speedup the testing of code changes it would be beneficial to use Bitbucket pipelines by adding the attached bitbucket-pipelines.yml or similar.

This does not work yet because the module PyQt4 can't be found on the docker image (Debian jessie). Luckily the official Ubuntu image comes with python-2.7.12 and running the tests in a local docker environment works. On pipelines it still doesn't work.

Comments (14)

  1. Juan Pablo Caram repo owner

    If you want to help out with this it would be wonderful. I can assist with whatever you need. Thanks!

  2. Thomas Hondema reporter

    Yes I already have spent some time on this and I have the feeling I'm almost there.

    How do you usually call the test scripts? When I tried 'python tests/test_gerber_flow.py' I got an error (see first post).

  3. Juan Pablo Caram repo owner

    Try:

    python -m unittest discover tests
    

    or

    python -m unittest discover tests test_excellon_flow.py
    

    from the main folder.

  4. Juan Pablo Caram repo owner

    I must say though, that the tests cover probably about 10-20% of the functionality in the program. It has lots of holes and the automated testing wouldn't be very indicative of the real status.

  5. Thomas Hondema reporter

    Having automated tests might encourage the creation of more tests, creating tests is no real fun though.

    I have uploaded an updated version the bitbucket-pipelines.yml with a config that works for me locally but sadly still fails on bitbucket. I'm putting this on hold for a now.

  6. Thomas Hondema reporter

    I use Docker/Kitematic to boot the same images as I use in the script. I clone the repo and cd in to it (should be similar to the Build setup pipelines does), then just try a bunch of commands to get it working. This is a lot faster then pushing a new commit with the changes to the bitbucket-pipelines.yml.

  7. Juan Pablo Caram repo owner

    I would be amazing if you could write up a step-by-step procedure on how to do it. I'm familiar with Docker, but not with automated testing, locally or in Bitbucket.

  8. Roman Valls

    The problem I've just observed with BitBucket's pipeline is that it doesn't support i.e OSX building. Usually in other OSS projects, a combination of TravisCI/CircleCI+Appveyor is used to generate builds for all platforms.

    IMHO, you don't want to choose a platform that does CI if it doesn't do CD for your releases. I might look at it once I'm done with the PyQT5+Python3 port (see recent: https://bitbucket.org/jpcgt/flatcam/pull-requests/75).

  9. Thomas Hondema reporter

    Completely forgot about this. If desired I could assist if you want to dive into this at a later date. I'm not really sure if it isn't possible to cross-build a release but lets hold on to that discussion for when its decided to work on this.

  10. Roman Valls

    Yes it is possible and I've seen it many times deployed over GitHub OSS projects:

    So yes, please, if you can, assist me by:

    1. Forking my python3+pyqt5 branch, referred above in https://bitbucket.org/jpcgt/flatcam/pull-requests/75.
    2. Testing that branch locally as you did before in this thread, with or without docker.
    3. Making minimal test runs with either or all of those CI systems. Even if they turn up "red", it's progress, we just need to keep fixing/pushing.

    Git allows for decentralized work, so there's nothing to be decided, just go and try it out and then show up over here when you have (semi-)working, anyone interested will be happy to help out, me included ;)

  11. Log in to comment