mirror of
https://github.com/saltstack/salt.git
synced 2025-04-17 10:10:20 +00:00
If test ci requirements change, trigger a full test run
Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
This commit is contained in:
parent
6c2c2e772b
commit
7d00828f15
2 changed files with 33 additions and 20 deletions
16
.github/workflows/ci.yml
vendored
16
.github/workflows/ci.yml
vendored
|
@ -57,6 +57,16 @@ jobs:
|
|||
lint-requirements:
|
||||
- added|modified: &lint_requirements
|
||||
- requirements/static/ci/py3.*/lint.txt
|
||||
test_requirements:
|
||||
- added|modified: &test_requirements
|
||||
- requirements/static/ci/py3.*/darwin.txt
|
||||
- requirements/static/ci/py3.*/linux.txt
|
||||
- requirements/static/ci/py3.*/freebsd.txt
|
||||
- requirements/static/ci/py3.*/windows.txt
|
||||
- requirements/static/ci/py3.*/darwin-crypto.txt
|
||||
- requirements/static/ci/py3.*/linux-crypto.txt
|
||||
- requirements/static/ci/py3.*/freebsd-crypto.txt
|
||||
- requirements/static/ci/py3.*/windows-crypto.txt
|
||||
deleted:
|
||||
- deleted:
|
||||
- '**'
|
||||
|
@ -126,12 +136,12 @@ jobs:
|
|||
echo '${{ steps.define-testrun.outputs.testrun }}' | jq -C '.'
|
||||
|
||||
- name: Check Contents of generated testrun-changed-files.txt
|
||||
if: ${{ github.event_name == 'pull_request' }}
|
||||
if: ${{ fromJSON(steps.define-testrun.outputs.testrun)['type'] != 'full' }}
|
||||
run:
|
||||
cat testrun-changed-files.txt
|
||||
cat testrun-changed-files.txt || true
|
||||
|
||||
- name: Upload testrun-changed-files.txt
|
||||
if: ${{ github.event_name == 'pull_request' }}
|
||||
if: ${{ fromJSON(steps.define-testrun.outputs.testrun)['type'] != 'full' }}
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: testrun-changed-files.txt
|
||||
|
|
37
tools/ci.py
37
tools/ci.py
|
@ -216,23 +216,26 @@ def define_testrun(ctx: Context, event_name: str, changed_files: pathlib.Path):
|
|||
# Based on which files changed, or other things like PR comments we can
|
||||
# decide what to run, or even if the full test run should be running on the
|
||||
# pull request, etc...
|
||||
testrun_changed_files_path = REPO_ROOT / "testrun-changed-files.txt"
|
||||
testrun = {
|
||||
"type": "changed",
|
||||
"from-filenames": str(testrun_changed_files_path.relative_to(REPO_ROOT)),
|
||||
}
|
||||
ctx.info(f"Writing {testrun_changed_files_path.name} ...")
|
||||
selected_changed_files = []
|
||||
for fpath in json.loads(changed_files_contents["testrun_files"]):
|
||||
if fpath.startswith(("tools/", "tasks/")):
|
||||
continue
|
||||
if fpath in ("noxfile.py",):
|
||||
continue
|
||||
if fpath == "tests/conftest.py":
|
||||
# In this particular case, just run the full test suite
|
||||
testrun["type"] = "full"
|
||||
selected_changed_files.append(fpath)
|
||||
testrun_changed_files_path.write_text("\n".join(sorted(selected_changed_files)))
|
||||
if changed_files_contents["test_requirements_files"]:
|
||||
testrun = {"type": "full"}
|
||||
else:
|
||||
testrun_changed_files_path = REPO_ROOT / "testrun-changed-files.txt"
|
||||
testrun = {
|
||||
"type": "changed",
|
||||
"from-filenames": str(testrun_changed_files_path.relative_to(REPO_ROOT)),
|
||||
}
|
||||
ctx.info(f"Writing {testrun_changed_files_path.name} ...")
|
||||
selected_changed_files = []
|
||||
for fpath in json.loads(changed_files_contents["testrun_files"]):
|
||||
if fpath.startswith(("tools/", "tasks/")):
|
||||
continue
|
||||
if fpath in ("noxfile.py",):
|
||||
continue
|
||||
if fpath == "tests/conftest.py":
|
||||
# In this particular case, just run the full test suite
|
||||
testrun["type"] = "full"
|
||||
selected_changed_files.append(fpath)
|
||||
testrun_changed_files_path.write_text("\n".join(sorted(selected_changed_files)))
|
||||
ctx.info("Writing 'testrun' to the github outputs file")
|
||||
with open(github_output, "a", encoding="utf-8") as wfh:
|
||||
wfh.write(f"testrun={json.dumps(testrun)}\n")
|
||||
|
|
Loading…
Add table
Reference in a new issue