Skip to content

Commit 56849b0

Browse files
authored
Merge pull request #5 from kopackiw/add-target-profile
feat: add possibility to specify target profile that dbt will be run against
2 parents 3cbe7d8 + d9d50d9 commit 56849b0

File tree

2 files changed

+28
-11
lines changed

2 files changed

+28
-11
lines changed

action.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,13 @@ inputs:
2525
edr-command:
2626
description: The command to run, for example `edr monitor --slack-webhook <SECRET_SLACK_WEBHOOK>`.
2727
required: true
28+
profile-target:
29+
description: |
30+
Target profile used for internal dbt calls.
31+
If your `edr_command` uses the `--profile-target` or `--project-profile-target` flags,
32+
please set this attribute to the value of those flags.
33+
required: false
34+
2835

2936
bigquery-keyfile:
3037
description: The content of your BigQuery keyfile.

entrypoint.py

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -37,20 +37,28 @@ def setup_env(
3737
Path("/tmp/gcs_keyfile.json").write_text(gcs_keyfile)
3838

3939

40-
def install_edr(adapter: str, project_dir: Optional[str]):
40+
def install_edr(
41+
adapter: str, project_dir: Optional[str], profile_target: Optional[str]
42+
):
4143
logging.info("Getting Elementary dbt package version.")
4244
try:
4345
dbt_pkg_ver = None
46+
47+
dbt_command = [
48+
"dbt",
49+
"--log-format",
50+
"json",
51+
"run-operation",
52+
"get_elementary_dbt_pkg_version",
53+
"--project-dir",
54+
"/edr_stager_dbt_project",
55+
]
56+
57+
if profile_target:
58+
dbt_command.extend(["--target", profile_target])
59+
4460
command_results = subprocess.run(
45-
[
46-
"dbt",
47-
"--log-format",
48-
"json",
49-
"run-operation",
50-
"get_elementary_dbt_pkg_version",
51-
"--project-dir",
52-
"/edr_stager_dbt_project",
53-
],
61+
dbt_command,
5462
check=True,
5563
capture_output=True,
5664
cwd=project_dir,
@@ -109,20 +117,22 @@ class Args(BaseModel):
109117
edr_command: str
110118
bigquery_keyfile: Optional[str]
111119
gcs_keyfile: Optional[str]
120+
profile_target: Optional[str]
112121

113122

114123
def main():
115124
args = Args(
116125
adapter=os.getenv("INPUT_WAREHOUSE-TYPE"),
117126
profiles_yml=os.getenv("INPUT_PROFILES-YML"),
118127
edr_command=os.getenv("INPUT_EDR-COMMAND"),
128+
profile_target=os.getenv("INPUT_PROFILE-TARGET") or None,
119129
project_dir=os.getenv("INPUT_PROJECT-DIR") or None,
120130
bigquery_keyfile=os.getenv("INPUT_BIGQUERY-KEYFILE") or None,
121131
gcs_keyfile=os.getenv("INPUT_GCS-KEYFILE") or None,
122132
)
123133
install_dbt(args.adapter)
124134
setup_env(args.profiles_yml, args.bigquery_keyfile, args.gcs_keyfile)
125-
install_edr(args.adapter, args.project_dir)
135+
install_edr(args.adapter, args.project_dir, args.profile_target)
126136
try:
127137
run_edr(args.edr_command, args.project_dir)
128138
except subprocess.CalledProcessError:

0 commit comments

Comments
 (0)