dagster-dg-cli 1.12.10__tar.gz → 1.12.12__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {dagster_dg_cli-1.12.10/dagster_dg_cli.egg-info → dagster_dg_cli-1.12.12}/PKG-INFO +4 -4
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/plus/deploy/commands.py +93 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/plus/deploy/deploy_session.py +37 -11
- dagster_dg_cli-1.12.12/dagster_dg_cli/cli/plus/deploy/validation.py +70 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/templates/hybrid-github-action.yaml +1 -1
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/templates/hybrid-gitlab-ci.yaml +11 -1
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/templates/serverless-github-action.yaml +1 -1
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/templates/serverless-gitlab-ci.yaml +15 -6
- dagster_dg_cli-1.12.12/dagster_dg_cli/version.py +1 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12/dagster_dg_cli.egg-info}/PKG-INFO +4 -4
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli.egg-info/SOURCES.txt +1 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli.egg-info/requires.txt +3 -3
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/setup.py +3 -3
- dagster_dg_cli-1.12.10/dagster_dg_cli/version.py +0 -1
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/LICENSE +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/MANIFEST.in +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/README.md +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/__init__.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/api_layer/__init__.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/api_layer/api/__init__.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/api_layer/api/agent.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/api_layer/api/asset.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/api_layer/api/deployments.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/api_layer/api/run.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/api_layer/api/run_event.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/api_layer/api/schedule.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/api_layer/api/secret.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/api_layer/api/sensor.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/api_layer/graphql_adapter/__init__.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/api_layer/graphql_adapter/agent.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/api_layer/graphql_adapter/asset.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/api_layer/graphql_adapter/deployment.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/api_layer/graphql_adapter/run.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/api_layer/graphql_adapter/run_event.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/api_layer/graphql_adapter/schedule.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/api_layer/graphql_adapter/secret.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/api_layer/graphql_adapter/sensor.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/api_layer/schemas/__init__.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/api_layer/schemas/agent.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/api_layer/schemas/asset.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/api_layer/schemas/deployment.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/api_layer/schemas/run.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/api_layer/schemas/run_event.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/api_layer/schemas/schedule.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/api_layer/schemas/secret.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/api_layer/schemas/sensor.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/__init__.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/__main__.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/api/__init__.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/api/agent.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/api/asset.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/api/cli_group.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/api/client.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/api/deployment.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/api/formatters.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/api/log.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/api/run.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/api/run_event.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/api/schedule.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/api/secret.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/api/sensor.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/api/shared.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/check.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/defs_state.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/dev.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/entrypoint.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/launch.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/list.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/mcp_server.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/plus/__init__.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/plus/constants.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/plus/create/__init__.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/plus/create/ci_api_token.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/plus/create/env.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/plus/deploy/__init__.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/plus/deploy/configure/__init__.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/plus/deploy/configure/commands.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/plus/deploy/configure/configure_build_artifacts.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/plus/deploy/configure/configure_ci.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/plus/deploy/configure/utils.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/plus/login.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/plus/pull/__init__.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/plus/pull/env.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/scaffold/__init__.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/scaffold/branch/CLAUDE.md +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/scaffold/branch/__init__.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/scaffold/branch/ai.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/scaffold/branch/claude/__init__.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/scaffold/branch/claude/diagnostics.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/scaffold/branch/claude/sdk_client.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/scaffold/branch/command.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/scaffold/branch/constants.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/scaffold/branch/dg_scaffold_pr_sequencing_plan.md +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/scaffold/branch/git.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/scaffold/branch/models.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/scaffold/branch/planning.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/scaffold/branch/pr1_diagnostics_implementation_plan.md +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/scaffold/branch/prompts/best_practices.md +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/scaffold/branch/prompts/planning_prompt.md +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/scaffold/branch/version_utils.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/scaffold/build_artifacts.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/scaffold/component.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/scaffold/defs.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/scaffold/github_actions.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/utils.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/docs/.gitignore +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/mcp/__init__.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/mcp/server.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/py.typed +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/scaffold.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/templates/COMPONENT_TYPE/COMPONENT_TYPE_NAME_PLACEHOLDER.py.jinja +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/templates/build-location-fragment-gitlab.yaml +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/templates/build-location-fragment.yaml +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/templates/deploy_uv_Dockerfile.jinja +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/templates/deploy_uv_editable_Dockerfile.jinja +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/templates/registry_fragments/github/azure-container-registry-login-fragment.yaml +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/templates/registry_fragments/github/dockerhub-login-fragment.yaml +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/templates/registry_fragments/github/ecr-login-fragment.yaml +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/templates/registry_fragments/github/gcr-login-fragment.yaml +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/templates/registry_fragments/github/github-container-registry-login-fragment.yaml +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/templates/registry_fragments/gitlab/azure-container-registry-login-fragment.yaml +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/templates/registry_fragments/gitlab/dockerhub-login-fragment.yaml +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/templates/registry_fragments/gitlab/ecr-login-fragment.yaml +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/templates/registry_fragments/gitlab/gcr-login-fragment.yaml +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/templates/registry_fragments/gitlab/github-container-registry-login-fragment.yaml +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/utils/__init__.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/utils/claude_utils.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/utils/plus/__init__.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/utils/plus/build.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/utils/plus/defs_state_storage.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/utils/plus/gql.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/utils/plus/gql_client.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/utils/ui.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/utils/yaml_template_generator.py +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli.egg-info/dependency_links.txt +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli.egg-info/entry_points.txt +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli.egg-info/not-zip-safe +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli.egg-info/top_level.txt +0 -0
- {dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dagster-dg-cli
|
|
3
|
-
Version: 1.12.
|
|
3
|
+
Version: 1.12.12
|
|
4
4
|
Home-page: https://github.com/dagster-io/dagster/tree/master/python_modules/libraries/dagster-dg-cli
|
|
5
5
|
Author: Dagster Labs
|
|
6
6
|
Author-email: hello@dagsterlabs.com
|
|
@@ -13,9 +13,9 @@ Classifier: Programming Language :: Python :: 3.14
|
|
|
13
13
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
14
14
|
Classifier: Operating System :: OS Independent
|
|
15
15
|
License-File: LICENSE
|
|
16
|
-
Requires-Dist: dagster-dg-core==1.12.
|
|
17
|
-
Requires-Dist: dagster==1.12.
|
|
18
|
-
Requires-Dist: dagster-cloud-cli==1.12.
|
|
16
|
+
Requires-Dist: dagster-dg-core==1.12.12
|
|
17
|
+
Requires-Dist: dagster==1.12.12
|
|
18
|
+
Requires-Dist: dagster-cloud-cli==1.12.12
|
|
19
19
|
Requires-Dist: typer
|
|
20
20
|
Provides-Extra: test
|
|
21
21
|
Requires-Dist: syrupy>=4.0.0; extra == "test"
|
{dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/plus/deploy/commands.py
RENAMED
|
@@ -31,6 +31,7 @@ from dagster_dg_cli.cli.plus.deploy.deploy_session import (
|
|
|
31
31
|
finish_deploy_session,
|
|
32
32
|
init_deploy_session,
|
|
33
33
|
)
|
|
34
|
+
from dagster_dg_cli.cli.plus.deploy.validation import _extract_dagster_env_from_url
|
|
34
35
|
from dagster_dg_cli.utils.plus.build import get_agent_type
|
|
35
36
|
|
|
36
37
|
if TYPE_CHECKING:
|
|
@@ -91,8 +92,50 @@ org_and_deploy_option_group = make_option_group(
|
|
|
91
92
|
)
|
|
92
93
|
|
|
93
94
|
|
|
95
|
+
build_strategy_option_group = make_option_group(
|
|
96
|
+
{
|
|
97
|
+
not_none(option.name): option
|
|
98
|
+
for option in [
|
|
99
|
+
click.Option(
|
|
100
|
+
["--build-strategy"],
|
|
101
|
+
type=click.Choice(["docker", "python-executable"]),
|
|
102
|
+
default="docker",
|
|
103
|
+
help=(
|
|
104
|
+
"Build strategy used to build code locations. 'docker' builds a Docker image "
|
|
105
|
+
"(required for Hybrid agents). 'python-executable' builds PEX files "
|
|
106
|
+
"(Serverless agents only)."
|
|
107
|
+
),
|
|
108
|
+
envvar="DAGSTER_BUILD_STRATEGY",
|
|
109
|
+
),
|
|
110
|
+
]
|
|
111
|
+
}
|
|
112
|
+
)
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
pex_build_method_option_group = make_option_group(
|
|
116
|
+
{
|
|
117
|
+
not_none(option.name): option
|
|
118
|
+
for option in [
|
|
119
|
+
click.Option(
|
|
120
|
+
["--pex-build-method"],
|
|
121
|
+
type=click.Choice(["local", "docker", "docker-fallback"]),
|
|
122
|
+
default="docker-fallback",
|
|
123
|
+
help=(
|
|
124
|
+
"Build method for PEX dependencies. 'docker-fallback' tries local first then Docker (default), "
|
|
125
|
+
"'local' uses only the current environment, 'docker' uses only a Docker builder. "
|
|
126
|
+
"Only applies when --build-strategy=python-executable."
|
|
127
|
+
),
|
|
128
|
+
envvar="DAGSTER_PEX_BUILD_METHOD",
|
|
129
|
+
),
|
|
130
|
+
]
|
|
131
|
+
}
|
|
132
|
+
)
|
|
133
|
+
|
|
134
|
+
|
|
94
135
|
@click.group(name="deploy", cls=DgClickGroup, invoke_without_command=True)
|
|
95
136
|
@org_and_deploy_option_group
|
|
137
|
+
@build_strategy_option_group
|
|
138
|
+
@pex_build_method_option_group
|
|
96
139
|
@click.option(
|
|
97
140
|
"--python-version",
|
|
98
141
|
"python_version",
|
|
@@ -141,6 +184,11 @@ org_and_deploy_option_group = make_option_group(
|
|
|
141
184
|
]
|
|
142
185
|
),
|
|
143
186
|
)
|
|
187
|
+
@click.option(
|
|
188
|
+
"--skip-validation",
|
|
189
|
+
is_flag=True,
|
|
190
|
+
help="Skip configuration validation checks (not recommended).",
|
|
191
|
+
)
|
|
144
192
|
@dg_editable_dagster_options
|
|
145
193
|
@dg_path_options
|
|
146
194
|
@dg_global_options
|
|
@@ -148,6 +196,8 @@ org_and_deploy_option_group = make_option_group(
|
|
|
148
196
|
def deploy_group(
|
|
149
197
|
organization: Optional[str],
|
|
150
198
|
deployment: Optional[str],
|
|
199
|
+
build_strategy: str,
|
|
200
|
+
pex_build_method: str,
|
|
151
201
|
python_version: Optional[str],
|
|
152
202
|
agent_type_str: str,
|
|
153
203
|
deployment_type_str: Optional[str],
|
|
@@ -159,6 +209,7 @@ def deploy_group(
|
|
|
159
209
|
target_path: Path,
|
|
160
210
|
status_url: Optional[str],
|
|
161
211
|
snapshot_base_condition_str: Optional[str],
|
|
212
|
+
skip_validation: bool,
|
|
162
213
|
**global_options: object,
|
|
163
214
|
) -> None:
|
|
164
215
|
"""Deploy a project or workspace to Dagster Plus. Handles all state management for the deploy
|
|
@@ -171,6 +222,9 @@ def deploy_group(
|
|
|
171
222
|
Each of the individual stages of the deploy is also available as its own subcommand for additional
|
|
172
223
|
customization.
|
|
173
224
|
"""
|
|
225
|
+
from dagster_cloud_cli.commands.ci import BuildStrategy
|
|
226
|
+
from dagster_cloud_cli.core.pex_builder.deps import BuildMethod
|
|
227
|
+
|
|
174
228
|
if click.get_current_context().invoked_subcommand:
|
|
175
229
|
return
|
|
176
230
|
|
|
@@ -187,6 +241,12 @@ def deploy_group(
|
|
|
187
241
|
organization = _get_organization(organization, plus_config)
|
|
188
242
|
deployment = _get_deployment(deployment, plus_config)
|
|
189
243
|
|
|
244
|
+
# Extract dagster_env from config
|
|
245
|
+
dagster_env = None
|
|
246
|
+
if DagsterPlusCliConfig.exists():
|
|
247
|
+
config = DagsterPlusCliConfig.get()
|
|
248
|
+
dagster_env = _extract_dagster_env_from_url(config.url)
|
|
249
|
+
|
|
190
250
|
dg_context = DgContext.for_workspace_or_project_environment(target_path, cli_config)
|
|
191
251
|
_validate_location_names(dg_context, location_names, cli_config)
|
|
192
252
|
|
|
@@ -199,6 +259,9 @@ def deploy_group(
|
|
|
199
259
|
else:
|
|
200
260
|
agent_type = get_agent_type(plus_config)
|
|
201
261
|
|
|
262
|
+
build_strategy_enum = BuildStrategy(build_strategy)
|
|
263
|
+
pex_build_method_enum = BuildMethod(pex_build_method)
|
|
264
|
+
|
|
202
265
|
init_deploy_session(
|
|
203
266
|
organization,
|
|
204
267
|
deployment,
|
|
@@ -211,11 +274,15 @@ def deploy_group(
|
|
|
211
274
|
location_names,
|
|
212
275
|
status_url,
|
|
213
276
|
snapshot_base_condition,
|
|
277
|
+
dagster_env,
|
|
278
|
+
skip_validation,
|
|
214
279
|
)
|
|
215
280
|
|
|
216
281
|
build_artifact(
|
|
217
282
|
dg_context,
|
|
218
283
|
agent_type,
|
|
284
|
+
build_strategy_enum,
|
|
285
|
+
pex_build_method_enum,
|
|
219
286
|
statedir,
|
|
220
287
|
bool(use_editable_dagster),
|
|
221
288
|
python_version,
|
|
@@ -281,6 +348,11 @@ def _validate_location_names(
|
|
|
281
348
|
]
|
|
282
349
|
),
|
|
283
350
|
)
|
|
351
|
+
@click.option(
|
|
352
|
+
"--skip-validation",
|
|
353
|
+
is_flag=True,
|
|
354
|
+
help="Skip configuration validation checks (not recommended).",
|
|
355
|
+
)
|
|
284
356
|
@dg_global_options
|
|
285
357
|
@cli_telemetry_wrapper
|
|
286
358
|
def start_deploy_session_command(
|
|
@@ -294,6 +366,7 @@ def start_deploy_session_command(
|
|
|
294
366
|
target_path: Path,
|
|
295
367
|
status_url: Optional[str],
|
|
296
368
|
snapshot_base_condition_str: Optional[str],
|
|
369
|
+
skip_validation: bool,
|
|
297
370
|
**global_options: object,
|
|
298
371
|
) -> None:
|
|
299
372
|
"""Start a new deploy session. Determines which code locations will be deployed and what
|
|
@@ -307,6 +380,12 @@ def start_deploy_session_command(
|
|
|
307
380
|
organization = _get_organization(organization, plus_config)
|
|
308
381
|
deployment = _get_deployment(deployment, plus_config)
|
|
309
382
|
|
|
383
|
+
# Extract dagster_env from config
|
|
384
|
+
dagster_env = None
|
|
385
|
+
if DagsterPlusCliConfig.exists():
|
|
386
|
+
config = DagsterPlusCliConfig.get()
|
|
387
|
+
dagster_env = _extract_dagster_env_from_url(config.url)
|
|
388
|
+
|
|
310
389
|
dg_context = DgContext.for_workspace_or_project_environment(target_path, cli_config)
|
|
311
390
|
_validate_location_names(dg_context, location_names, cli_config)
|
|
312
391
|
statedir = _get_statedir()
|
|
@@ -329,6 +408,8 @@ def start_deploy_session_command(
|
|
|
329
408
|
location_names,
|
|
330
409
|
status_url,
|
|
331
410
|
snapshot_base_condition,
|
|
411
|
+
dagster_env,
|
|
412
|
+
skip_validation,
|
|
332
413
|
)
|
|
333
414
|
|
|
334
415
|
|
|
@@ -339,6 +420,8 @@ def start_deploy_session_command(
|
|
|
339
420
|
type=click.Choice([agent_type.value.lower() for agent_type in DgPlusAgentType]),
|
|
340
421
|
help="Whether this a Hybrid or serverless code location.",
|
|
341
422
|
)
|
|
423
|
+
@build_strategy_option_group
|
|
424
|
+
@pex_build_method_option_group
|
|
342
425
|
@click.option(
|
|
343
426
|
"--python-version",
|
|
344
427
|
"python_version",
|
|
@@ -360,6 +443,8 @@ def start_deploy_session_command(
|
|
|
360
443
|
@cli_telemetry_wrapper
|
|
361
444
|
def build_and_push_command(
|
|
362
445
|
agent_type_str: str,
|
|
446
|
+
build_strategy: str,
|
|
447
|
+
pex_build_method: str,
|
|
363
448
|
python_version: Optional[str],
|
|
364
449
|
use_editable_dagster: Optional[str],
|
|
365
450
|
location_names: tuple[str],
|
|
@@ -369,6 +454,9 @@ def build_and_push_command(
|
|
|
369
454
|
"""Builds a Docker image to be deployed, and pushes it to the registry
|
|
370
455
|
that was configured when the deploy session was started.
|
|
371
456
|
"""
|
|
457
|
+
from dagster_cloud_cli.commands.ci import BuildStrategy
|
|
458
|
+
from dagster_cloud_cli.core.pex_builder.deps import BuildMethod
|
|
459
|
+
|
|
372
460
|
cli_config = normalize_cli_config(global_options, click.get_current_context())
|
|
373
461
|
|
|
374
462
|
dg_context = DgContext.for_workspace_or_project_environment(target_path, cli_config)
|
|
@@ -381,11 +469,16 @@ def build_and_push_command(
|
|
|
381
469
|
plus_config = DagsterPlusCliConfig.get()
|
|
382
470
|
agent_type = get_agent_type(plus_config)
|
|
383
471
|
|
|
472
|
+
build_strategy_enum = BuildStrategy(build_strategy)
|
|
473
|
+
pex_build_method_enum = BuildMethod(pex_build_method)
|
|
474
|
+
|
|
384
475
|
statedir = _get_statedir()
|
|
385
476
|
|
|
386
477
|
build_artifact(
|
|
387
478
|
dg_context,
|
|
388
479
|
agent_type,
|
|
480
|
+
build_strategy_enum,
|
|
481
|
+
pex_build_method_enum,
|
|
389
482
|
statedir,
|
|
390
483
|
bool(use_editable_dagster),
|
|
391
484
|
python_version,
|
{dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/plus/deploy/deploy_session.py
RENAMED
|
@@ -7,10 +7,6 @@ from pathlib import Path
|
|
|
7
7
|
from typing import TYPE_CHECKING, Optional
|
|
8
8
|
|
|
9
9
|
import click
|
|
10
|
-
|
|
11
|
-
if TYPE_CHECKING:
|
|
12
|
-
from dagster_cloud_cli.types import SnapshotBaseDeploymentCondition
|
|
13
|
-
|
|
14
10
|
import dagster_shared.check as check
|
|
15
11
|
|
|
16
12
|
# Expensive imports moved to lazy loading inside functions to improve CLI startup performance
|
|
@@ -22,6 +18,11 @@ from dagster_dg_cli.cli.plus.constants import DgPlusAgentType, DgPlusDeploymentT
|
|
|
22
18
|
from dagster_dg_cli.cli.utils import create_temp_dagster_cloud_yaml_file
|
|
23
19
|
from dagster_dg_cli.utils.plus.build import create_deploy_dockerfile, get_dockerfile_path
|
|
24
20
|
|
|
21
|
+
if TYPE_CHECKING:
|
|
22
|
+
from dagster_cloud_cli.commands.ci import BuildStrategy
|
|
23
|
+
from dagster_cloud_cli.core.pex_builder.deps import BuildMethod
|
|
24
|
+
from dagster_cloud_cli.types import SnapshotBaseDeploymentCondition
|
|
25
|
+
|
|
25
26
|
|
|
26
27
|
def _guess_deployment_type(
|
|
27
28
|
project_dir: Path, full_deployment_name: str
|
|
@@ -127,6 +128,8 @@ def init_deploy_session(
|
|
|
127
128
|
location_names: tuple[str],
|
|
128
129
|
status_url: Optional[str],
|
|
129
130
|
snapshot_base_condition: Optional["SnapshotBaseDeploymentCondition"],
|
|
131
|
+
dagster_env: Optional[str],
|
|
132
|
+
skip_validation: bool = False,
|
|
130
133
|
):
|
|
131
134
|
deployment_type = (
|
|
132
135
|
input_deployment_type
|
|
@@ -144,7 +147,14 @@ def init_deploy_session(
|
|
|
144
147
|
|
|
145
148
|
dagster_cloud_yaml_file = create_temp_dagster_cloud_yaml_file(dg_context, statedir)
|
|
146
149
|
|
|
147
|
-
|
|
150
|
+
from dagster_dg_cli.cli.plus.deploy.validation import validate_deploy_configuration
|
|
151
|
+
|
|
152
|
+
if not skip_validation:
|
|
153
|
+
validate_deploy_configuration(
|
|
154
|
+
dagster_cloud_yaml_path=dagster_cloud_yaml_file,
|
|
155
|
+
organization=organization,
|
|
156
|
+
)
|
|
157
|
+
|
|
148
158
|
from dagster_cloud_cli.commands.ci import init_impl
|
|
149
159
|
|
|
150
160
|
init_impl(
|
|
@@ -156,7 +166,7 @@ def init_deploy_session(
|
|
|
156
166
|
require_branch_deployment=deployment_type == DgPlusDeploymentType.BRANCH_DEPLOYMENT,
|
|
157
167
|
git_url=git_url,
|
|
158
168
|
commit_hash=commit_hash,
|
|
159
|
-
dagster_env=
|
|
169
|
+
dagster_env=dagster_env,
|
|
160
170
|
status_url=status_url,
|
|
161
171
|
snapshot_base_condition=snapshot_base_condition,
|
|
162
172
|
clean_statedir=False,
|
|
@@ -167,20 +177,33 @@ def init_deploy_session(
|
|
|
167
177
|
def build_artifact(
|
|
168
178
|
dg_context: DgContext,
|
|
169
179
|
agent_type: DgPlusAgentType,
|
|
180
|
+
build_strategy: "BuildStrategy",
|
|
181
|
+
pex_build_method: "BuildMethod",
|
|
170
182
|
statedir: str,
|
|
171
183
|
use_editable_dagster: bool,
|
|
172
184
|
python_version: Optional[str],
|
|
173
185
|
location_names: tuple[str],
|
|
174
186
|
):
|
|
187
|
+
from dagster_cloud_cli.commands.ci import BuildStrategy
|
|
188
|
+
|
|
175
189
|
if not python_version:
|
|
176
190
|
python_version = f"3.{sys.version_info.minor}"
|
|
177
191
|
|
|
192
|
+
# Validate build strategy compatibility with agent type
|
|
193
|
+
if agent_type == DgPlusAgentType.HYBRID and build_strategy == BuildStrategy.pex:
|
|
194
|
+
raise click.UsageError(
|
|
195
|
+
"Build strategy 'python-executable' is not supported for Hybrid agents. "
|
|
196
|
+
"Hybrid agents require 'docker' build strategy."
|
|
197
|
+
)
|
|
198
|
+
|
|
178
199
|
requested_location_names = set(location_names)
|
|
179
200
|
|
|
180
201
|
if dg_context.is_project:
|
|
181
202
|
_build_artifact_for_project(
|
|
182
203
|
dg_context,
|
|
183
204
|
agent_type,
|
|
205
|
+
build_strategy,
|
|
206
|
+
pex_build_method,
|
|
184
207
|
statedir,
|
|
185
208
|
use_editable_dagster,
|
|
186
209
|
python_version,
|
|
@@ -201,6 +224,8 @@ def build_artifact(
|
|
|
201
224
|
_build_artifact_for_project(
|
|
202
225
|
project_context,
|
|
203
226
|
agent_type,
|
|
227
|
+
build_strategy,
|
|
228
|
+
pex_build_method,
|
|
204
229
|
statedir,
|
|
205
230
|
use_editable_dagster,
|
|
206
231
|
python_version,
|
|
@@ -211,6 +236,8 @@ def build_artifact(
|
|
|
211
236
|
def _build_artifact_for_project(
|
|
212
237
|
dg_context: DgContext,
|
|
213
238
|
agent_type: DgPlusAgentType,
|
|
239
|
+
build_strategy: "BuildStrategy",
|
|
240
|
+
pex_build_method: "BuildMethod",
|
|
214
241
|
statedir: str,
|
|
215
242
|
use_editable_dagster: bool,
|
|
216
243
|
python_version: str,
|
|
@@ -247,10 +274,9 @@ def _build_artifact_for_project(
|
|
|
247
274
|
)
|
|
248
275
|
|
|
249
276
|
else:
|
|
250
|
-
# Import
|
|
277
|
+
# Import deps locally since they're not needed for tests
|
|
251
278
|
# Lazy import for test mocking and performance
|
|
252
|
-
from dagster_cloud_cli.commands.ci import
|
|
253
|
-
from dagster_cloud_cli.core.pex_builder import deps
|
|
279
|
+
from dagster_cloud_cli.commands.ci import build_impl
|
|
254
280
|
|
|
255
281
|
build_impl(
|
|
256
282
|
statedir=str(statedir),
|
|
@@ -258,12 +284,12 @@ def _build_artifact_for_project(
|
|
|
258
284
|
use_editable_dagster=use_editable_dagster,
|
|
259
285
|
location_name=[dg_context.code_location_name],
|
|
260
286
|
build_directory=str(build_directory),
|
|
261
|
-
build_strategy=
|
|
287
|
+
build_strategy=build_strategy,
|
|
262
288
|
docker_image_tag=None,
|
|
263
289
|
docker_base_image=None,
|
|
264
290
|
docker_env=[],
|
|
265
291
|
python_version=python_version,
|
|
266
|
-
pex_build_method=
|
|
292
|
+
pex_build_method=pex_build_method,
|
|
267
293
|
pex_deps_cache_from=None,
|
|
268
294
|
pex_deps_cache_to=None,
|
|
269
295
|
pex_base_image_tag=None,
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"""Validation for dg plus deploy commands."""
|
|
2
|
+
|
|
3
|
+
import pathlib
|
|
4
|
+
from typing import Optional
|
|
5
|
+
|
|
6
|
+
import click
|
|
7
|
+
from dagster_shared.plus.config import DagsterPlusCliConfig
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def _extract_dagster_env_from_url(url: Optional[str]) -> Optional[str]:
|
|
11
|
+
"""Extract dagster_env from a DagsterPlusCliConfig URL.
|
|
12
|
+
|
|
13
|
+
Args:
|
|
14
|
+
url: Base URL like "https://eu.dagster.cloud" or None
|
|
15
|
+
|
|
16
|
+
Returns:
|
|
17
|
+
"eu" if EU region, None otherwise
|
|
18
|
+
"""
|
|
19
|
+
if url and "eu.dagster.cloud" in url:
|
|
20
|
+
return "eu"
|
|
21
|
+
return None
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def validate_deploy_configuration(
|
|
25
|
+
dagster_cloud_yaml_path: str,
|
|
26
|
+
organization: str,
|
|
27
|
+
) -> None:
|
|
28
|
+
"""Validate deployment configuration before starting deploy session.
|
|
29
|
+
|
|
30
|
+
Performs:
|
|
31
|
+
- YAML schema validation (structure, required fields, build directories)
|
|
32
|
+
- API connectivity check (token + GraphQL query)
|
|
33
|
+
|
|
34
|
+
Args:
|
|
35
|
+
dagster_cloud_yaml_path: Path to the dagster_cloud.yaml file to validate
|
|
36
|
+
organization: Dagster Cloud organization name
|
|
37
|
+
|
|
38
|
+
Raises:
|
|
39
|
+
click.ClickException: If validation fails
|
|
40
|
+
"""
|
|
41
|
+
# defer for import performance
|
|
42
|
+
from dagster_cloud_cli.commands.ci import checks
|
|
43
|
+
from dagster_cloud_cli.config_utils import get_org_url
|
|
44
|
+
|
|
45
|
+
yaml_path = pathlib.Path(dagster_cloud_yaml_path)
|
|
46
|
+
|
|
47
|
+
yaml_result = checks.check_dagster_cloud_yaml(yaml_path)
|
|
48
|
+
|
|
49
|
+
dagster_env = None
|
|
50
|
+
if DagsterPlusCliConfig.exists():
|
|
51
|
+
config = DagsterPlusCliConfig.get()
|
|
52
|
+
dagster_env = _extract_dagster_env_from_url(config.url)
|
|
53
|
+
|
|
54
|
+
url = get_org_url(organization, dagster_env)
|
|
55
|
+
connect_result = checks.check_connect_dagster_cloud(url)
|
|
56
|
+
|
|
57
|
+
all_errors = yaml_result.errors + connect_result.errors
|
|
58
|
+
|
|
59
|
+
if all_errors:
|
|
60
|
+
click.echo(click.style("\nConfiguration validation failed:", fg="red", bold=True))
|
|
61
|
+
click.echo()
|
|
62
|
+
for error in all_errors:
|
|
63
|
+
click.echo(f" • {error}")
|
|
64
|
+
click.echo()
|
|
65
|
+
click.echo(
|
|
66
|
+
click.style("Fix the errors above or use --skip-validation to bypass.", dim=True)
|
|
67
|
+
)
|
|
68
|
+
raise click.ClickException("Deploy configuration validation failed")
|
|
69
|
+
|
|
70
|
+
click.echo("Configuration validated")
|
{dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/templates/hybrid-github-action.yaml
RENAMED
|
@@ -77,7 +77,7 @@ jobs:
|
|
|
77
77
|
if: steps.prerun.outputs.result != 'skip'
|
|
78
78
|
uses: dagster-io/dagster-cloud-action/actions/utils/dg-cli@TEMPLATE_DAGSTER_CLOUD_ACTION_VERSION
|
|
79
79
|
with:
|
|
80
|
-
command: "plus deploy refresh-defs-state"
|
|
80
|
+
command: "plus deploy refresh-defs-state --target-path=${{ env.DAGSTER_PROJECT_DIR }}"
|
|
81
81
|
|
|
82
82
|
# Any value can be used as the docker image tag. It is recommended to use a unique value
|
|
83
83
|
# for each build so that multiple builds do not overwrite each other.
|
{dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/templates/hybrid-gitlab-ci.yaml
RENAMED
|
@@ -18,6 +18,10 @@ variables:
|
|
|
18
18
|
# The IMAGE_TAG determines the tag for the built Docker image
|
|
19
19
|
IMAGE_TAG: $CI_COMMIT_SHORT_SHA-$CI_PIPELINE_ID
|
|
20
20
|
|
|
21
|
+
# Required for Docker-in-Docker
|
|
22
|
+
DOCKER_HOST: tcp://docker:2375
|
|
23
|
+
DOCKER_TLS_CERTDIR: ""
|
|
24
|
+
|
|
21
25
|
stages:
|
|
22
26
|
- deploy
|
|
23
27
|
|
|
@@ -47,11 +51,17 @@ dagster-cloud-deploy:
|
|
|
47
51
|
--yes
|
|
48
52
|
|
|
49
53
|
# Sync all projects (workspace or single project)
|
|
50
|
-
-
|
|
54
|
+
- |
|
|
55
|
+
for project in $(python -m uv run dg list projects); do
|
|
56
|
+
(cd "$project" && python -m uv sync)
|
|
57
|
+
done
|
|
51
58
|
|
|
52
59
|
# Refresh state for any StateBackedComponents in the project
|
|
53
60
|
- python -m uv run dg plus deploy refresh-defs-state
|
|
54
61
|
|
|
62
|
+
# Ensure .venv is excluded from Docker builds
|
|
63
|
+
- echo ".venv" >> .dockerignore
|
|
64
|
+
|
|
55
65
|
# Login to the container registry
|
|
56
66
|
# TEMPLATE_CONTAINER_REGISTRY_LOGIN_FRAGMENT
|
|
57
67
|
|
|
@@ -80,7 +80,7 @@ jobs:
|
|
|
80
80
|
if: steps.prerun.outputs.result != 'skip'
|
|
81
81
|
uses: dagster-io/dagster-cloud-action/actions/utils/dg-cli@TEMPLATE_DAGSTER_CLOUD_ACTION_VERSION
|
|
82
82
|
with:
|
|
83
|
-
command: "plus deploy refresh-defs-state"
|
|
83
|
+
command: "plus deploy refresh-defs-state --target-path=${{ env.DAGSTER_PROJECT_DIR }}"
|
|
84
84
|
|
|
85
85
|
# If using fast build, install setuptools for PEX builds
|
|
86
86
|
- name: Install setuptools
|
{dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/templates/serverless-gitlab-ci.yaml
RENAMED
|
@@ -9,8 +9,9 @@ variables:
|
|
|
9
9
|
DAGSTER_PROJECT_DIR: TEMPLATE_PROJECT_DIR
|
|
10
10
|
# State directory for deploy session
|
|
11
11
|
DAGSTER_BUILD_STATEDIR: /tmp/dagster-build-state-$CI_PIPELINE_ID
|
|
12
|
-
#
|
|
13
|
-
|
|
12
|
+
# Required for Docker-in-Docker
|
|
13
|
+
DOCKER_HOST: tcp://docker:2375
|
|
14
|
+
DOCKER_TLS_CERTDIR: ""
|
|
14
15
|
|
|
15
16
|
stages:
|
|
16
17
|
- deploy
|
|
@@ -32,19 +33,27 @@ dagster-cloud-serverless-deploy:
|
|
|
32
33
|
- pip install uv
|
|
33
34
|
script:
|
|
34
35
|
- cd $DAGSTER_PROJECT_DIR
|
|
36
|
+
|
|
37
|
+
# Sync all projects (workspace or single project)
|
|
38
|
+
- |
|
|
39
|
+
for project in $(python -m uv run dg list projects); do
|
|
40
|
+
(cd "$project" && python -m uv sync)
|
|
41
|
+
done
|
|
42
|
+
|
|
43
|
+
# Initialize build session
|
|
35
44
|
- >
|
|
36
45
|
python -m uv run dg plus deploy start
|
|
37
46
|
--deployment=TEMPLATE_DEFAULT_DEPLOYMENT_NAME
|
|
38
47
|
--yes
|
|
39
48
|
|
|
40
|
-
# Sync all projects (workspace or single project)
|
|
41
|
-
- find . -maxdepth 3 -name "pyproject.toml" -type f -execdir python -m uv sync \;
|
|
42
|
-
|
|
43
49
|
# Refresh state for any StateBackedComponents in the project
|
|
44
50
|
- python -m uv run dg plus deploy refresh-defs-state
|
|
45
51
|
|
|
52
|
+
# Ensure .venv is excluded from Docker builds
|
|
53
|
+
- echo ".venv" >> .dockerignore
|
|
54
|
+
|
|
46
55
|
# Build and push (PEX or Docker based on project configuration)
|
|
47
|
-
- python -m uv run dg plus deploy build-and-push --agent-type=serverless
|
|
56
|
+
- python -m uv run dg plus deploy build-and-push --agent-type=serverless
|
|
48
57
|
|
|
49
58
|
# Deploy all code locations in this build session to Dagster Cloud
|
|
50
59
|
- python -m uv run dg plus deploy finish
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "1.12.12"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dagster-dg-cli
|
|
3
|
-
Version: 1.12.
|
|
3
|
+
Version: 1.12.12
|
|
4
4
|
Home-page: https://github.com/dagster-io/dagster/tree/master/python_modules/libraries/dagster-dg-cli
|
|
5
5
|
Author: Dagster Labs
|
|
6
6
|
Author-email: hello@dagsterlabs.com
|
|
@@ -13,9 +13,9 @@ Classifier: Programming Language :: Python :: 3.14
|
|
|
13
13
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
14
14
|
Classifier: Operating System :: OS Independent
|
|
15
15
|
License-File: LICENSE
|
|
16
|
-
Requires-Dist: dagster-dg-core==1.12.
|
|
17
|
-
Requires-Dist: dagster==1.12.
|
|
18
|
-
Requires-Dist: dagster-cloud-cli==1.12.
|
|
16
|
+
Requires-Dist: dagster-dg-core==1.12.12
|
|
17
|
+
Requires-Dist: dagster==1.12.12
|
|
18
|
+
Requires-Dist: dagster-cloud-cli==1.12.12
|
|
19
19
|
Requires-Dist: typer
|
|
20
20
|
Provides-Extra: test
|
|
21
21
|
Requires-Dist: syrupy>=4.0.0; extra == "test"
|
|
@@ -75,6 +75,7 @@ dagster_dg_cli/cli/plus/create/env.py
|
|
|
75
75
|
dagster_dg_cli/cli/plus/deploy/__init__.py
|
|
76
76
|
dagster_dg_cli/cli/plus/deploy/commands.py
|
|
77
77
|
dagster_dg_cli/cli/plus/deploy/deploy_session.py
|
|
78
|
+
dagster_dg_cli/cli/plus/deploy/validation.py
|
|
78
79
|
dagster_dg_cli/cli/plus/deploy/configure/__init__.py
|
|
79
80
|
dagster_dg_cli/cli/plus/deploy/configure/commands.py
|
|
80
81
|
dagster_dg_cli/cli/plus/deploy/configure/configure_build_artifacts.py
|
|
@@ -36,9 +36,9 @@ setup(
|
|
|
36
36
|
packages=find_packages(exclude=["dagster_dg_cli_tests*"]),
|
|
37
37
|
include_package_data=True,
|
|
38
38
|
install_requires=[
|
|
39
|
-
"dagster-dg-core==1.12.
|
|
40
|
-
"dagster==1.12.
|
|
41
|
-
"dagster-cloud-cli==1.12.
|
|
39
|
+
"dagster-dg-core==1.12.12",
|
|
40
|
+
"dagster==1.12.12",
|
|
41
|
+
"dagster-cloud-cli==1.12.12",
|
|
42
42
|
"typer",
|
|
43
43
|
],
|
|
44
44
|
extras_require={
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "1.12.10"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/api_layer/api/deployments.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/api_layer/graphql_adapter/agent.py
RENAMED
|
File without changes
|
{dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/api_layer/graphql_adapter/asset.py
RENAMED
|
File without changes
|
|
File without changes
|
{dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/api_layer/graphql_adapter/run.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/api_layer/graphql_adapter/secret.py
RENAMED
|
File without changes
|
{dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/api_layer/graphql_adapter/sensor.py
RENAMED
|
File without changes
|
{dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/api_layer/schemas/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/api_layer/schemas/deployment.py
RENAMED
|
File without changes
|
|
File without changes
|
{dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/api_layer/schemas/run_event.py
RENAMED
|
File without changes
|
{dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/api_layer/schemas/schedule.py
RENAMED
|
File without changes
|
{dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/api_layer/schemas/secret.py
RENAMED
|
File without changes
|
{dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/api_layer/schemas/sensor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/plus/create/__init__.py
RENAMED
|
File without changes
|
{dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/plus/create/ci_api_token.py
RENAMED
|
File without changes
|
|
File without changes
|
{dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/plus/deploy/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/plus/deploy/configure/utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/scaffold/branch/CLAUDE.md
RENAMED
|
File without changes
|
{dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/scaffold/branch/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/scaffold/branch/command.py
RENAMED
|
File without changes
|
{dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/scaffold/branch/constants.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/scaffold/branch/models.py
RENAMED
|
File without changes
|
{dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/scaffold/branch/planning.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/scaffold/build_artifacts.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/cli/scaffold/github_actions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/utils/plus/defs_state_storage.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli/utils/yaml_template_generator.py
RENAMED
|
File without changes
|
{dagster_dg_cli-1.12.10 → dagster_dg_cli-1.12.12}/dagster_dg_cli.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|