/ .travis.yml
.travis.yml
 1  # Travis CI configuration for automated .mpy file generation.
 2  # Author: Tony DiCola
 3  # License: Public Domain
 4  # This configuration will work with Travis CI (travis-ci.org) to automacially
 5  # build .mpy files for CircuitPython when a new tagged release is created.  This
 6  # file is relatively generic and can be shared across multiple repositories by
 7  # following these steps:
 8  #   1. Copy this file into a .travis.yml file in the root of the repository.
 9  #   2. Change the deploy > file section below to list each of the .mpy files
10  #      that should be generated.  The config will automatically look for
11  #      .py files with the same name as the source for generating the .mpy files.
12  #      Note that the .mpy extension should be lower case!
13  #   3. Commit the .travis.yml file and push it to GitHub.
14  #   4. Go to travis-ci.org and find the repository (it needs to be setup to access
15  #      your github account, and your github account needs access to write to the
16  #      repo).  Flip the 'ON' switch on for Travis and the repo, see the Travis
17  #      docs for more details: https://docs.travis-ci.com/user/getting-started/
18  #   5. Get a GitHub 'personal access token' which has at least 'public_repo' or
19  #      'repo' scope: https://help.github.com/articles/creating-an-access-token-for-command-line-use/
20  #      Keep this token safe and secure!  Anyone with the token will be able to
21  #      access and write to your GitHub repositories.  Travis will use the token
22  #      to attach the .mpy files to the release.
23  #   6. In the Travis CI settings for the repository that was enabled find the
24  #      environment variable editing page: https://docs.travis-ci.com/user/environment-variables/#Defining-Variables-in-Repository-Settings
25  #      Add an environment variable named GITHUB_TOKEN and set it to the value
26  #      of the GitHub personal access token above.  Keep 'Display value in build
27  #      log' flipped off.
28  #   7. That's it!  Tag a release and Travis should go to work to add .mpy files
29  #      to the release.  It takes about a 2-3 minutes for a worker to spin up,
30  #      build mpy-cross, and add the binaries to the release.
31  language: generic
32  
33  sudo: true
34  
35  deploy:
36    provider: releases
37    api_key: $GITHUB_TOKEN
38    file:
39    - "hcsr04.mpy"
40    skip_cleanup: true
41    on:
42      tags: true
43  
44  before_install:
45  - sudo apt-get -yqq update
46  - sudo apt-get install -y build-essential git python python-pip
47  - git clone https://github.com/adafruit/circuitpython.git
48  - make -C circuitpython/mpy-cross
49  - export PATH=$PATH:$PWD/circuitpython/mpy-cross/
50  - sudo pip install shyaml
51  
52  before_deploy:
53  - shyaml get-values deploy.file < .travis.yml | sed 's/.mpy/.py/' | xargs -L1 mpy-cross