Stabilize staff concurrency and premium emoji; enable verified Drone deployment
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
2026-09-13 19:48:41 +09:00
parent 733298bf06
commit cb35bb12e3
86 changed files with 2993 additions and 2455 deletions

29
tests/test_deployment.py Normal file
View File

@@ -0,0 +1,29 @@
from pathlib import Path
import tarfile
from alembic.config import Config
from alembic.script import ScriptDirectory
import yaml
from scripts.build_release import build_release
def test_migrations_have_one_head():
assert ScriptDirectory.from_config(Config("alembic.ini")).get_heads() == ["20260913_staff_concurrency"]
def test_release_contains_runtime_and_migrations_but_no_secrets(tmp_path):
path = build_release(tmp_path / "lottery.tar.gz")
with tarfile.open(path) as archive:
names = archive.getnames()
assert "main.py" in names and "Dockerfile" in names
assert "migrations/versions/20260913_staff_concurrency.py" in names
assert not any(".env" in name or ".history" in name or ".git/" in name or "__pycache__" in name for name in names)
def test_ci_requires_success_and_never_deploys_pull_requests():
config = yaml.safe_load(Path(".drone.yml").read_text(encoding="utf-8"))
deploy = config["steps"][-1]
assert deploy["when"] == {"branch": ["master"], "event": ["push"], "status": ["success"]}
assert not any("||" in command for step in config["steps"] for command in step["commands"])
assert {step["name"] for step in config["steps"]} >= {"checks", "postgres-tests", "package", "deploy"}