代码部署到github
构建现代应用程序要比按F5和构建应用程序要多得多。 代码只是过程的一部分。 建立有效的CI / CD(持续集成/持续交付)服务是培育团队文化和自动化软件开发生命周期的关键部分。
自动化是该过程的重要方面。 您只需简单地签入更新或合并拉取请求,就能够运行测试,驱动构建,打包代码甚至部署代码。 诸如Microsoft拥有的GitHub之类的工具对于公共和私有代码而言,都越来越重要,而我们围绕它们构建的工作流是实现软件自动构建的关键。
GitHub动作介绍
GitHub最近使GitHub Actions自动化工具全面可用。 与Jenkins或Travis等以构建为中心的CI / CD工具不同,GitHub Actions专注于您的代码。 这种方法不仅对GitHub有意义,而且对开发人员而言比其他工具更有效。 您可能已经在使用基于Git的开发工作流程 ,使用分支,拉取请求,代码审查和合并来管理开发人员团队在应用程序上进行协作的方式。
GitHub Actions是基于事件的工作流服务,它使用常见的GitHub事件来触发GitHub内部或其他开发工具中的操作。 可以在GitHub托管的环境中测试并运行在GitHub中托管的代码,或者您可以在自己的环境中托管自己的运行程序。 在执行工作流程步骤时,结果将显示在GitHub视图中,您可以按照自己的步调逐步进行操作。
您可以在YAML中编写工作流,以及与触发器关联的一系列作业。 作业可以串行或并行运行,因此,如果适当地调整GitHub Actions,则可以显着提高速度。 产生的工作流程描述是人类可读的,并且由于是代码,因此您可以在GitHub中存储和管理各种操作。 入门工作流库可帮助加快开发流程的自动化。
在Azure中使用GitHub操作
微软一直在开发一套与Azure一起使用的GitHub Actions ,并且现在也普遍可用 。 初始设置侧重于将工件从GitHub部署到Azure。 最好将它们托管在GitHub存储库中 ,作为一组Action的终点,以获取内置的代码和容器并将其交付给Azure的平台服务。 一组将GitHub Actions与Azure App Services集成在一起,另一组控制到Azure Kubernetes Services的部署。 您可以使用Azure CLI作为运行程序,使用GitHub Actions来触发管理Azure资源的脚本。 其他操作包括管理Azure数据库以及构建和部署Azure Functions 。
您首先需要使用预生成的服务原理登录到Azure。 GitHub Actions包括其自己的秘密存储,因此您可以使用Azure CLI创建令牌,然后将其复制到Action的存储中,以用于以后的每个连接。 在安全存储区中拥有一个令牌可以降低风险,同时仍然允许Actions自动执行与Azure的交互。 其他登录操作管理到AKS和Azure的容器注册表的连接。
从GitHub Action部署到Azure App Service支持使用常见的存档格式或使用容器。 重要的是要注意,Microsoft的动作确实与其他GitHub动作有依赖性,例如,为您的代码设置.NET环境。
Microsoft 为Azure提供了一组入门GitHub Actions,以帮助您将它们集成到开发工作流中。 示例代码显示了适用于Azure的GitHub操作如何运行以及它们如何与其他操作一起工作。 已发布的YAML显示了GitHub本身的各种操作,例如,处理存储库签出以及安装Node.js运行器以构建和测试代码,然后再通过Azure的Github Actions之一进行部署。
实际的部署非常简单; 您需要的只是一个存储的机密和一个应用程序名称。 机密可以是发布配置文件凭据,也可以是更复杂的部署(交付容器),您可以使用一组服务原则并登录到Azure帐户。 完成操作后,请不要忘记注销!
自动化CI / CD可能更有趣的方面之一是,我们不仅限于一个平台。 我们正在使用开放的API将服务器和服务连接在一起。 自动化可以从Visual Studio开始,通过GitHub Actions继续, 然后进入Azure Pipelines ,然后再将构建工件存储在GitHub存储库中。 混合和匹配是关键。 我们不仅限于一种做事方式; 我们可以选择工具并以最适合我们工作流程的方式进行配置。 如果需要在开发的一部分中使用Jenkins,则可以与Azure DevOps或在您的环境中运行的任何其他平台一起使用。
从本质上讲,这是一种管理应用程序开发的完全不同的方法,这种方法现在由我们的源代码存储库驱动。 这导致GitHub重新考虑其在开发生态系统中的作用,因为显然我们不再需要存储和审查代码。
千年的归档代码
GitHub以其搜索和索引数百万行公共代码的能力为基础,正在利用该知识来尝试使我们构建的代码更安全 ,添加集成工具以及早发现安全问题,进行安全报告以及管理安全事件。在公共存储库中。 现在,我们的代码依赖于许多不同的开源开发团队,这需要使用今年早些时候从Dependabot获得的GitHub工具来自动修复依赖关系问题。
GitHub是代码生态系统的核心角色,现在正计划将您的代码保留数十年甚至数千年。 作为该计划的一部分,该公司最近在全球种子库附近的斯瓦尔巴德矿山进行了第一笔存款。 在北极的高处,在氧气很少的岩石深处,光学编码数据罐至少可以使用500年。 该项目的下一阶段将在02/02/2020上对所有公共存储库进行映像,并将它们存储在同一保管库中。
GitHub正在与其他方式归档代码,与Long Now Foundation , 牛津大学的Bodleian图书馆和Internet档案馆等组织合作 ,不仅保存我们的代码,还保存我们围绕它建立的社交网络和讨论。 甚至有可能使用Microsoft Research的基于Project Silica 3D玻璃的存储来生成寿命更长的档案。
我们的行业还不到一个世纪的历史,我们已经在建立可以使用数千年的代码库。 这标志着软件,开发的重要性以及它对文明的意义。 对于开发人员来说,这是很大的责任。
翻译自: https://www.infoworld.com/article/3454337/use-github-actions-to-deploy-code-to-azure.html
代码部署到github