Improve Travis CI doc

This commit is contained in:
Ivan Kravets
2015-10-19 18:25:06 +01:00
parent 2e00e5f463
commit 1c63da7f33
6 changed files with 118 additions and 11 deletions

View File

@@ -12,7 +12,7 @@ Here are recent articles about PlatformIO:
2015 2015
^^^^ ^^^^
* Oct 18, 2015 - **Nico Coetzee** - `First Arduino I2C Experience with PaltformIO <https://electronicventurer.wordpress.com/2015/10/18/first-arduino-i2c-experience/>`_ * Oct 18, 2015 - **Nico Coetzee** - `First Arduino I2C Experience with PlatformIO <https://electronicventurer.wordpress.com/2015/10/18/first-arduino-i2c-experience/>`_
* Sep 01, 2015 - **Thomas P. Weldon, Ph.D.** - `Improvised MBED FRDM-K64F Eclipse/PlatformIO Setup and Software Installation <http://thomasweldon.com/tpw/courses/embeddsp/p00pcFrdmK64_eclipsePlatformioSetup.html>`_ * Sep 01, 2015 - **Thomas P. Weldon, Ph.D.** - `Improvised MBED FRDM-K64F Eclipse/PlatformIO Setup and Software Installation <http://thomasweldon.com/tpw/courses/embeddsp/p00pcFrdmK64_eclipsePlatformioSetup.html>`_
* Aug 01, 2015 - **Russell Davis** - `PlatformIO on the Raspberry Pi <http://www.russelldavis.org/2015/08/01/platformio-on-the-raspberry-pi/>`_ * Aug 01, 2015 - **Russell Davis** - `PlatformIO on the Raspberry Pi <http://www.russelldavis.org/2015/08/01/platformio-on-the-raspberry-pi/>`_
* Jul 25, 2015 - **DinoTools** - `Erste Schritte mit PlatformIO (German) <https://www.dinotools.de/2015/07/25/erste-schritte-mit-platformio/>`_ * Jul 25, 2015 - **DinoTools** - `Erste Schritte mit PlatformIO (German) <https://www.dinotools.de/2015/07/25/erste-schritte-mit-platformio/>`_

View File

@@ -22,6 +22,8 @@ containing the build results (showing success or failure), or by posting a
message on an IRC channel. It can be configured to build project on a range of message on an IRC channel. It can be configured to build project on a range of
different :ref:`platforms`. different :ref:`platforms`.
.. contents::
Integration Integration
----------- -----------

View File

@@ -21,6 +21,8 @@ containing the build results (showing success or failure), or by posting a
message on an IRC channel. It can be configured to build project on a range of message on an IRC channel. It can be configured to build project on a range of
different :ref:`platforms`. different :ref:`platforms`.
.. contents::
Integration Integration
----------- -----------

View File

@@ -20,6 +20,8 @@ the way it has been configured to do so — for example, by sending an email
containing the build results (showing success or failure). It can be containing the build results (showing success or failure). It can be
configured to build project on a range of different :ref:`platforms`. configured to build project on a range of different :ref:`platforms`.
.. contents::
Integration Integration
----------- -----------

View File

@@ -24,6 +24,8 @@ containing the build results (showing success or failure), or by posting a
message on an IRC channel. It can be configured to build project on a range of message on an IRC channel. It can be configured to build project on a range of
different :ref:`platforms`. different :ref:`platforms`.
.. contents::
Integration Integration
----------- -----------

View File

