写点什么

通过 AWS CodeCommit 将 Phabricator 与 AWS CodePipeline 集成

  • 2019-10-10
  • 本文字数:1791 字

    阅读完需:约 6 分钟

通过 AWS CodeCommit 将 Phabricator 与 AWS CodePipeline 集成

要实现真正的开发运营文化,需要实施从开发到生产的持续集成和持续交付 (CI/CD) 管道,这通常要将常见的开源工具与 AWS CodeCommit 和 AWS CodePipeline 等云服务集成。在这篇博文中,Junaid Kapadia 展示了如何将开源代码管理器 Phabricator 集成到基于云的 CI/CD 管道中。


Asif Khan


Aetion Evidence Platform 通过分析真实数据提供制定监管级决策所需的证据,从而改善医疗保健。该平台会以评估治疗的预期价值和实际价值所需的精细程度以及实现整个医疗保健生态系统实时协作所需的速度生成真实的证据。


Phabricator 是一种完全开源的、基于 Web 的可扩展软件开发套件,用于管理冲刺、审查代码、跟踪缺陷、托管代码库(如 git、svn 或 Mercurial),通过持续集成进行构建、审查设计,并与团队成员开展协作等。作为其内部工作流程的一部分,Aetion 使用 Phabricator 的自托管版本,通过基于 git 的修订控制进行源代码管理。


Aetion 现在正在向云端迁移。在迁移过程中,我们需要使用 AWS 开发人员工具(如 AWS CodeCommit 和 AWS CodePipeline)构建新的 CI/CD 管道。为了避免破坏现有工作流程,我们需要将 Phabricator 集成到这个新的管道中。

解决方案概览

在 AWS CodePipeline 中,源阶段是工作流中事件的初始触发器。目前支持的源阶段包括 S3、Github 和 CodeCommit,但目前 Phabricator 并非原生受支持的源阶段。为了继续使用 Phabricator 的审核功能而不破坏我们现有的开发人员工作流程,我们必须找到一种通过 AWS CodeCommit 将 Phabricator 与 AWS CodePipeline 集成的方法。


我们决定使用自托管版本的 Phabricator 在 AWS 上的私有 VPC 中进行修订控制,并将其与 AWS CodeCommit 集成。在此设计中,连续交付管道通过 Phabricator 触发和管理。


Phabricator 具有多个特定于 URI 的选项,可提供许多功能。比如,镜像存储库的能力。Aetion 在 AWS 账户中创建了一个空的 CodeCommit 存储库,并将 Phabricator 存储库镜像到此存储库。因此,对 Phabricator 存储库的每次提交都会导致针对 CodeCommit 存储库的镜像提交操作。通过使用这种简单的集成方法,Aetion 可使用 AWS CodeCommit 作为源阶段并使用 AWS CodePipeline 部署应用程序。


分步详解

第 1 步:设置 Phabricator。有关详细步骤,请参阅 Phabricator 安装指南。


第 2 步:将 Phabricator 存储库与 AWS CodeCommit 集成


1.转到 AWS 管理控制台,选择 CodeCommit,创建 CodeCommit 存储库,并复制 SSH URI。


2.创建存储库 URI:在 Phabricator 存储库中,单击 Manage Repository (管理存储库) -> URI -> Add New URI (添加新 URI)。


3.输入 CodeCommit 存储库的 SSH URI。


4.选择 Mirror (镜像) 作为所需的 I/O 类型。



选择所需的 Display Type (显示类型)。在此实施中,我们选择的是“Hidden: Do not show as a clone url”(隐藏:不显示为克隆 URL)。


创建新 URI 后,单击 Update Credential (更新凭证) -> Add Credential (添加凭证)。添加可以访问 CodeCommit 存储库的 SSH 私钥,并指定 IAM 用户。用户需要生成 SSH 密钥对并将其附加到有权访问所用适当 CodeCommit 存储库的 IAM 用户。


现在,每次向 Phabricator 存储库推送都会导致向相应 CodeCommit 存储库的推送。这允许您在不修改基础开发者工作流的情况下,将 Phabricator 存储库提交作为管道触发器的依据。随后,您可以按照步骤 to 创建一个简单的管道。

小结

通过上述设计,我们能够在不影响工作效率的情况下,成功整合现有的开发工作流程。通过 AWS CodePipeline、AWS CodeBuild、AWS CloudFormation、AWS Systems Manager Parameter Store 和 Amazon Elastic Container Service (Amazon ECS),这种集成使我们能够继续从 Chef、Jenkins 和基于 EC2 的架构迁移到容错、高度可用、持续预配置和部署的架构。您可以在我们的 2018 年 re:Invent 研讨会 Aetion 向 AWS CodePipeline、AWS CloudFormation 和 Amazon ECS 迁移之旅中进一步了解此过程。


