返回

用 GitHub Actions 自动备份代码仓库,再也不怕数据丢失了!

开发工具

信息是如此重要,如果遗失将会带来难以弥补的后果。代码丢失是每个人最不愿面对的灾难之一,如果为此感到焦虑,那么备份就是你亟需的救命良药。

相信大家都熟悉 GitHub Actions,GitHub 为开发者提供了持续集成和持续交付(CI/CD)功能,可以将工作流自动化,以便构建、测试和部署你的代码。

在本指南中,我们将利用 GitHub Actions 为你的代码仓库配置自动备份任务。这份教程非常适合寻求数据保护的开发者,或是想要进一步了解 GitHub Actions 的爱好者。

准备工作

在开始之前,你需要准备一些东西:

  1. 一个 GitHub 账户和一个代码仓。如果没有的话,可以先去注册一个。
  2. GitHub Actions 是 GitHub 提供的服务,需要先启用它。前往你的代码仓的 "Settings" 页面,点击 "Actions" 标签页,然后点击 "Enable GitHub Actions" 按钮。
  3. GitHub Personal Access Token,它可以让你在不输入密码的情况下通过编程方式访问 GitHub API。去 "Settings" 页面,点击 "Developer settings",然后点击 "Personal access tokens"。点击 "Generate new token" 按钮,并给予它 "repo" 权限。

GitHub Actions 配置

接下来是重点:

  1. 在你的代码仓中创建一个名为 ".github/workflows" 的文件夹。
  2. 在该文件夹中创建一个名为 "backup-repo.yml" 的文件。
  3. 将以下代码复制到该文件中:
name: Backup Repository

on:
  schedule:
    - cron: '0 0 * * *'

jobs:
  backup:
    runs-on: ubuntu-latest
    steps:
      - name: Clone repository
        uses: actions/checkout@v2
        with:
          fetch-depth: 0

      - name: Create backup
        uses: actions/upload-artifact@v2
        with:
          name: backup
          path: .

      - name: Send notification
        uses: dawidd6/action-send-mail@v3
        with:
          server_address: smtp.gmail.com
          server_port: 465
          username: 'YOUR_GMAIL_ADDRESS'
          password: 'YOUR_GMAIL_PASSWORD'
          from: 'YOUR_GMAIL_ADDRESS'
          to: 'YOUR_RECEIVING_EMAIL_ADDRESS'
          subject: 'Backup Complete'
          body: 'Your repository backup has been successfully created.'
  1. 将 "YOUR_GMAIL_ADDRESS" 和 "YOUR_GMAIL_PASSWORD" 替换为你自己的 Gmail 地址和密码。
  2. 将 "YOUR_RECEIVING_EMAIL_ADDRESS" 替换为你想要接收备份通知的电子邮件地址。
  3. 将 "0 0 * * *" 替换为 crontab 表达式,它决定了备份任务的执行时间。例如,这里的 "0 0 * * *" 表示每天凌晨 0 点执行备份任务。

备份过程

备份过程包括以下步骤:

  1. 克隆代码仓到 GitHub Actions 运行器。
  2. 使用 "actions/upload-artifact@v2" 操作创建一个备份。
  3. 使用 "dawidd6/action-send-mail@v3" 操作发送电子邮件通知,告知备份已完成。

备份结果

备份结果将以压缩文件(.zip)的形式存储在 GitHub Actions 的工件(Artifacts)中。你可以通过访问你的代码仓的 "Actions" 页面,然后点击 "Artifacts" 标签页来查看备份结果。

总结

恭喜你!现在你已经成功地配置了 GitHub Actions 来自动备份你的代码仓。当备份任务执行时,你将会收到一封电子邮件通知。你也可以通过访问 GitHub Actions 的工件页面来查看备份结果。

希望本指南对你有帮助。