forked from platformio/platformio-core
Switch to Github Actions (#3471)
This commit is contained in:
@ -1,31 +0,0 @@
|
|||||||
build: off
|
|
||||||
|
|
||||||
platform:
|
|
||||||
- x64
|
|
||||||
|
|
||||||
environment:
|
|
||||||
matrix:
|
|
||||||
- TOXENV: "py27"
|
|
||||||
PLATFORMIO_BUILD_CACHE_DIR: C:\Temp\PIO_Build_Cache_P2_{build}
|
|
||||||
PYTHON_DIRS: C:\Python27-x64;C:\Python27-x64\Scripts
|
|
||||||
|
|
||||||
- TOXENV: "py36"
|
|
||||||
PLATFORMIO_BUILD_CACHE_DIR: C:\Temp\PIO_Build_Cache_P3_{build}
|
|
||||||
PYTHON_DIRS: C:\Python36-x64;C:\Python36-x64\Scripts
|
|
||||||
|
|
||||||
install:
|
|
||||||
- cmd: git submodule update --init --recursive
|
|
||||||
- cmd: SET PATH=%PYTHON_DIRS%;C:\MinGW\bin;%PATH%
|
|
||||||
- cmd: SET PLATFORMIO_CORE_DIR=C:\.pio
|
|
||||||
- cmd: pip install --force-reinstall tox
|
|
||||||
|
|
||||||
test_script:
|
|
||||||
- cmd: tox
|
|
||||||
|
|
||||||
notifications:
|
|
||||||
- provider: Slack
|
|
||||||
incoming_webhook:
|
|
||||||
secure: E9H0SU0Ju7WLDvgxsV8cs3J62T3nTTX7QkEjsczN0Sto/c9hWkVfhc5gGWUkxhlD975cokHByKGJIdwYwCewqOI+7BrcT8U+nlga4Uau7J8=
|
|
||||||
on_build_success: false
|
|
||||||
on_build_failure: true
|
|
||||||
on_build_status_changed: true
|
|
42
.github/workflows/core.yml
vendored
Normal file
42
.github/workflows/core.yml
vendored
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
name: Core
|
||||||
|
|
||||||
|
on: [push]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
os: [ubuntu-latest, windows-latest, macos-latest]
|
||||||
|
python-version: [2.7, 3.7]
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Set up Python ${{ matrix.python-version }}
|
||||||
|
uses: actions/setup-python@v1
|
||||||
|
with:
|
||||||
|
python-version: ${{ matrix.python-version }}
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
git submodule update --init --recursive
|
||||||
|
python -m pip install --upgrade pip
|
||||||
|
pip install tox
|
||||||
|
|
||||||
|
- name: Python Lint
|
||||||
|
run: |
|
||||||
|
tox -e lint
|
||||||
|
- name: Integration Tests
|
||||||
|
env:
|
||||||
|
PLATFORMIO_TEST_ACCOUNT_LOGIN: ${{ secrets.PLATFORMIO_TEST_ACCOUNT_LOGIN }}
|
||||||
|
PLATFORMIO_TEST_ACCOUNT_PASSWORD: ${{ secrets.PLATFORMIO_TEST_ACCOUNT_PASSWORD }}
|
||||||
|
run: |
|
||||||
|
tox -e testcore
|
||||||
|
|
||||||
|
- name: Slack Notification
|
||||||
|
uses: homoluctus/slatify@master
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
type: ${{ job.status }}
|
||||||
|
job_name: '*Core*'
|
||||||
|
commit: true
|
||||||
|
url: ${{ secrets.SLACK_BUILD_WEBHOOK }}
|
31
.github/workflows/docs.yml
vendored
Normal file
31
.github/workflows/docs.yml
vendored
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
name: Docs
|
||||||
|
|
||||||
|
on: [push]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Set up Python
|
||||||
|
uses: actions/setup-python@v1
|
||||||
|
with:
|
||||||
|
python-version: 3.7
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
git submodule update --init --recursive
|
||||||
|
python -m pip install --upgrade pip
|
||||||
|
pip install tox
|
||||||
|
|
||||||
|
- name: Build docs
|
||||||
|
run: |
|
||||||
|
tox -e docs
|
||||||
|
|
||||||
|
- name: Slack Notification
|
||||||
|
uses: homoluctus/slatify@master
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
type: ${{ job.status }}
|
||||||
|
job_name: '*Docs*'
|
||||||
|
commit: true
|
||||||
|
url: ${{ secrets.SLACK_BUILD_WEBHOOK }}
|
65
.github/workflows/examples.yml
vendored
Normal file
65
.github/workflows/examples.yml
vendored
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
name: Examples
|
||||||
|
|
||||||
|
on: [push]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
os: [ubuntu-16.04, windows-latest, macos-latest]
|
||||||
|
python-version: [2.7, 3.7]
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Set up Python ${{ matrix.python-version }}
|
||||||
|
uses: actions/setup-python@v1
|
||||||
|
with:
|
||||||
|
python-version: ${{ matrix.python-version }}
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
git submodule update --init --recursive
|
||||||
|
python -m pip install --upgrade pip
|
||||||
|
pip install tox
|
||||||
|
|
||||||
|
- name: Run on Linux
|
||||||
|
if: startsWith(matrix.os, 'ubuntu')
|
||||||
|
env:
|
||||||
|
PLATFORMIO_BUILD_CACHE_DIR: /tmp/pio
|
||||||
|
PIO_INSTALL_DEVPLATFORMS_IGNORE: "ststm8,infineonxmc,intel_mcs51,aceinna_imu"
|
||||||
|
run: |
|
||||||
|
# ChipKIT issue: install 32-bit support for GCC PIC32
|
||||||
|
sudo apt-get install libc6-i386
|
||||||
|
# Free space
|
||||||
|
sudo apt clean
|
||||||
|
docker rmi $(docker image ls -aq)
|
||||||
|
df -h
|
||||||
|
# Run
|
||||||
|
tox -e testexamples
|
||||||
|
|
||||||
|
- name: Run on macOS
|
||||||
|
if: startsWith(matrix.os, 'macos')
|
||||||
|
env:
|
||||||
|
PLATFORMIO_BUILD_CACHE_DIR: /tmp/pio
|
||||||
|
PIO_INSTALL_DEVPLATFORMS_IGNORE: "ststm8,infineonxmc,microchippic32,gd32v,nuclei"
|
||||||
|
run: |
|
||||||
|
df -h
|
||||||
|
tox -e testexamples
|
||||||
|
|
||||||
|
- name: Run on Windows
|
||||||
|
if: startsWith(matrix.os, 'windows')
|
||||||
|
env:
|
||||||
|
PLATFORMIO_CORE_DIR: C:/pio
|
||||||
|
PLATFORMIO_BUILD_CACHE_DIR: C:/pio/tmp
|
||||||
|
PIO_INSTALL_DEVPLATFORMS_IGNORE: "ststm8,infineonxmc,riscv_gap"
|
||||||
|
run: |
|
||||||
|
tox -e testexamples
|
||||||
|
|
||||||
|
- name: Slack Notification
|
||||||
|
uses: homoluctus/slatify@master
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
type: ${{ job.status }}
|
||||||
|
job_name: '*Examples*'
|
||||||
|
commit: true
|
||||||
|
url: ${{ secrets.SLACK_BUILD_WEBHOOK }}
|
39
.travis.yml
39
.travis.yml
@ -1,39 +0,0 @@
|
|||||||
language: python
|
|
||||||
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- os: linux
|
|
||||||
sudo: false
|
|
||||||
python: 2.7
|
|
||||||
env: TOX_ENV=docs
|
|
||||||
- os: linux
|
|
||||||
sudo: required
|
|
||||||
python: 2.7
|
|
||||||
env: TOX_ENV=py27 PLATFORMIO_BUILD_CACHE_DIR=$(mktemp -d)
|
|
||||||
- os: linux
|
|
||||||
sudo: required
|
|
||||||
python: 3.6
|
|
||||||
env: TOX_ENV=py36 PLATFORMIO_BUILD_CACHE_DIR=$(mktemp -d)
|
|
||||||
- os: osx
|
|
||||||
language: generic
|
|
||||||
env: TOX_ENV=skipexamples
|
|
||||||
|
|
||||||
install:
|
|
||||||
- git submodule update --init --recursive
|
|
||||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then curl -fsSL https://bootstrap.pypa.io/get-pip.py | sudo python; fi
|
|
||||||
- pip install -U tox
|
|
||||||
|
|
||||||
# ChipKIT issue: install 32-bit support for GCC PIC32
|
|
||||||
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install libc6-i386; fi
|
|
||||||
|
|
||||||
script:
|
|
||||||
- tox -e $TOX_ENV
|
|
||||||
|
|
||||||
notifications:
|
|
||||||
email: false
|
|
||||||
|
|
||||||
slack:
|
|
||||||
rooms:
|
|
||||||
secure: JD6VGfN4+SLU2CwDdiIOr1VgwD+zbYUCE/srwyGuHavnjIkPItkl6T6Bn8Y4VrU6ysbuKotfdV2TAJJ82ivFbY8BvZBc7FBcYp/AGQ4FaCCV5ySv8RDAcQgdE12oaGzMdODiLqsB85f65zOlAFa+htaXyEiRTcotn6Y2hupatrI=
|
|
||||||
on_failure: always
|
|
||||||
on_success: change
|
|
25
README.rst
25
README.rst
@ -1,12 +1,15 @@
|
|||||||
PlatformIO
|
PlatformIO
|
||||||
==========
|
==========
|
||||||
|
|
||||||
.. image:: https://travis-ci.org/platformio/platformio-core.svg?branch=develop
|
.. image:: https://github.com/platformio/platformio-core/workflows/Core/badge.svg
|
||||||
:target: https://travis-ci.org/platformio/platformio-core
|
:target: https://docs.platformio.org/page/core/index.html
|
||||||
:alt: Travis.CI Build Status
|
:alt: CI Build for PlatformIO Core
|
||||||
.. image:: https://ci.appveyor.com/api/projects/status/unnpw0n3c5k14btn/branch/develop?svg=true
|
.. image:: https://github.com/platformio/platformio-core/workflows/Examples/badge.svg
|
||||||
:target: https://ci.appveyor.com/project/ivankravets/platformio-core
|
:target: https://github.com/platformio/platformio-examples
|
||||||
:alt: AppVeyor.CI Build Status
|
:alt: CI Build for dev-platform examples
|
||||||
|
.. image:: https://github.com/platformio/platformio-core/workflows/Docs/badge.svg
|
||||||
|
:target: https://docs.platformio.org?utm_source=github&utm_medium=core
|
||||||
|
:alt: CI Build for Docs
|
||||||
.. image:: https://img.shields.io/pypi/v/platformio.svg
|
.. image:: https://img.shields.io/pypi/v/platformio.svg
|
||||||
:target: https://pypi.python.org/pypi/platformio/
|
:target: https://pypi.python.org/pypi/platformio/
|
||||||
:alt: Latest Version
|
:alt: Latest Version
|
||||||
@ -45,13 +48,13 @@ PlatformIO
|
|||||||
Get Started
|
Get Started
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
* `What is PlatformIO? <https://docs.platformio.org/en/latest/what-is-platformio.html?utm_source=github&utm_medium=core>`_
|
* `What is PlatformIO? <https://docs.platformio.org/page/what-is-platformio.html?utm_source=github&utm_medium=core>`_
|
||||||
|
|
||||||
Instruments
|
Instruments
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
* `PlatformIO IDE <https://platformio.org/platformio-ide?utm_source=github&utm_medium=core>`_
|
* `PlatformIO IDE <https://platformio.org/platformio-ide?utm_source=github&utm_medium=core>`_
|
||||||
* `PlatformIO Core (CLI) <https://docs.platformio.org/en/latest/core.html?utm_source=github&utm_medium=core>`_
|
* `PlatformIO Core (CLI) <https://docs.platformio.org/page/core.html?utm_source=github&utm_medium=core>`_
|
||||||
* `Library Management <https://docs.platformio.org/page/librarymanager/index.html?utm_source=github&utm_medium=core>`_
|
* `Library Management <https://docs.platformio.org/page/librarymanager/index.html?utm_source=github&utm_medium=core>`_
|
||||||
* `Project Examples <https://github.com/platformio/platformio-examples?utm_source=github&utm_medium=core>`__
|
* `Project Examples <https://github.com/platformio/platformio-examples?utm_source=github&utm_medium=core>`__
|
||||||
* `Desktop IDEs Integration <https://docs.platformio.org/page/ide.html?utm_source=github&utm_medium=core>`_
|
* `Desktop IDEs Integration <https://docs.platformio.org/page/ide.html?utm_source=github&utm_medium=core>`_
|
||||||
@ -64,7 +67,7 @@ Professional
|
|||||||
* `PIO Check <https://docs.platformio.org/page/plus/pio-check.html?utm_source=github&utm_medium=core>`_
|
* `PIO Check <https://docs.platformio.org/page/plus/pio-check.html?utm_source=github&utm_medium=core>`_
|
||||||
* `PIO Remote <https://docs.platformio.org/page/plus/pio-remote.html?utm_source=github&utm_medium=core>`_
|
* `PIO Remote <https://docs.platformio.org/page/plus/pio-remote.html?utm_source=github&utm_medium=core>`_
|
||||||
* `PIO Unified Debugger <https://docs.platformio.org/page/plus/debugging.html?utm_source=github&utm_medium=core>`_
|
* `PIO Unified Debugger <https://docs.platformio.org/page/plus/debugging.html?utm_source=github&utm_medium=core>`_
|
||||||
* `PIO Unit Testing <https://docs.platformio.org/en/latest/plus/unit-testing.html?utm_source=github&utm_medium=core>`_
|
* `PIO Unit Testing <https://docs.platformio.org/page/plus/unit-testing.html?utm_source=github&utm_medium=core>`_
|
||||||
|
|
||||||
Registry
|
Registry
|
||||||
--------
|
--------
|
||||||
@ -140,8 +143,8 @@ Telemetry / Privacy Policy
|
|||||||
Share minimal diagnostics and usage information to help us make PlatformIO better.
|
Share minimal diagnostics and usage information to help us make PlatformIO better.
|
||||||
It is enabled by default. For more information see:
|
It is enabled by default. For more information see:
|
||||||
|
|
||||||
* `Telemetry Setting <https://docs.platformio.org/en/latest/userguide/cmd_settings.html?utm_source=github&utm_medium=core#enable-telemetry>`_
|
* `Telemetry Setting <https://docs.platformio.org/page/userguide/cmd_settings.html?utm_source=github&utm_medium=core#enable-telemetry>`_
|
||||||
* `SSL Setting <https://docs.platformio.org/en/latest/userguide/cmd_settings.html?utm_source=github&utm_medium=core#strict-ssl>`_
|
* `SSL Setting <https://docs.platformio.org/page/userguide/cmd_settings.html?utm_source=github&utm_medium=core#strict-ssl>`_
|
||||||
|
|
||||||
License
|
License
|
||||||
-------
|
-------
|
||||||
|
@ -15,26 +15,29 @@
|
|||||||
import json
|
import json
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
from platformio import util
|
|
||||||
|
import click
|
||||||
|
|
||||||
|
|
||||||
def main():
|
@click.command()
|
||||||
|
@click.option("--desktop", is_flag=True, default=False)
|
||||||
|
@click.option(
|
||||||
|
"--ignore",
|
||||||
|
envvar="PIO_INSTALL_DEVPLATFORMS_IGNORE",
|
||||||
|
help="Ignore names split by comma",
|
||||||
|
)
|
||||||
|
def main(desktop, ignore):
|
||||||
platforms = json.loads(
|
platforms = json.loads(
|
||||||
subprocess.check_output(
|
subprocess.check_output(
|
||||||
["platformio", "platform", "search", "--json-output"]).decode())
|
["platformio", "platform", "search", "--json-output"]
|
||||||
|
).decode()
|
||||||
|
)
|
||||||
|
ignore = [n.strip() for n in (ignore or "").split(",") if n.strip()]
|
||||||
for platform in platforms:
|
for platform in platforms:
|
||||||
if platform['forDesktop']:
|
skip = [not desktop and platform["forDesktop"], platform["name"] in ignore]
|
||||||
|
if any(skip):
|
||||||
continue
|
continue
|
||||||
# RISC-V GAP does not support Windows 86
|
subprocess.check_call(["platformio", "platform", "install", platform["name"]])
|
||||||
if (util.get_systype() == "windows_x86"
|
|
||||||
and platform['name'] == "riscv_gap"):
|
|
||||||
continue
|
|
||||||
# unknown issue on Linux
|
|
||||||
if ("linux" in util.get_systype()
|
|
||||||
and platform['name'] == "aceinna_imu"):
|
|
||||||
continue
|
|
||||||
subprocess.check_call(
|
|
||||||
["platformio", "platform", "install", platform['name']])
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
@ -36,14 +36,6 @@ def pytest_generate_tests(metafunc):
|
|||||||
# dev/platforms
|
# dev/platforms
|
||||||
for manifest in PlatformManager().get_installed():
|
for manifest in PlatformManager().get_installed():
|
||||||
p = PlatformFactory.newPlatform(manifest["__pkg_dir"])
|
p = PlatformFactory.newPlatform(manifest["__pkg_dir"])
|
||||||
ignore_conds = [
|
|
||||||
not p.is_embedded(),
|
|
||||||
p.name in ("ststm8", "infineonxmc"),
|
|
||||||
# issue with "version `CXXABI_1.3.9' not found (required by sdcc)"
|
|
||||||
"linux" in util.get_systype() and p.name == "intel_mcs51",
|
|
||||||
]
|
|
||||||
if any(ignore_conds):
|
|
||||||
continue
|
|
||||||
examples_dir = join(p.get_dir(), "examples")
|
examples_dir = join(p.get_dir(), "examples")
|
||||||
assert isdir(examples_dir)
|
assert isdir(examples_dir)
|
||||||
examples_dirs.append(examples_dir)
|
examples_dirs.append(examples_dir)
|
||||||
@ -70,7 +62,6 @@ def pytest_generate_tests(metafunc):
|
|||||||
metafunc.parametrize("pioproject_dir", sorted(project_dirs))
|
metafunc.parametrize("pioproject_dir", sorted(project_dirs))
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.examples
|
|
||||||
def test_run(pioproject_dir):
|
def test_run(pioproject_dir):
|
||||||
with util.cd(pioproject_dir):
|
with util.cd(pioproject_dir):
|
||||||
config = ProjectConfig()
|
config = ProjectConfig()
|
||||||
|
31
tox.ini
31
tox.ini
@ -13,7 +13,7 @@
|
|||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
[tox]
|
[tox]
|
||||||
envlist = py27, py35, py36, py37, docs
|
envlist = py27,py37
|
||||||
|
|
||||||
[testenv]
|
[testenv]
|
||||||
passenv = *
|
passenv = *
|
||||||
@ -25,13 +25,23 @@ deps =
|
|||||||
pytest
|
pytest
|
||||||
pytest-xdist
|
pytest-xdist
|
||||||
jsondiff
|
jsondiff
|
||||||
|
commands =
|
||||||
|
{envpython} --version
|
||||||
|
|
||||||
|
[testenv:lint]
|
||||||
commands =
|
commands =
|
||||||
{envpython} --version
|
{envpython} --version
|
||||||
pylint --rcfile=./.pylintrc ./platformio
|
pylint --rcfile=./.pylintrc ./platformio
|
||||||
{envpython} -c "print('travis_fold:start:install_devplatforms')"
|
|
||||||
|
[testenv:testcore]
|
||||||
|
commands =
|
||||||
|
{envpython} --version
|
||||||
|
py.test -v --basetemp="{envtmpdir}" tests --ignore tests/test_examples.py
|
||||||
|
|
||||||
|
[testenv:testexamples]
|
||||||
|
commands =
|
||||||
{envpython} scripts/install_devplatforms.py
|
{envpython} scripts/install_devplatforms.py
|
||||||
{envpython} -c "print('travis_fold:end:install_devplatforms')"
|
py.test -v --basetemp="{envtmpdir}" tests/test_examples.py
|
||||||
py.test -v --basetemp="{envtmpdir}" tests
|
|
||||||
|
|
||||||
[testenv:docs]
|
[testenv:docs]
|
||||||
deps =
|
deps =
|
||||||
@ -48,16 +58,3 @@ deps =
|
|||||||
sphinx_rtd_theme
|
sphinx_rtd_theme
|
||||||
commands =
|
commands =
|
||||||
sphinx-build -W -b linkcheck docs docs/_build/html
|
sphinx-build -W -b linkcheck docs docs/_build/html
|
||||||
|
|
||||||
[testenv:skipexamples]
|
|
||||||
commands =
|
|
||||||
py.test -v --basetemp="{envtmpdir}" tests --ignore tests/test_examples.py
|
|
||||||
|
|
||||||
; [testenv:coverage]
|
|
||||||
; basepython = python2
|
|
||||||
; passenv = *
|
|
||||||
; deps =
|
|
||||||
; pytest
|
|
||||||
; pytest-cov
|
|
||||||
; commands =
|
|
||||||
; py.test --cov=platformio --cov-report term --cov-report xml --ignore=tests/test_examples.py --ignore=tests/test_pkgmanifest.py -v tests
|
|
||||||
|
Reference in New Issue
Block a user