deploy: prepare olons server test rollout
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
|
||||
|
||||
class DeploymentContractTest(unittest.TestCase):
|
||||
def test_workflow_targets_only_olons_server(self):
|
||||
workflow = (ROOT / ".gitea/workflows/deploy.yml").read_text()
|
||||
|
||||
self.assertIn("Deploy olons-server (k3s test cluster)", workflow)
|
||||
self.assertIn("git.118im.com/im_team/olons-server:", workflow)
|
||||
self.assertIn("deployment/olons-server -n olons-server-system", workflow)
|
||||
self.assertNotIn("im-workbench", workflow)
|
||||
self.assertNotIn("workbench-system", workflow)
|
||||
|
||||
def test_dockerfile_builds_frontend_into_backend_image(self):
|
||||
dockerfile = (ROOT / "Dockerfile").read_text()
|
||||
|
||||
self.assertIn("RUN pnpm run build", dockerfile)
|
||||
self.assertIn("COPY --from=web-builder /web/dist ./web/dist", dockerfile)
|
||||
self.assertIn("COPY --from=web-builder /web/dist /app/web/dist", dockerfile)
|
||||
self.assertIn("EXPOSE 6061", dockerfile)
|
||||
|
||||
def test_docker_context_excludes_local_artifacts(self):
|
||||
entries = {
|
||||
line.strip()
|
||||
for line in (ROOT / ".dockerignore").read_text().splitlines()
|
||||
if line.strip() and not line.lstrip().startswith("#")
|
||||
}
|
||||
|
||||
for required in {".git", "web/node_modules", "web/dist", "*.log"}:
|
||||
self.assertIn(required, entries)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user