Dagster+ 如何配置 GitHub Actions 或 GitLab CI/CD 自动部署代码?

发布时间:2026/9/14 15:14:54

Dagster+ 如何配置 GitHub Actions 或 GitLab CI/CD 自动部署代码? Dagster 如何配置 GitHub Actions 或 GitLab CI/CD 自动部署代码【免费下载链接】dagsterAn orchestration platform for the development, production, and observation of data assets.项目地址: https://gitcode.com/GitHub_Trending/da/dagster当你把 Dagster 项目代码托管到 GitHub 或 GitLab 后希望在每次推送代码时自动把变更部署到 DagsterServerless 或 Hybrid而不用每次手动运行部署命令官方文档提供了一条统一的操作路径用dg plus deploy configure命令在项目中脚手架生成对应的 CI/CD 工作流文件GitHub Actions workflow 或.gitlab-ci.yml再把 Dagster Cloud API token 配置为仓库的 Secret / CI/CD 变量之后 commit 并 push 即可触发自动部署。本文适用前提你已经拥有一个 Dagster 项目例如通过uvx create-dagsterlatest project my-project创建见 创建 Dagster 项目并已通过dg plus login登录到你的 Dagster 组织。完整官方文档见 配置 Dagster 中的 CI/CD。GitHub Actions 路径GitHub 路径的额外前置条件来自文档的 Prerequisites 说明已创建 Dagster 项目已安装 GitHub 官方ghCLI并通过gh auth login完成认证已通过dg plus login登录 Dagster 组织。操作步骤进入项目根目录并激活虚拟环境cd project-directory source .venv/bin/activate # MacOS/UnixWindows 使用 .venv\Scripts\activate其中project-directory替换为你自己的项目目录。添加依赖dagster-cloud作为运行时依赖dagster-dg-cli作为 dev 依赖。dagster-cloud必须安装在生产容器内Dagster code server 才能启动dagster-dg-cli只在 CI 中运行执行dg list projects和dg plus deploy最终镜像通过uv sync --no-dev将其排除。uv add dagster-cloud uv add --dev dagster-dg-cli如果使用 pippip install dagster-cloud pip install --group dev注意pip install --group要求 pip 25.1 或更高版本2025 年 4 月它从pyproject.toml的[dependency-groups.dev]读取依赖项目若未使用 PEP 735 dependency groups改为直接pip install dagster-dg-cli。另外如果项目是用create-dagster project创建的dagster-dg-cli已声明为 dev 依赖可跳过上述--dev命令。初始化本地 Git 仓库并通过gh repo create创建关联的 GitHub 远程仓库。提示选择时选择Push an existing local repository to github.comgit init . gh repo create用dg plus deploy configure脚手架生成部署配置文件包括 GitHub Actions workflow 文件--git-provider指定为githubdg plus deploy configure --git-provider github创建 Dagster Cloud API token并一步设置为该项目的 GitHub Actions secretDAGSTER_CLOUD_API_TOKENdg plus create ci-api-token --description Used in my-project GitHub Actions | gh secret set DAGSTER_CLOUD_API_TOKEN提交并推送触发部署git add . git commit -m Deploy to Dagster git push origin mainGitLab CI/CD 路径GitLab 路径的前置条件已创建 Dagster 项目并已通过dg plus login登录 Dagster 组织。进入项目根目录、激活虚拟环境、安装依赖命令与 GitHub 路径中的第 1、2 步完全相同此处不再重复。初始化仓库并做首次提交git init . git add . git commit -m Initial commit在 GitLab 上创建远程仓库并推送。可以在 GitLab 界面手动新建项目或用命令行推送命令中的USERNAME替换为你的 GitLab 用户名或组织 workspacegit push --set-upstream gitgitlab.com:USERNAME/$(git rev-parse --show-toplevel | xargs basename).git $(git rev-parse --abbrev-ref HEAD)脚手架生成 GitLab CI/CD 配置文件dg plus deploy configure --git-provider gitlab创建 Dagster Cloud API tokendg plus create ci-api-token --description Used in Dagster project GitHub Actions将该 token 配置为 GitLab 仓库的 CI/CD 变量进入 GitLab 项目页面左侧栏点击SettingsCI/CD再点击Variables在Project variables下点击Add variableKey 填DAGSTER_CLOUD_API_TOKENValue 粘贴上一步生成的 token可按需修改变量类型、环境、可见性、标志和描述最后点击Add variable。完成以上配置后之后每次向 GitLab 仓库 commit 并 push 新变更都会自动部署到你的 Dagster 组织。如何确认部署成功GitHub 路径部署过程中agent 会尝试加载你的代码并更新 Dagster 中的元数据。完成后GitHub Action 显示成功结束并且能在 Dagster 的Deployment标签下看到对应的 code location。GitLab 路径文档以 push 后自动部署作为成功条件部署结果同样体现在 Dagster 组织的 code location 中。关于 Serverless 部署形态的补充向main分支推送变更会自动部署到 DagsterPull / Merge Request 会创建临时的 branch deployment可以在 Dagster UI 中预览和测试。CI 中环境变量如何处理文档说明部署过程中你在 Dagster 部署里配置的环境变量会在代码加载阶段自动获取并可用。也就是说需要数据库密码、API key 等凭据的组件在 CI 中可以直接访问这些值不需要把它们再复制一份成 GitHub Secrets作用域完整部署还是 branch deployment会根据部署类型自动选择。GitHub Actions 工作流版本维护文档建议大约每 6 个月更新一次 workflow 文件中 Dagster GitHub Actions 的版本这些 action 使用跟随 Dagster 发布节奏的版本 tag例如v1.11.13。如果你的组织要求第三方 action 必须固定到完整 commit SHA该策略递归覆盖dagster-cloud-action内部引用的actions/checkout、docker/build-push-action等需要使用dagster-io/dagster-cloud-actionv1.13.11 或更高版本从该版本起Dagster action 内部引用的第三方 action 全部固定到完整 commit SHA。更早的版本即使把 Dagster action 本身固定到 SHA在策略启用时仍会导致 workflow 失败。文档给出的工作流片段示例其中full-length-commit-sha需替换为对应版本的完整 commit SHA- name: Pre-run checks id: prerun uses: dagster-io/dagster-cloud-action/actions/utils/prerunfull-length-commit-sha # v1.13.11不使用 GitHub/GitLab 时的替代方式如果你使用其他 Git provider 或本地 Git 仓库可以不依赖上述自动化流程改用 CLI 手动部署作为可选分支了解即可Serverless先在 CI 或本地完成认证交互式用dg plus login再运行dagster-cloud serverless deploy-python-executableWindows 上改用dagster-cloud serverless deploy例如dagster-cloud serverless deploy-python-executable ./my-project \ --location-name example \ --package-name YOUR_PACKAGE_NAME \ --python-version 3.12其中./my-project为你的项目目录YOUR_PACKAGE_NAME替换为你的 Dagster 包名。Hybrid先用dg plus deploy configure脚手架生成 Dockerfile、build.yaml、container_context.yaml设置DAGSTER_CLOUD_ORGANIZATION、DAGSTER_CLOUD_API_TOKEN敏感值建议存为 CI/CD secret、DAGSTER_BUILD_STATEDIR指向构建机上空白或尚不存在的临时目录三个变量均为必填然后依次执行dg plus deploy start --deploymentDEPLOYMENT_NAME --project-dir.、dg plus deploy build-and-push上传到build.yaml中指定的镜像仓库需要该仓库的认证、dg plus deploy成功后可在 Dagster 的Deployments标签下看到 code location。两条主路径的共同核心就是dg plus deploy configure --git-provider github|gitlab生成的工作流文件加上DAGSTER_CLOUD_API_TOKEN这一 Secret/变量其余差异只体现在仓库创建和 token 配置方式上。【免费下载链接】dagsterAn orchestration platform for the development, production, and observation of data assets.项目地址: https://gitcode.com/GitHub_Trending/da/dagster创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/14 15:09:54

