提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|行业资讯|编辑:董玉霞|2022-07-25 10:34:11.490|阅读 521 次
概述: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@pclwef.cn
通过提供强大的3D CAD数据访问工具并适用于桌面、移动和Web的高级环境3D可视化发动机,HOOPS在提升造船设计和制造流程的效率方面发挥了重要作用。
HOOPS Luminate在汽车行业中的应用具有广泛的潜力和深远的影响。它通过提供高效的3D可视化、虚拟装配与拆解、性能分析、客户定制等功能,帮助汽车制造商在设计、生产和销售过程中提升效率、降低成本并提高产品质量。
在不断发展的软件开发世界中,使工具和框架与最新的平台版本保持同步至关重要,欢迎查阅~
全球航运业对国际贸易至关重要,全球 90% 以上的商品通过海运运输。准确监控和控制这些集装箱的移动对于维持高效的供应链至关重要。手动输入集装箱号码是这一程序的关键部分,它带来了相当大的挑战,例如人为错误和效率低下。
是一个针对软件项目和团队的一体化解决方案。
IntelliJ IDEAIntelliJ在业界被公认为优秀的Java开发平台之一,在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合、代码审查、 创新的GUI设计等方面表现突出,并支持基于Android平台的程序开发。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