mirror of
https://github.com/platformio/platformio-core.git
synced 2025-07-30 10:07:14 +02:00
Use only 1 example per framework for CI
This commit is contained in:
@ -14,8 +14,8 @@
|
|||||||
|
|
||||||
import random
|
import random
|
||||||
from glob import glob
|
from glob import glob
|
||||||
from os import getenv, listdir, walk
|
from os import listdir, walk
|
||||||
from os.path import dirname, getsize, isdir, isfile, join, normpath
|
from os.path import basename, dirname, getsize, isdir, isfile, join, normpath
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
@ -50,20 +50,21 @@ def pytest_generate_tests(metafunc):
|
|||||||
|
|
||||||
project_dirs = []
|
project_dirs = []
|
||||||
for examples_dir in examples_dirs:
|
for examples_dir in examples_dirs:
|
||||||
platform_examples = []
|
candidates = {}
|
||||||
for root, _, files in walk(examples_dir):
|
for root, _, files in walk(examples_dir):
|
||||||
if "platformio.ini" not in files or ".skiptest" in files:
|
if "platformio.ini" not in files or ".skiptest" in files:
|
||||||
continue
|
continue
|
||||||
platform_examples.append(root)
|
group = basename(root)
|
||||||
|
if "-" in group:
|
||||||
|
group = group.split("-", 1)[0]
|
||||||
|
if group not in candidates:
|
||||||
|
candidates[group] = []
|
||||||
|
candidates[group].append(root)
|
||||||
|
|
||||||
random.shuffle(platform_examples)
|
project_dirs.extend([
|
||||||
|
random.choice(examples) for examples in candidates.values()
|
||||||
if getenv("APPVEYOR"):
|
if examples
|
||||||
# use only 1 example for AppVeyor CI
|
])
|
||||||
project_dirs.append(platform_examples[0])
|
|
||||||
else:
|
|
||||||
# test random 3 examples
|
|
||||||
project_dirs.extend(platform_examples[:3])
|
|
||||||
|
|
||||||
metafunc.parametrize("pioproject_dir", sorted(project_dirs))
|
metafunc.parametrize("pioproject_dir", sorted(project_dirs))
|
||||||
|
|
||||||
@ -75,7 +76,8 @@ def test_run(pioproject_dir):
|
|||||||
if isdir(build_dir):
|
if isdir(build_dir):
|
||||||
util.rmtree_(build_dir)
|
util.rmtree_(build_dir)
|
||||||
|
|
||||||
env_names = ProjectConfig(join(pioproject_dir, "platformio.ini")).envs()
|
env_names = ProjectConfig(join(pioproject_dir,
|
||||||
|
"platformio.ini")).envs()
|
||||||
result = util.exec_command(
|
result = util.exec_command(
|
||||||
["platformio", "run", "-e",
|
["platformio", "run", "-e",
|
||||||
random.choice(env_names)])
|
random.choice(env_names)])
|
||||||
|
Reference in New Issue
Block a user