AI出海合规实战:GDPR罚款与知识产权诉讼的技术防御体系

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/14 16:10:05

布隆过滤器原理与应用:高效海量数据去重方案

1. 布隆过滤器概述布隆过滤器(Bloom Filter)是一种空间效率极高的概率型数据结构,由Burton Howard Bloom在1970年提出。它专门用于快速判断一个元素是否存在于某个集合中,特点是可能存在误判(false positive&#xff0…

2026/9/14 16:10:05

Discourse开源论坛部署与SSO集成实战:Docker+泛微OA单点登录

1. 项目概述:为什么Discourse不是“又一个论坛”,而是开源社区基建的分水岭Discourse 新一代开源论坛——这名字里藏着三个容易被忽略但极其关键的定语:“Discourse”是具体技术实体,不是泛指;“新一代”不是营销话术&…

2026/9/14 16:10:04

Seata TCC模式实战:分布式事务解决方案详解

## 1. 项目概述第一次接触分布式事务时,我被这个看似简单实则复杂的领域深深吸引。作为从单体架构转型微服务的必经之路,分布式事务问题就像悬在架构师头顶的达摩克利斯之剑。在电商系统中,用户支付成功后需要同时更新订单状态、扣减库存、增…

2026/9/14 16:10:04

二维区域和问题的动态优化与工程实践

1. 面试高频题解析:二维区域和(可变)问题第一次在技术面遇到这道题时,我盯着白板上的矩阵愣了足足十秒钟。面试官轻描淡写地说:"这不就是个二维前缀和的变形吗?"后来我才明白,这道题之…

2026/9/14 2:17:50

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/14 0:03:22

KCF目标跟踪算法与OTB工程实现:毕业设计实战解析

简介:这是一份基于KCF核相关滤波算法、融合尺度池与抗遮挡处理的目标检测跟踪MATLAB完整源码,主要面向计算机相关专业准备毕业设计、课程设计或期末大作业的学生,也适合需要项目实战练习的初学者。源码在OTB数据集上完成验证,能够…

2026/9/14 0:03:22

语音情感识别实战:Keras实现LSTM、CNN、SVM与MLP多模型对比

简介:面向语音情感识别入门与进阶开发者,这份基于Keras的项目源码完整实现了LSTM、CNN、SVM、MLP四种模型,兼容Python3.8与Keras/TensorFlow2环境。压缩包内含49个文件,大小约70.31MB,主体包括Python脚本、yaml/json配…

2026/9/14 11:59:31

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/14 13:53:59

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/14 11:22:57

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码