diff --git a/.github/workflows/ci_pipeline.yml b/.github/workflows/ci_pipeline.yml index 613e47c2..8c198ba0 100644 --- a/.github/workflows/ci_pipeline.yml +++ b/.github/workflows/ci_pipeline.yml @@ -152,9 +152,9 @@ jobs: - name: Run e2e test run: | docker run --rm \ - --volume "$PWD/dbt_project":/dbt_project \ + --volume "$PWD/dbt_project/target":/dbt_project/target \ ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:ci \ - dbt-bouncer --dbt-project-dir dbt_project + dbt-bouncer --dbt-artifacts-dir dbt_project/target github-action-tests: needs: [pre-commit] @@ -168,7 +168,7 @@ jobs: - name: Run action uses: ./ with: - dbt-project-dir: dbt_project + dbt-artifacts-dir: dbt_project/target pex-tests: runs-on: ubuntu-latest @@ -211,4 +211,4 @@ jobs: run: poetry run pex . -c dbt-bouncer -o ./dist/dbt-bouncer.pex - name: Test pex file - run: ./dist/dbt-bouncer.pex --dbt-project-dir dbt_project + run: ./dist/dbt-bouncer.pex --dbt-artifacts-dir dbt_project/target diff --git a/action.yml b/action.yml index bc850188..4150898c 100644 --- a/action.yml +++ b/action.yml @@ -1,9 +1,9 @@ name: 'dbt-bouncer' description: 'Configure and enforce conventions for your dbt project.' inputs: - dbt-project-dir: + dbt-artifacts-dir: default: '.' - description: 'Directory where your dbt project is located.' + description: 'Directory where the dbt artifacts exists, generally the `target` directory inside a dbt project.' required: false runs: @@ -14,4 +14,4 @@ runs: shell: bash run: | ${{ github.action_path }}/dist/dbt-bouncer.pex \ - --dbt-project-dir ${{ inputs.dbt-project-dir }} + --dbt-artifacts-dir ${{ inputs.dbt-artifacts-dir }} diff --git a/dbt_bouncer/main.py b/dbt_bouncer/main.py index 8bc29e61..475b1c1f 100644 --- a/dbt_bouncer/main.py +++ b/dbt_bouncer/main.py @@ -10,17 +10,17 @@ @click.command() @click.option( - "--dbt-project-dir", - help="Directory where the dbt project exists.", + "--dbt-artifacts-dir", + help="Directory where the dbt artifacts exists, generally the `target` directory inside a dbt project.", required=True, type=click.Path(exists=True), ) @click.version_option() -def cli(dbt_project_dir): +def cli(dbt_artifacts_dir): logger.info(f"Running dbt_bouncer ({version()})...") # Load manifest - manifest_json_path = Path(dbt_project_dir) / "target/manifest.json" + manifest_json_path = Path(dbt_artifacts_dir) / "manifest.json" logger.info(f"Loading manifest.json from {manifest_json_path}...") if not manifest_json_path.exists(): raise FileNotFoundError(f"No manifest.json found at {manifest_json_path}.") diff --git a/dist/dbt-bouncer.pex b/dist/dbt-bouncer.pex index 5631dd57..8d09b880 100755 Binary files a/dist/dbt-bouncer.pex and b/dist/dbt-bouncer.pex differ diff --git a/tests/test_logger.py b/tests/test_logger.py index 445602d1..e0722380 100644 --- a/tests/test_logger.py +++ b/tests/test_logger.py @@ -12,7 +12,7 @@ def test_logger_debug() -> None: runner = CliRunner() runner.invoke( cli, - ["--dbt-project-dir", "dbt_project"], + ["--dbt-artifacts-dir", "dbt_project/target"], ) assert ( @@ -29,5 +29,5 @@ def test_logger_debug() -> None: def test_logger_info(caplog) -> None: runner = CliRunner() - runner.invoke(cli, ["--dbt-project-dir", "dbt_project"]) + runner.invoke(cli, ["--dbt-artifacts-dir", "dbt_project/target"]) assert "Running dbt_bouncer (0.0.0)..." in caplog.text diff --git a/tests/test_main.py b/tests/test_main.py index 29a7caec..742f9244 100644 --- a/tests/test_main.py +++ b/tests/test_main.py @@ -12,8 +12,8 @@ def test_cli_happy_path(caplog): runner.invoke( cli, [ - "--dbt-project-dir", - "dbt_project", + "--dbt-artifacts-dir", + "dbt_project/target", ], ) assert "Running dbt_bouncer (0.0.0)..." in caplog.text @@ -25,8 +25,8 @@ def test_cli_dbt_dir_doesnt_exist(): result = runner.invoke( cli, [ - "--dbt-project-dir", - "non-existent-directory", + "--dbt-artifacts-dir", + "non-existent-directory/target", ], ) assert type(result.exception) in [SystemExit] @@ -37,12 +37,9 @@ def test_cli_manifest_doesnt_exist(tmp_path): result = runner.invoke( cli, [ - "--dbt-project-dir", + "--dbt-artifacts-dir", tmp_path, ], ) assert type(result.exception) in [FileNotFoundError] - assert ( - result.exception.args[0] - == f"No manifest.json found at {tmp_path / 'target/manifest.json'}." - ) + assert result.exception.args[0] == f"No manifest.json found at {tmp_path / 'manifest.json'}."