fix(ci): publish offline lite verification #5
@@ -0,0 +1,41 @@
|
|||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
import re
|
||||||
|
import unittest
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
|
||||||
|
ROOT = Path(__file__).resolve().parents[1]
|
||||||
|
|
||||||
|
|
||||||
|
class CiContractTests(unittest.TestCase):
|
||||||
|
def test_ci_publishes_one_offline_lite_gate(self) -> None:
|
||||||
|
workflow = (ROOT / ".gitea/workflows/ci.yml").read_text(encoding="utf-8")
|
||||||
|
job_block = workflow.split("jobs:", 1)[1]
|
||||||
|
|
||||||
|
self.assertEqual(
|
||||||
|
re.findall(r"(?m)^ ([a-z][a-z0-9_-]*):\s*$", job_block),
|
||||||
|
["lite"],
|
||||||
|
)
|
||||||
|
self.assertIn(
|
||||||
|
"actions/checkout@524e936cd9e579adf00e308bfdf971aebc7de09e",
|
||||||
|
workflow,
|
||||||
|
)
|
||||||
|
self.assertIn("persist-credentials: false", workflow)
|
||||||
|
self.assertIn(
|
||||||
|
"python3 -m unittest discover -s tests -v",
|
||||||
|
workflow,
|
||||||
|
)
|
||||||
|
for forbidden in (
|
||||||
|
"actions/checkout@v",
|
||||||
|
"apt ",
|
||||||
|
"pip ",
|
||||||
|
"curl ",
|
||||||
|
"wget ",
|
||||||
|
"docker pull",
|
||||||
|
):
|
||||||
|
self.assertNotIn(forbidden, workflow)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
unittest.main()
|
||||||
Reference in New Issue
Block a user