From 858c6aa4466b1ac1b853cbcaa51b8e92f30cc0bc Mon Sep 17 00:00:00 2001 From: Maxim Prokhorov Date: Sun, 21 Feb 2021 22:52:28 +0300 Subject: [PATCH] order --- tools/generate-ci-matrix.py | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/tools/generate-ci-matrix.py b/tools/generate-ci-matrix.py index d676147b1..6766e833e 100644 --- a/tools/generate-ci-matrix.py +++ b/tools/generate-ci-matrix.py @@ -1,6 +1,8 @@ import json from platformio.project.config import ProjectConfig +# This will select the same environments as tools/build_ESPeasy.sh + def get_jobs(cfg): for env in cfg.envs(): platform = cfg.get("env:{}".format(env), "platform") @@ -18,26 +20,21 @@ def filter_jobs(jobs, ignore=("spec_",)): yield job -jobs = filter_jobs(get_jobs(ProjectConfig.get_instance())) - -# XXX for testing - -def get_one_of_each(jobs): - seen = set() - for job in jobs: - if not job["chip"] in seen: - seen.add(job["chip"]) - yield job - # ref. https://github.blog/changelog/2020-04-15-github-actions-new-workflow-features/ # we need to echo something like this: # ::set-output name=matrix::{"include": [{"chip": "esp8266", "env": "custom_ESP8266_4M1M"}, {"chip": "esp32", "env": "custom_ESP32_4M316k"}]} -fmt = "::set-output name=matrix::{}" -out = fmt.format(json.dumps({"include": list(get_one_of_each(jobs))})) +if __name__ == "__main__": + jobs = list(filter_jobs(get_jobs(ProjectConfig.get_instance()))) -print(out) + sort = [] + for job in jobs: + if job["chip"] == "esp8266": + sort.append(job["env"]) + sort.sort(key=str.casefold) -# XXX for testing + for s in sort: + print(s) -# ... Normal run will dump the whole jobs list as-is ... + serialized = json.dumps({"include": jobs}) + print("::set-output name=matrix::{}".format(serialized))