mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-08-10 16:37:34 +00:00
test(ci): enforce preview publish step order
This commit is contained in:
@@ -159,6 +159,14 @@ def workflow_step_script(workflow_text, step_name):
|
|||||||
return textwrap.dedent(workflow_text[script_start:script_end])
|
return textwrap.dedent(workflow_text[script_start:script_end])
|
||||||
|
|
||||||
|
|
||||||
|
def workflow_step_scripts_in_document_order(workflow_text, step_names):
|
||||||
|
ordered_names = sorted(
|
||||||
|
step_names,
|
||||||
|
key=lambda name: workflow_text.index(f" - name: {name}\n"),
|
||||||
|
)
|
||||||
|
return tuple(workflow_step_script(workflow_text, name) for name in ordered_names)
|
||||||
|
|
||||||
|
|
||||||
class WorkflowSecurityTests(unittest.TestCase):
|
class WorkflowSecurityTests(unittest.TestCase):
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def workflows():
|
def workflows():
|
||||||
@@ -212,6 +220,15 @@ class WorkflowSecurityTests(unittest.TestCase):
|
|||||||
name,
|
name,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def test_preview_publish_steps_follow_tag_release_asset_order(self):
|
||||||
|
preview = (WORKFLOW_DIR / "preview-pdf.yml").read_text(encoding="utf-8")
|
||||||
|
synchronize = preview.index(" - name: Synchronize mutable preview tag\n")
|
||||||
|
release = preview.index(" - name: Create or update preview release\n")
|
||||||
|
upload = preview.index(" - name: Replace preview assets\n")
|
||||||
|
|
||||||
|
self.assertLess(synchronize, release)
|
||||||
|
self.assertLess(release, upload)
|
||||||
|
|
||||||
def run_preview_scripts(
|
def run_preview_scripts(
|
||||||
self,
|
self,
|
||||||
scenario,
|
scenario,
|
||||||
@@ -220,9 +237,12 @@ class WorkflowSecurityTests(unittest.TestCase):
|
|||||||
sha=TEST_SHA,
|
sha=TEST_SHA,
|
||||||
):
|
):
|
||||||
preview = (WORKFLOW_DIR / "preview-pdf.yml").read_text(encoding="utf-8")
|
preview = (WORKFLOW_DIR / "preview-pdf.yml").read_text(encoding="utf-8")
|
||||||
scripts = (
|
scripts = workflow_step_scripts_in_document_order(
|
||||||
workflow_step_script(preview, "Synchronize mutable preview tag"),
|
preview,
|
||||||
workflow_step_script(preview, "Create or update preview release"),
|
(
|
||||||
|
"Synchronize mutable preview tag",
|
||||||
|
"Create or update preview release",
|
||||||
|
),
|
||||||
)
|
)
|
||||||
with tempfile.TemporaryDirectory() as directory:
|
with tempfile.TemporaryDirectory() as directory:
|
||||||
root = Path(directory)
|
root = Path(directory)
|
||||||
|
|||||||
Reference in New Issue
Block a user