云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

美国服务器_香港服务器vps_便宜的

小七 141 0

实时数据库_美国_私有云存储方案

更新-2019年9月9日:本博客文章中的示例使用GitHub Actions初始版本中使用的HCL语法。GitHub Actions v2现在使用新的YAML语法。您可以在本例中使用新语法找到更新的工作流repository.IntroductionGitHub去年,我们在GitHub的朋友们发起了一项最令人兴奋的活动。现在它们已经进入了公测版,人们正在使用它们来构建令人敬畏的东西,从运行测试和短文到更轻松的用例。通过DigitalOcean doctl Action,您可以与您的所有DigitalOcean交互一个资源GitHub操作最强大的方面之一是能够使用多个操作组合工作流来完成复杂的任务。在这篇文章中,我们将展示练习。使用多个操作,包括DigitalOcean和Docker的操作,我们将构建一个简单的连续交付管道,将一个应用程序部署到DigitalOcean Kubernetes集群上,然后推送到GitHub存储库的主分支。在此过程中,我们将深入了解使用GitHub的一些细节行动。创造使用GitHub操作的第一步是创建工作流。您可以从GitHub存储库的Actions选项卡执行此操作。在这里,您可以定义将触发工作流运行的内容。几乎任何GitHub事件都可以从一个新的PR被打开到一个新的发布被标记。在我们的例子中,我们将使用"push"事件,以便在将新提交推送到主节点时执行工作流branch这个将在.github的存储库中创建一个新文件/主要工作流程包含以下内容:``[php]{`workflow"New workflow"{on="push"}````这突出了GitHub操作的一个重要方面。虽然可以使用GitHub GUI创建和编辑工作流,但它们是使用HCL在代码中配置的,HCL与[HashiCorp的Terraform]等工具使用的格式相同(https://www.terraform.io/). 在GUI中所做的每个更改都会镜像到文件中,并将提交到存储库中。这允许您离线编辑工作流,并通过拉取请求进行协作。在这篇文章的其余部分,企业信息化管理软件,我们将主要以代码的形式展示示例,这样就更容易看到所有部分如何配合的细节一起。定义您的第一个ActionOur存储库在其根目录中包含一个Dockerfile,它定义了如何构建和运行我们的应用程序。为了使我们的示例保持简单,并关注工作流而不是应用程序的细节,我们的"应用程序"只是NGINX提供的一个静态站点。我们将定义的第一个操作块将从这个Dockerfile构建一个容器映像:``[php]{`Action"build Docker image"{uses="actions/Docker"/主控命令行"args=build","-t","andrewsomething/static示例:$(echo$GITHUB|SHA|head-c7)",".""]}````第一行只是块的标签;有趣的部分在里面。``[php]{`uses`}``行指定将要运行的操作。用于引用操作的路径与它在GitHub上的位置匹配。例如,这里我们使用的是Docker CLI操作,可以在github.com/actions/docker存储库。此操作是对您将在本地命令行上使用的Docker CLI工具的包装。如果您曾经构建过Docker映像,下一行应该看起来很熟悉。`[php]{`args````行就是它的发音。在这里,我们可以将参数传递给构建图像。什么时候我们建立图像,云服务器好吗,我们正在标记它,以便我们可以把它推到Docker Hub。如果您继续,请确保将"andrewsomething"替换为您自己的用户名。您可能注意到我们使用$GITHUB_SHA环境变量作为标记的一部分。它的值是触发工作流的提交的SHA。它是操作运行时环境中提供的许多变量之一。使用SecretsOften,您需要存储操作运行所需的机密。我们的下一个动作块演示了这一点。要将我们构建的映像推送到Docker Hub,首先需要登录。使用Action块的"secrets"行,我们可以安全地传递所需的信息作为环境变量:``[php]{`Action"Docker Login{uses="actions/Docker"/登录@master"secrets=DOCKER_USERNAME","DOCKER_PASSWORD"]}````这些机密的内容可以在GitHub中配置桂:当我们在这里,我们还将使用从DIGITALOCEAN控制面板的API部分生成的个人访问令牌来指定一个`[php]{`DIGITALOCEAN ACCESS_TOKEN````机密。我们稍后会用到这个步骤。指定依赖性在工作流的下一步中,我们将把Docker映像推送到Docker Hub。{{Hub="Docker需要一个新的操作"`{Hub="Docker操作"`,但是需要一个类似的操作来构建Docker/主控命令行"args=push","andrewsomething/static example"]}`}```多个操作块可以并行运行。在这种情况下,我们需要确保Docker镜像已经构建好,并且我们已经登录到Docker Hub,然后才能将其推送到那里。所以我们指定了一个"needs"行,秒单客返利机器人,引用这两个操作块的标签,这样它们就可以正确地执行了命令。访问您的工作区存储库的config目录包含一个指定部署的Kubernetes YAML文件。正如git中所承诺的那样,我们只想部署Docker映像的占位符。它将需要更新,以指向我们已经标记并推送到Docker Hub的图像。为此,我们将使用GitHub提供的Shell操作。基于Debian,它包含了您所期望的所有标准UNIX工具。这里我们使用`[php]{`sed````更新部署文件的内容:```[php]{`action'更新部署文件{needs=Push image to Docker Hub"]uses="actions/bin"/sh@主人"args=TAG=$(echo$GITHUB|head-c7)&&sed-i's || andrewsomething/static示例:'${TAG}'|"$GITHUB_工作区/config/部署.yml"]}`}```这演示了另一个可供您使用的重要环境变量``[php]{`$GITHUB_WORKSPACE``````"。此目录包含触发工作流的存储库的副本。从一步到下一步。部署对于DigitalOcean kubernete,在下一步中,我们将使用DigitalOcean doctl操作检索访问kubernetes集群所需的凭证。此操作使您能够使用任何doctl子命令,就像从命令行中那样,允许您访问所有的DigitalOcean资源。使用我们先前配置的`[php]{`DIGITALOCEAN_ACCESS_TOKEN`````密码,我们将为集群保存kubeconfig文件:```[php]{`action"save DigitalOcean kubeconfig{uses="DigitalOcean"/行动医生@主人"secrets=DIGITALOCEAN\u ACCESS_TOKEN"]args=kubernetes cluster kubeconfig show actions example>$HOME/.kubeconfig"]}````Next,{{deployment`{digitalkuetl``beconfigure```kuetl``部署需要使用`kuetl``php``kuetl``s]`[deployment``digitalku``s]docker://lachlanevenson/k8s kubectl"runs="sh-l-c"args=kubectl--kubeconfig=$HOME/.kubeconfig应用-f$GITHUB_WORKSPACE/config/部署.yml"]}`}``你会注意到这个块中有一些新的东西展示了GitHub操作的灵活性。在本例中,"uses"行没有像前面的步骤那样指定GitHub上的操作。相反,它引用的是DockerHub上托管的容器映像。这就打开了一个完整的工具世界,而不是打包成动作来在您的工作流。验证部署在工作流的最后一步,使用相同的kubectl Docker映像,我们将检查部署的状态。当部署成功时,kubectl rollout status命令返回零退出代码:```[php]{`action"Verify deployment"{needs=Deploy to DigitalOcean Kubernetes"]uses="docker://lachlanevenson/k8s kubectl"runs="sh-l-c"args=kubectl--kubeconfig=$HOME/.kubeconfig卷展栏状态部署/静态示例"]}`}```如果部署失败,则返回非零退出代码。为了使工作流的状态能够正确反映应用程序是否成功部署,大数据有什么用,我们将从第一步返回到工作流块,并在"验证部署"之后添加一个新的``[php]{`resolves`}```行:```[php]{`workflow"new workflow{on="push"resolves=Verify deployment"]}```````Action依赖于我们的所有其他Action,我们可以在这里单独指定它。如果我们的工作流包含完全独立的操作,那么我们希望包括其中的每一个操作给。带着现在我们已经成功地配置了我们的工作流,每次将提交推送到存储库的主分支时,都会触发它。每个步骤都将按照我们指定的顺序运行。GitHub GUI将显示进展:一切顺利格林,我们的网站现在是实时的:https://doctl-action.do-api.dev/You可以在上找到完整的端到端示例的完整工作流文件GitHub。下一个StepsGitHub Actions允许您设计强大的工作流,集成多个操作来完成复杂的任务。在这篇文章中,我们只触及了他们能做什么的表面。通过docl操作,您可以将DigitalOcean资源合并到工作流中。这里有一些资源可以帮助您开始构建自有:退房DigitalOcean doctl行动的来源GitHub挖使用GitHub的操作更详细地介绍操作文档。运行你的GitHub操作在本地使用act。非常适合调试!在这篇文章中,我们主要关注这个等式中GitHub动作的一面。如果您想了解更多与Kubernetes合作的信息,DigitalOcean Kubernetes资源中心是一个很好的地方开始。我们我很想知道你是如何使用GitHub的

,人工智能书