@@ -21,10 +21,17 @@ containing the build results (showing success or failure), or by posting a
message on an IRC channel. It can be configured to build project on a range of message on an IRC channel. It can be configured to build project on a range of
different :ref:`platforms`. different :ref:`platforms`.
.. contents::
Integration Integration
----------- -----------
Please put ``.travis.yml`` to the root directory of the GitHub repository. Please make sure to read Travis CI `Getting Started <http://docs.travis-ci.com/user/getting-started/>`_
and `general build configuration <http://docs.travis-ci.com/user/customizing-the-build/>`_
guides first.
PlatformIO is written in Python and is recommended to be run within
`Travis CI Python isolated environment <http://docs.travis-ci.com/user/languages/python/#Travis-CI-Uses-Isolated-virtualenvs>`_:
.. code-block:: yaml .. code-block:: yaml
@@ -32,22 +39,106 @@ Please put ``.travis.yml`` to the root directory of the GitHub repository.
python: python:
- "2.7" - "2.7"
# Cache PlatformIO packages using Travis CI container-based infrastructure
sudo: false
cache:
directories:
- "~/.platformio"
env: env:
- PLATFORMIO_CI_SRC=path/to/source/file.c - PLATFORMIO_CI_SRC=path/to/test/file.c
- PLATFORMIO_CI_SRC=path/to/source/file.ino - PLATFORMIO_CI_SRC=examples/file.ino
- PLATFORMIO_CI_SRC=path/to/source/directory - PLATFORMIO_CI_SRC=path/to/test/directory
install: install:
- python -c "$(curl -fsSL https://raw.githubusercontent.com/platformio/platformio/master/scripts/get-platformio.py)" - pip install -U platformio
script: script:
- platformio ci --board=TYPE_1 --board=TYPE_2 --board=TYPE_N - platformio ci --board=TYPE_1 --board=TYPE_2 --board=TYPE_N
Then perform steps 1, 2 and 4 from http://docs.travis-ci.com/user/getting-started/
Then see step 1, 2, and step 4 here: http://docs.travis-ci.com/user/getting-started/ For more details as for PlatformIO build process please look into :ref:`cmd_ci`.
For more details as for PlatformIO build process please look into :ref:`cmd_ci` Project as a library
command. ~~~~~~~~~~~~~~~~~~~~
When project is written as a library (where own examples or testing code use
it), please use ``--lib="."`` option for :ref:`cmd_ci` command
.. code-block:: yaml
script:
- platformio ci --lib="." --board=TYPE_1 --board=TYPE_2 --board=TYPE_N
Library dependecies
~~~~~~~~~~~~~~~~~~~
There 2 options to test source code with dependent libraries:
Install dependent library using :ref:`librarymanager`
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. code-block:: yaml
install:
- pip install -U platformio
#
# Libraries from PlatformIO Library Registry:
#
# http://platformio.org/#!/lib/show/1/OneWire
platformio lib install 1
Manually download dependent library and include in build process via ``--lib`` option
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. code-block:: yaml
install:
- pip install -U platformio
# download library to the temporary directory
wget https://github.com/PaulStoffregen/OneWire/archive/master.zip -O /tmp/onewire_source.zip
unzip /tmp/onewire_source.zip -d /tmp/
script:
- platformio ci --lib="/tmp/OneWire-master" --board=TYPE_1 --board=TYPE_2 --board=TYPE_N
Custom Build Flags
~~~~~~~~~~~~~~~~~~
PlatformIO allows to specify own build flags using :envvar:`PLATFORMIO_BUILD_FLAGS` environment
.. code-block:: yaml
env:
- PLATFORMIO_CI_SRC=path/to/test/file.c PLATFORMIO_BUILD_FLAGS="-D SPECIFIC_MACROS_PER_TEST_ENV -I/extra/inc"
- PLATFORMIO_CI_SRC=examples/file.ino
- PLATFORMIO_CI_SRC=path/to/test/directory
install:
- pip install -U platformio
export PLATFORMIO_BUILD_FLAGS=-D GLOBAL_MACROS_FOR_ALL_TEST_ENV
For the more details, please follow to
:ref:`available build flags/options <projectconf_build_flags>`.
Advanced configuration
~~~~~~~~~~~~~~~~~~~~~~
PlatformIO allows to configure multiple build environments for the single
source code using :ref:`projectconf`.
Instead of ``--board`` option, please use :option:`platformio ci --project-conf`
.. code-block:: yaml
script:
- platformio ci --project-conf=/path/to/platoformio.ini
Examples Examples
-------- --------
@@ -61,6 +152,12 @@ Examples
python: python:
- "2.7" - "2.7"
# Cache PlatformIO packages using Travis CI container-based infrastructure
sudo: false
cache:
directories:
- "~/.platformio"
env: env:
- PLATFORMIO_CI_SRC=examples/acm/acm_terminal - PLATFORMIO_CI_SRC=examples/acm/acm_terminal
- PLATFORMIO_CI_SRC=examples/Bluetooth/WiiIRCamera PLATFORMIO_BUILD_FLAGS="-DWIICAMERA" - PLATFORMIO_CI_SRC=examples/Bluetooth/WiiIRCamera PLATFORMIO_BUILD_FLAGS="-DWIICAMERA"
@@ -69,9 +166,11 @@ Examples
# - ... # - ...
install: install:
- python -c "$(curl -fsSL https://raw.githubusercontent.com/platformio/platformio/master/scripts/get-platformio.py)" - pip install -U platformio
# Libraries from PlatformIO Library Registry #
# Libraries from PlatformIO Library Registry:
#
# http://platformio.org/#!/lib/show/416/TinyGPS # http://platformio.org/#!/lib/show/416/TinyGPS
# http://platformio.org/#!/lib/show/417/SPI4Teensy3 # http://platformio.org/#!/lib/show/417/SPI4Teensy3
- platformio lib install 416 417 - platformio lib install 416 417