如今,CI/CD 已成为开发软件时必不可少的一部分。它可以节省大量金钱、时间并降低风险......在本文中,我将向您展示如何为我的个人博客设置 CI/CD 并提供免费服务。

如果您不熟悉任何服务,请查看它们的定义:

  • GitHub Action:GitHub 的 CI/CD 平台。 https://docs.github.com/en/actions/learn-github-actions/understanding-github-actions

  • DigitalOcean Container Registry:存储和管理私有 Docker 镜像的地方,有 1 个存储库的免费计划。

https://www.digitalocean.com/products/container-registry/

  • DigitalOcean Droplets:虚拟机提供商。便宜、稳定且易于设置。

https://www.digitalocean.com/products/droplets/

首先,看看这个工作流程。

  1. 每次我们向 GitHub 推送新的提交时,它都会开始处理 GitHub Actions 工作流。

  2. GitHub Actions 将在其运行器中构建一个 Docker 镜像并将该镜像推送到 Container Registry。

  3. 然后 GitHub Actions 将连接到 Droplets 并将镜像从 Container Registry 部署到该 Droplets。

让我们看看如何设置这个工作流程。

添加操作密码

您需要在 GitHub Action workflow.yml 文件中使用一些秘密变量,因此最好通过将它们存储在 Github Secrets 中进行加密。

您可以转到存储库_Settings_ → SecretsActions,然后单击_New repository secret。_

GitHub 秘密

我们需要一些变量:

  • DIGITALOCEAN_ACCESS_TOKEN:您为访问DigitalOcean API 而生成的令牌。

从_DigitalOcean仪表板→API→令牌/密钥→生成新令牌_(记得检查读取和写入权限)

  • HOST: 你的 ssh 主机 (Droplets ipv4)

  • PASSPHRASE:加密私钥,在您为 Droplets 创建 ssh 密钥时生成。

  • SSHKEY:ssh私钥的内容。前 ~/.ssh/id_rsa 的原始内容

  • USERNAME:ssh用户名,默认:root

现在我们有足够的秘密变量可以在 CI/CD 工作流文件中使用。

创建工作流 YAML 文件

  • 在存储库目录中创建一个名为_.github/workflows_的目录。

  • 在该目录中,创建一个名为 build-and-deploy.yml 的新文件并添加以下代码:

1.控制工作流何时运行:在这种情况下,每次我们在主分支中进行推送。

2.定义一些不需要加密的环境变量。

- IMAGE_NAME: 你的 Docker 镜像名称

- REGISTRY:您的 DigitalOcean 注册表容器 URL

注册表容器 URL

3\。我们在这里有 2 个工作:运行 build_and_push 然后在完成后运行 deploy.

运行作业

在 YAML 文件中需要注意一些事项:

  • 因为 DigitalOcean Container Registry 只有 500MB 的免费计划,所以我们应该在构建和推送新镜像后删除所有旧镜像。

  • 部署时,最好停止运行容器,将其移除,然后运行新镜像(将从 DigitalOcean Container Registry 中拉取)。

如果您觉得这个博客有帮助,请分享并鼓掌👏👏👏

您可以在LinkedInTwitter. 上与我联系

如果您有任何意见、问题或建议,请随时在下面的评论部分发表!

加入FAUN:网站💻**|播客🎙️|[Twitter][🐦5|🐦5**|Facebook *👥**|Instagram📷|Facebook 群组🗣️|Linkedin 群组💬|Slack📮 | zwz * 新闻](https://thechief.io)📰|更多.**

如果这篇文章对你有帮助,请多点下方的拍手👏按钮,表示对作者的支持👇

Logo

CI/CD社区为您提供最前沿的新闻资讯和知识内容

更多推荐