没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|行业资讯|编辑:董玉霞|2022-07-25 10:34:11.490|阅读 550 次
概述:Space团队正在发布对部署的支持,这是使Space成为真正的一体化解决方案的 另一个难题。
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
相关链接:
JetBrains Space是整个软件开发pipeline和团队协作的统一平台。托管git存储库、查看代码、自动化CI/CD、存储和发布包、管理问题和文档以及在聊天中进行通讯——所有这些功能都集成在一起,开箱即用。
Space团队正在发布对部署的支持,这是使Space成为真正的一体化解决方案的 另一个难题。 部署是一个空间实体,表示将源代码更改交付到部署环境(部署目标)。例如,将 Web 应用程序交付到生产服务器、在商店中发布移动应用程序、将分发上传到 FTP 服务器等等。
部署在许多层面上都有帮助:
Space中的部署本身不会运行任何构建脚本。它只是一个跟踪当前部署状态的状态机。状态更新由 CI/CD 服务器在空间命令行工具(作为 Docker 映像提供:)public.registry.jetbrains.space/p/space/containers/space-cli:latest或 Space HTTP API 的帮助下发送。还有一个选项可以在 UI 中手动更改部署状态。这意味着您可以将部署与您选择的任何 CI/CD 工具一起使用,包括 Space Automation、JetBrains TeamCity、GitHub Actions 等。
例如,这就是包含所有可能状态的部署的样子。
此方案中除已完成之外的所有状态都是可选的:您可以在任何状态下创建新部署。
假设您有一个现有的 CI/CD 管道,可以将您的产品交付到某个环境(目标)。在最简单的情况下,您可以从跟踪部署何时开始(部署状态)和何时结束(当前状态)开始:
job("Deploy") { // you can store the auth token as a secret env["TOKEN"] = Secrets("space-auth-token") container("Deploy to prod", "registry.jetbrains.team/p/myprj/docker/custom-image-with-space-cli") { shellScript { // staging-server is the target key // JB_SPACE_EXECUTION_NUMBER serves as a version number content = """ space configure ${'$'}JB_SPACE_API_URL ${'$'}TOKEN space deployments start ${'$'}JB_SPACE_PROJECT_KEY staging-server --version ${'$'}JB_SPACE_EXECUTION_NUMBER --commit my-web-app:release:${'$'}JB_SPACE_GIT_REVISION ./do-deploy.sh space deployments finish ${'$'}JB_SPACE_PROJECT_KEY staging-server """ } } }
job("Deploy") { container("Run deploy script", image = "gradle:7.1-jre11") { kotlinScript { api -> api.space().projects.automation.deployments.start( // get id of the current project project = api.projectIdentifier(), // deployment target name targetIdentifier = TargetIdentifier.Id("production-server"), version = "1.0.0", // with syncWithAutomationJob = true, // Space will automatically change deployment status // based on the job execution result. // If the job fails, the deployment fails as well. // If the job is successful, the deployment becomes 'current'. syncWithAutomationJob = true ) // do deployment staff // ... } } }
脚本成功完成后,部署变为current,这意味着这是部署到目标环境的实际应用程序版本。
TeamCity 工作流程看起来与上面的工作流程非常相似。通常,对于部署,您使用Deployment 构建配置。在此配置中,添加两个构建步骤,如下所示:
构建配置可能如下所示:
steps { script { name = "Space notification - start deployment" scriptContent = """ space configure %env.SPACE_DEPLOYMENT_API_URL% %env.SPACE_NOTIFICATION_PERM_TOKEN% space deployments start %env.SPACE_DEPLOYMENT_PROJECT_KEY% %env.SPACE_DEPLOYMENT_TARGET_ID% --version %build.number% --commit my-web-app:%teamcity.build.branch%:%build.vcs.number% --ext-service '%env.SPACE_DEPLOYMENT_EXT_SERVICE%' --ext-label '%env.SPACE_DEPLOYMENT_EXT_LABEL%' --ext-url %env.SPACE_DEPLOYMENT_EXT_URL% """ dockerImage = "%env.SPACE_CLI_DOCKER_IMAGE%" } script { // do deploy... } script { name = "Space notification - finish deployment" executionMode = BuildStep.ExecutionMode.ON_SUCCESS scriptContent = """ space configure %env.SPACE_DEPLOYMENT_API_URL% %env.SPACE_NOTIFICATION_PERM_TOKEN% space deployments finish %env.SPACE_DEPLOYMENT_PROJECT_KEY% %env.SPACE_DEPLOYMENT_TARGET_ID% """ dockerImage = "%env.SPACE_CLI_DOCKER_IMAGE%" } script { name = "Space notification - fail deployment" executionMode = BuildStep.ExecutionMode.ON_FAILURE scriptContent = """ space configure %env.SPACE_DEPLOYMENT_API_URL% %env.SPACE_NOTIFICATION_PERM_TOKEN% space deployments fail %env.SPACE_DEPLOYMENT_PROJECT_KEY% %env.SPACE_DEPLOYMENT_TARGET_ID% """ dockerImage = "%env.SPACE_CLI_DOCKER_IMAGE%" } }
部署与其他空间子系统集成的方式是另一个重要因素。首先,每个部署目标和部署都有自己的时间表,用于发布部署状态更改。您还可以订阅部署事件并在您的个人Spacebox频道中接收通知。
部署也有时间表。此外,部署时间表不仅仅是一个日志——它还是一个专用的聊天频道,您可以在其中与团队或公司中参与 CD 的其他人进行交流。
提交现在具有部署选项卡,可让您查看提交是否已部署。合并请求和问题也有一个类似的部署选项卡。
更多有关Space产品信息可以咨询慧都在线客服 。
Space技术交流群:786598704 欢迎进群一起讨论
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com
Parasoft dotTEST凭借其即插即用的内置安全标准和直观的规则映射能力,为C#/VB.NET 开发者提供了强大的支持。它有效消除了理解复杂标准与配置规则的障碍,让开发者能够专注于编写高质量代码,而非耗费精力在标准解读与工具映射上。这不仅显著提升了开发效率,缩短了交付周期,更从源头系统性地降低了安全风险,确保了软件符合严苛的行业合规要求。
Parasoft Virtualize以智能复用和轻量存储为核心,不仅解决了传统测试数据管理的冗余与性能瓶颈,更通过技术创新释放了团队的生产力。它让开发者摆脱重复劳动的束缚,将精力聚焦于更复杂的业务逻辑与质量验证,从而在快节奏的开发周期中保持敏捷与精准。无论是应对高并发的性能挑战,还是满足数据合规的严苛要求,Virtualize都以优秀的解决方案为技术团队提供了坚实的支撑。
imScale近期与 西门子PLM软件公司 和Tech Soft 3D达成技术合作,将行业领先的几何建模内核Parasolid及多格式CAD数据解析引擎HOOPS Exchange深度集成至平台中,全面增强CAD数据处理与互操作能力。
今天为大家介绍Kotlin 开发者如何在 Android Studio 中使用 JetBrains AI Assistant ,欢迎下载工具体验!
是一个针对软件项目和团队的一体化解决方案。
IntelliJ IDEAIntelliJ在业界被公认为优秀的Java开发平台之一,在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合、代码审查、 创新的GUI设计等方面表现突出,并支持基于Android平台的程序开发。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 渝公网安备
50010702500608号