Skip to content

Commit 0781d5b

Browse files
committed
checking ok-to-skip-smokes label
1 parent f36a061 commit 0781d5b

File tree

8 files changed

+168
-3
lines changed

8 files changed

+168
-3
lines changed

.idea/.gitignore

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/inspectionProfiles/Project_Default.xml

Lines changed: 95 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/inspectionProfiles/profiles_settings.xml

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/koku-test-container.iml

Lines changed: 12 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/misc.xml

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/modules.xml

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/vcs.xml

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

files/bin/deploy.py

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
#!/usr/bin/env python
22

33
import argparse
4+
import json
45
import os
56
import secrets
67
import shlex
78
import subprocess
89
import sys
910
import typing as t
11+
import urllib
1012

1113
from itertools import chain
14+
from urllib.error import HTTPError
1215

1316
from pydantic import AnyUrl
1417
from pydantic import BaseModel
@@ -62,8 +65,7 @@ class Snapshot(BaseModel):
6265
components: list[Component]
6366

6467

65-
def get_component_options() -> list[str]:
66-
pr_number = os.environ.get("PR_NUMBER")
68+
def get_component_options(pr_number: str) -> list[str]:
6769
snapshot_str = os.environ.get("SNAPSHOT")
6870

6971
if snapshot_str is None:
@@ -98,6 +100,26 @@ def parse_args() -> argparse.Namespace:
98100
return parser.parse_args()
99101

100102

103+
def get_pr_labels(
104+
pr_number: str,
105+
owner: str = "project-koku",
106+
repo: str = "koku",
107+
) -> set[str]:
108+
if not pr_number:
109+
set()
110+
111+
url = f"https://api.github.com/repos/{owner}/{repo}/pulls/{pr_number}"
112+
try:
113+
with urllib.request.urlopen(url) as response:
114+
data = json.loads(response.read())
115+
except HTTPError as exc:
116+
sys.exit(f"Error {exc.code} retrieving {exc.url}.")
117+
118+
labels = {item["name"] for item in data["labels"]}
119+
120+
return labels
121+
122+
101123
def main() -> None:
102124
args = parse_args()
103125
namespace = args.namespace
@@ -113,6 +135,7 @@ def main() -> None:
113135
extra_deploy_args = os.environ.get("EXTRA_DEPLOY_ARGS", "")
114136
optional_deps_method = os.environ.get("OPTIONAL_DEPS_METHOD", "hybrid")
115137
ref_env = os.environ.get("REF_ENV", "insights-production")
138+
pr_number = os.environ.get("PR_NUMBER", "")
116139

117140
cred_params = []
118141
if "koku" in components:
@@ -142,10 +165,15 @@ def main() -> None:
142165
*components_arg,
143166
*components_with_resources_arg,
144167
*extra_deploy_args.split(),
145-
*get_component_options(),
168+
*get_component_options(pr_number),
146169
app_name,
147170
] # fmt: off
148171

172+
labels = get_pr_labels(pr_number)
173+
if "ok-to-skip-smokes" in labels:
174+
print("PR labeled to skip smoke tests")
175+
return
176+
149177
print(" ".join(shlex.quote(str(arg)) for arg in command), flush=True)
150178

151179
subprocess.check_call(command, env=os.environ | {"BONFIRE_NS_REQUESTER": requester})

0 commit comments

Comments
 (0)