47 lines
1.8 KiB
Python
47 lines
1.8 KiB
Python
from pathlib import Path
|
|
|
|
|
|
WORKFLOW = Path(".gitea/workflows/ci.yml")
|
|
|
|
|
|
def test_ci_uses_gitea_compatible_artifact_action():
|
|
text = WORKFLOW.read_text()
|
|
assert "actions/upload-artifact@v4" not in text
|
|
assert "actions/upload-artifact@v3" in text
|
|
|
|
|
|
def test_ci_installs_declared_requirements_before_tests():
|
|
text = WORKFLOW.read_text()
|
|
install = text.index("pip install -r requirements.txt")
|
|
tests = text.index("python3 -m pytest tests/ -q")
|
|
assert install < tests
|
|
|
|
|
|
def test_release_promotion_waits_for_tests_and_bundle():
|
|
text = WORKFLOW.read_text()
|
|
release = text[text.index(" release-candidate:") :]
|
|
|
|
assert "needs: [lint, build-release, browser-journey]" in release
|
|
assert "github.event_name == 'push'" in release
|
|
assert "actions/download-artifact@v3" in release
|
|
assert 'python3 scripts/verify_release.py --input-dir dist --commit "$TARGET"' in release
|
|
assert release.index("sha256sum -c") < release.index("curl --fail-with-body")
|
|
|
|
|
|
def test_release_promotion_waits_for_artifact_mobile_offline_journey():
|
|
text = WORKFLOW.read_text()
|
|
browser = text[text.index(" browser-journey:") : text.index(" release-candidate:")]
|
|
release = text[text.index(" release-candidate:") :]
|
|
|
|
assert "needs: build-release" in browser
|
|
assert "actions/download-artifact@v3" in browser
|
|
assert "pip install -r requirements-e2e.txt" in browser
|
|
assert "python3 -m playwright install --with-deps chromium" in browser
|
|
assert 'STACKCHAIN_RUN_RELEASE_E2E: "1"' in browser
|
|
assert (
|
|
"python3 -m pytest tests/e2e/test_mobile_offline_issue_release.py "
|
|
"tests/e2e/test_mobile_search_preview_navigation.py "
|
|
"tests/e2e/test_mobile_find_work_release.py -q"
|
|
) in browser
|
|
assert "needs: [lint, build-release, browser-journey]" in release
|