当前位置: 首页 > 科技观察

使用GitHubActions将代码部署到Azure!

时间:2023-03-16 21:36:58 科技观察

【.com速译】构建现代应用程序远不止按下F5然后开始构建那么简单。代码只是流程的一部分。构建有效的CI/CD(持续集成/持续交付)服务是培养DevOps文化和自动化软件开发生命周期的关键部分。自动化是整个过程的一个重要方面。您可以运行测试、驱动构建、打包代码,甚至只需签入更新或合并拉取请求即可部署代码。像Microsoft拥有的GitHub这样的工具对于公共和私有代码都变得越来越重要,我们围绕它们构建的工作流是自动构建软件的关键。GitHubActions简介GitHub最近发布了GitHubActions自动化工具的普遍可用性。与Jenkins或Travis等以构建为中心的CI/CD工具不同,GitHubActions专注于您的代码。这种方法不仅对GitHub有意义,而且比其他工具更适合开发人员。您可能已经在使用基于Git的开发工作流程,使用分支、拉取请求、代码审查和合并来管理开发团队协作开发应用程序的方式。GitHubActions是一种基于事件的工作流服务,它使用常见的GitHub事件来触发GitHub或其他开发工具内的操作。托管在GitHub上的代码可以在GitHub托管的环境中进行测试和运行,或者您可以在自己的环境中托管自己的运行器。随着工作流步骤的执行,结果显示在GitHub视图中,您可以按照自己的步调逐步完成。您可以在YAML中编写工作流,这是一系列与触发器关联的作业。作业可以串行或并行运行,因此如果您适当调整GitHubActions,您可以获得显着的加速。生成的工作流程描述易于阅读;因为它是代码,所以你可以在GitHub中存储和管理各种操作。入门工作流库有助于加快开发过程的自动化。将GitHubActions与Azure结合使用Microsoft一直在开发一组用于Azure的GitHubActions,现在这些也可以在一般版本中使用。初始集侧重于将项目从GitHub部署到Azure。由于它们托管在GitHub存储库中,因此最好将它们视为一系列Action的端点,用于构建良好的代码和容器并将它们交付给Azure平台服务。一组将GitHubActions与Azure应用服务集成,另一组控制对AzureKubernetes服务的部署。您可以使用AzureCLI作为运行器来触发使用GitHubActions管理Azure资源的脚本。其他操作包括管理Azure数据库以及构建和部署AzureFunctions。您首先需要使用预先构建的服务原则登录到Azure。GitHubActions包含自己的秘密存储,因此您可以使用AzureCLI创建一个令牌,然后将其复制到Action的存储中以供以后的每个连接使用。将令牌放在安全存储中可降低风险,同时仍允许Actions自动与Azure进行交互。其他登录操作将管理连接到AKS和Azure容器注册表的工作。从GitHubActions部署到AzureAppService支持使用通用存档格式或使用容器。值得一提的是,MicrosoftActions确实依赖于其他GitHubActions,例如为您的代码创建.NET环境。Microsoft为Azure提供了一组入门GitHubActions,以帮助你将它们集成到你的开发工作流中。示例代码展示了适用于Azure的GitHubActions如何工作以及它们如何与其他Actions一起工作。已发布的YAML显示了GitHub自己的一系列操作,例如处理存储库检出,以及安装Node.js运行器以在通过GitHubActionsforAzure部署代码之前构建和测试代码。实际部署很简单;只需要存储的秘密和应用程序名称。秘密可以是发布个人资料登录;如果是更复杂的部署(交付容器),您可以使用一组服务原则并登录到Azure帐户。不要忘记在您的操作完成后注销!也许自动化CI/CD的一个更有趣的方面是我们不局限于一个平台。我们使用开放的API将服务器和服务连接在一起。自动化可以在VisualStudio中开始,继续向下通过GitHubActions,进入AzurePipelines,之后构建工件存储在GitHub存储库中。混合搭配的能力是关键。我们不局限于一种做事方式;我们可以选择工具并以最适合我们工作流程的方式配置它们。如果您需要在开发中的某个地方使用Jenkins,请将其与AzureDevOps或您环境中的任何其他平台一起使用。从本质上讲,这是一种完全不同的管理应用程序开发的方式,现在由我们的源代码存储库驱动。这导致GitHub重新思考其在开发生态系统中的角色,因为它显然不再是我们仅存储和审查代码的平台。代码存档千禧一代基于搜索和索引数百万行公共代码的能力,GitHub正在利用这种专业知识来尝试使我们构建的代码更加安全,添加用于安全问题的早期检测、安全报告和公共管理的集成工具.存储库中的安全事件。我们的代码现在依赖于许多不同的开源开发团队,这需要使用GitHub今年早些时候从Dependabot获得的工具来自动修复依赖性问题。GitHub在代码生态系统的核心发挥着重要作用,现在计划将您的代码保存数百年,甚至数千年。作为该计划的一部分,它最近在全球种子库附近的斯瓦尔巴群岛矿山存放了第一批代码。位于北极缺氧岩石深处的光学编码数据存储罐可以保存至少500年。该项目的下一阶段将是在2020年2月2日对同一保险库中的所有公共存储库进行映像。GitHub正在考虑其他方式来存档代码,与LongNow基金会、牛津大学博德利图书馆和互联网档案馆等组织合作不仅要保留我们的代码,还要保留我们围绕它建立的社交网络和讨论。甚至可以使用MicrosoftResearch的ProjectSilica3D玻璃存储技术创建保存时间更长的档案。IT行业的历史还不到一个世纪,而我们已经在构建将持续数千年的代码库。这是软件和开发的重要性及其对文明的意义的标志。对于开发者来说,责任是巨大的。原标题:使用GitHubActions将代码部署到Azure,作者:SimonBisson