mirror of
https://github.com/espressif/esp-idf.git
synced 2026-10-02 11:10:54 +03:00
ci: move integration-test to ci/actions
This commit is contained in:
+3
-1
@@ -18,6 +18,9 @@ workflow:
|
|||||||
# Place the default settings in `.gitlab/ci/common.yml` instead
|
# Place the default settings in `.gitlab/ci/common.yml` instead
|
||||||
|
|
||||||
include:
|
include:
|
||||||
|
- project: "ci/actions/common"
|
||||||
|
file:
|
||||||
|
- "templates/idf/integration-test.yml"
|
||||||
- '.gitlab/ci/common.yml'
|
- '.gitlab/ci/common.yml'
|
||||||
- '.gitlab/ci/rules.yml'
|
- '.gitlab/ci/rules.yml'
|
||||||
- '.gitlab/ci/upload_cache.yml'
|
- '.gitlab/ci/upload_cache.yml'
|
||||||
@@ -25,7 +28,6 @@ include:
|
|||||||
- '.gitlab/ci/static-code-analysis.yml'
|
- '.gitlab/ci/static-code-analysis.yml'
|
||||||
- '.gitlab/ci/pre_check.yml'
|
- '.gitlab/ci/pre_check.yml'
|
||||||
- '.gitlab/ci/build.yml'
|
- '.gitlab/ci/build.yml'
|
||||||
- '.gitlab/ci/integration_test.yml'
|
|
||||||
- '.gitlab/ci/host-test.yml'
|
- '.gitlab/ci/host-test.yml'
|
||||||
- '.gitlab/ci/target-test.yml'
|
- '.gitlab/ci/target-test.yml'
|
||||||
- '.gitlab/ci/deploy.yml'
|
- '.gitlab/ci/deploy.yml'
|
||||||
|
|||||||
@@ -1,69 +0,0 @@
|
|||||||
# generate dynamic integration pipeline by `idf-integration-ci` project
|
|
||||||
|
|
||||||
.patterns-integration_test: &patterns-integration_test
|
|
||||||
# add all possible patterns to make sure `gen_integration_pipeline` can be triggered.
|
|
||||||
# fine-grained control will be done while generating the pipeline
|
|
||||||
# find `patterns` in `idf-integration-ci` project
|
|
||||||
- "components/**/*"
|
|
||||||
- "tools/**/*"
|
|
||||||
- ".gitlab-ci.yml"
|
|
||||||
- ".gitlab/ci/common.yml"
|
|
||||||
- ".gitlab/ci/integration_test.yml"
|
|
||||||
- ".gitmodules"
|
|
||||||
- "CMakeLists.txt"
|
|
||||||
- "install.sh"
|
|
||||||
- "export.sh"
|
|
||||||
- "Kconfig"
|
|
||||||
- "sdkconfig.rename"
|
|
||||||
|
|
||||||
# Simplify the rules
|
|
||||||
.integration_test_rules:
|
|
||||||
rules:
|
|
||||||
- if: '$CI_PIPELINE_SOURCE != "merge_request_event"'
|
|
||||||
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
|
|
||||||
changes: *patterns-integration_test
|
|
||||||
# support trigger by ci labels
|
|
||||||
- if: '$CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*target_test(?:,[^,\n\r]+)*$/i'
|
|
||||||
- if: '$CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*integration_test(?:,[^,\n\r]+)*$/i'
|
|
||||||
- if: '$CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*build(?:,[^,\n\r]+)*$/i'
|
|
||||||
|
|
||||||
gen_integration_pipeline:
|
|
||||||
extends:
|
|
||||||
- .before_script:minimal
|
|
||||||
- .integration_test_rules
|
|
||||||
image: ${CI_INTEGRATION_ASSIGN_ENV}
|
|
||||||
stage: assign_test
|
|
||||||
cache: []
|
|
||||||
tags:
|
|
||||||
- assign_test
|
|
||||||
variables:
|
|
||||||
SUBMODULES_TO_FETCH: "none"
|
|
||||||
GIT_LFS_SKIP_SMUDGE: 1
|
|
||||||
needs:
|
|
||||||
- job: fast_template_app
|
|
||||||
artifacts: false
|
|
||||||
optional: true
|
|
||||||
artifacts:
|
|
||||||
paths:
|
|
||||||
- idf-integration-ci/child_pipeline/
|
|
||||||
expire_in: 2 weeks
|
|
||||||
script:
|
|
||||||
- add_gitlab_ssh_keys
|
|
||||||
- retry_failed git clone ${CI_GEN_INTEGRATION_PIPELINE_REPO} idf-integration-ci
|
|
||||||
- python $CHECKOUT_REF_SCRIPT idf-integration-ci idf-integration-ci
|
|
||||||
- cd idf-integration-ci
|
|
||||||
- python tools/generate_child_pipeline.py -o child_pipeline/
|
|
||||||
|
|
||||||
child_integration_test_pipeline:
|
|
||||||
extends:
|
|
||||||
- .integration_test_rules
|
|
||||||
stage: assign_test
|
|
||||||
needs:
|
|
||||||
- gen_integration_pipeline
|
|
||||||
trigger:
|
|
||||||
include:
|
|
||||||
- artifact: idf-integration-ci/child_pipeline/pipeline.yml
|
|
||||||
job: gen_integration_pipeline
|
|
||||||
forward:
|
|
||||||
yaml_variables: false
|
|
||||||
strategy: depend
|
|
||||||
@@ -1,18 +1,21 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2021-2022 Espressif Systems (Shanghai) CO LTD
|
# SPDX-FileCopyrightText: 2021-2026 Espressif Systems (Shanghai) CO LTD
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Check if all rules in rules.yml used or not in CI yaml files.
|
Check if all rules in rules.yml used or not in CI yaml files.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
from copy import deepcopy
|
from copy import deepcopy
|
||||||
from typing import Any, Dict, List, Optional, Set, Union
|
from typing import Any
|
||||||
|
from typing import Dict
|
||||||
|
from typing import List
|
||||||
|
from typing import Optional
|
||||||
|
from typing import Set
|
||||||
|
from typing import Union
|
||||||
|
|
||||||
import yaml
|
import yaml
|
||||||
from idf_ci_utils import IDF_PATH
|
from idf_ci_utils import IDF_PATH
|
||||||
@@ -49,6 +52,13 @@ class YMLConfig:
|
|||||||
|
|
||||||
all_config = dict()
|
all_config = dict()
|
||||||
for item in self.root_yml['include']:
|
for item in self.root_yml['include']:
|
||||||
|
if isinstance(item, dict):
|
||||||
|
if 'project' in item:
|
||||||
|
continue
|
||||||
|
elif 'local' in item:
|
||||||
|
item = item['local']
|
||||||
|
else:
|
||||||
|
continue
|
||||||
all_config.update(load_yaml(os.path.join(IDF_PATH, item)))
|
all_config.update(load_yaml(os.path.join(IDF_PATH, item)))
|
||||||
self._config = all_config
|
self._config = all_config
|
||||||
return self._config
|
return self._config
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# SPDX-FileCopyrightText: 2020-2024 Espressif Systems (Shanghai) CO LTD
|
# SPDX-FileCopyrightText: 2020-2026 Espressif Systems (Shanghai) CO LTD
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
# internal use only for CI
|
# internal use only for CI
|
||||||
# some CI related util functions
|
# some CI related util functions
|
||||||
|
|||||||
Reference in New Issue
Block a user