作者介绍:


Junaid Arif Kapadia


Junaid Arif Kapadia 是 Aetion Inc. 的高级软件工程师和工程经理。他负责交付云、内部部署和混合解决方案,同时领导着一支践行 DevSecOps 理念的工程师团队。他拥有信息技术系统学士学位和信息系统硕士学位,主修技术管理和云计算。


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/integrating-phabricator-codepipeline-codecommit/


2019-10-10 13:551126
用户头像

发布了 1906 篇内容, 共 146.0 次阅读, 收获喜欢 81 次。

关注

评论

发布
暂无评论
发现更多内容

即时通讯技术文集(第17期):社交软件红包技术专题 [共12篇]

JackJiang

网络编程 即时通讯 IM

用简单的描述带你理解运算放大器

矜辰所致

运算放大器 6 月 优质更文活动

ModelBox实战开发:RK3568实现摄像头虚拟背景

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 6 月 PK 榜

如何在 Apifox 中正确指定 query 参数?

Apifox

Java 程序员 Apifox API 接口工具

618夏日“折”学家活动上线!开通表盘会员解锁百变腕间风格

最新动态

基于双层缓存(DLC)机制解决热点缓存并发重建问题

xfgg

Java' 6 月 优质更文活动

LED透明屏和LED玻璃屏的区别

Dylan

分辨率 视频 图像 屏幕亮度 LED

GPT-4满分通过MIT本科数学考试!这套提示词火了

Openlab_cosmoplat

算法 ChatGPT

优化开发工作流的三大实用技巧,助力效率提升

龙智—DevSecOps解决方案

版本控制 版本管理

数字化转型的“整体规划”有多重要?

优秀

低代码 数字化转型 数字化

模型当道 开源聚力|2023开放原子全球开源峰会开源大模型分论坛圆满收官

开放原子开源基金会

开源 大模型 开放原子全球开源峰会 开放原子

可观测性最佳实践 | 警惕!未知的风险正在摧毁你的系统

观测云

可观测性 运维监控 观测云 云原生可观测 可观测性用观测云

强化学习从基础到进阶-常见问题和面试必知必答[1]:强化学习概述、序列决策、动作空间定义、策略价值函数、探索与利用、Gym强化学习实验

汀丶人工智能

人工智能 深度学习 强化学习 深度强化学习 6 月 优质更文活动

龙智携手Atlassian亮相DevOps国际峰会:释放团队潜力,以协作挑战不可能

龙智—DevSecOps解决方案

DevOps ITSM ITSM软件 工作管理

赋能中国软件,共筑开放生态|2023开放原子全球开源峰会软硬协同开源分论坛成功举办

开放原子开源基金会

开源 开放原子全球开源峰会 开放原子 软硬协同开源

华为云邓明昆:云原生时代,以开源赋能数字化转型

华为云开源

开源 云原生 数字化

NFTScan | 06.12~06.18 NFT 市场热点汇总

NFT Research

热点 NFT\

详解4种模型压缩技术、模型蒸馏算法

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 6 月 PK 榜

观点碰撞燃爆会场|2023开放原子全球开源峰会区块链分论坛圆满落幕

开放原子开源基金会

区块链 开源 开放原子全球开源峰会 开放原子

Typora绿化版

源字节1号

开源 软件开发 前端开发 后端开发 小程序开发

Seata Saga 模式快速入门和最佳实践

阿里巴巴云原生

阿里云 云原生 seata

【参考设计】2KW AC/DC数字电源方案

元器件秋姐

设计 电路 方案 电源 数字电源

四大技巧,教你如何加速手动UI测试

龙智—DevSecOps解决方案

UI测试 用户界面测试

openGemini:顺势而动,蓄势而发

华为云开源

数据库 开源

华为云黄瑾:做强坚实数据底座,GaussDB与产业携手共进

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 6 月 PK 榜

强化学习从基础到进阶-案例与实践[1]:强化学习概述、序列决策、动作空间定义、策略价值函数、探索与利用、Gym强化学习实验

汀丶人工智能

人工智能 深度学习 强化学习 深度强化学习 6 月 优质更文活动

通过 AWS CodeCommit 将 Phabricator 与 AWS CodePipeline 集成_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章