Some checks failed
Code scanning / CodeQL (push) Failing after 15s
Zulip production suite / Ubuntu 22.04 production build (push) Failing after 26s
Zulip production suite / Debian 12 production install with custom db name and user (push) Has been skipped
Zulip production suite / Ubuntu 22.04 production install and PostgreSQL upgrade with pgroonga (push) Has been skipped
Zulip production suite / Ubuntu 24.04 production install (push) Has been skipped
Zulip production suite / Ubuntu 26.04 production install (push) Has been skipped
Zulip production suite / Debian 13 production install (push) Has been skipped
Zulip production suite / 7.0 Version Upgrade (push) Has been skipped
Zulip production suite / 8.0 Version Upgrade (push) Has been skipped
Zulip production suite / 6.0 Version Upgrade (push) Has been skipped
Zulip production suite / 10.0 Version Upgrade (push) Has been skipped
Zulip production suite / 9.0 Version Upgrade (push) Has been skipped
Zulip production suite / 12.0 Version Upgrade (push) Has been skipped
Zulip production suite / 11.0 Version Upgrade (push) Has been skipped
GitHub Actions Security Analysis with zizmor / zizmor (push) Failing after 3s
Zulip CI / Debian 12 (Python 3.11, backend + documentation) (push) Failing after 26s
Zulip CI / Ubuntu 22.04 (Python 3.10, backend + frontend) (push) Failing after 3s
Zulip CI / Ubuntu 24.04 (Python 3.12, backend) (push) Failing after 25s
Zulip CI / Ubuntu 26.04 (Python 3.14, backend) (push) Failing after 25s
Zulip CI / Debian 13 (Python 3.13, backend) (push) Failing after 28s
Zulip production suite / Required jobs (push) Has been cancelled
Zulip CI / Required jobs (push) Has been cancelled
API Documentation Update Check / check-feature-level-updated (push) Has been cancelled
API Documentation Update Check / notify-if-api-docs-changed (push) Has been cancelled
32 lines
1.2 KiB
Python
Executable File
32 lines
1.2 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
import os
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
|
|
def get_build_url_from_environment() -> str:
|
|
server = os.environ["GITHUB_SERVER_URL"]
|
|
repo = os.environ["GITHUB_REPOSITORY"]
|
|
run_id = os.environ["GITHUB_RUN_ID"]
|
|
return f"{server}/{repo}/actions/runs/{run_id}"
|
|
|
|
|
|
if __name__ == "__main__":
|
|
branch = os.environ.get("GITHUB_REF", "unknown branch").split("/")[-1]
|
|
topic = f"{branch} failing"
|
|
build_url = get_build_url_from_environment()
|
|
github_actor = os.environ.get("GITHUB_ACTOR", "unknown user")
|
|
|
|
api_docs_folder = Path("api_docs")
|
|
api_docs_paths = list(api_docs_folder.glob("*.md"))
|
|
api_docs_paths.append(Path("zerver/openapi/zulip.yaml"))
|
|
|
|
for api_docs_path in api_docs_paths:
|
|
with open(api_docs_path) as file:
|
|
if "ZF-" in file.read():
|
|
content = f"[Build]({build_url}) triggered by {github_actor} on branch `{branch}` has failed: Feature level not replaced in '{api_docs_path}'. This also skips the job that posts the new-feature-level announcement to #**api documentation**. After fixing `{branch}`, post the announcement manually if needed."
|
|
print(f"fail=true\ntopic={topic}\ncontent={content}")
|
|
sys.exit(0)
|
|
|
|
print("fail=false")
|