返回
用 GitHub Actions 自动备份代码仓库,再也不怕数据丢失了!
开发工具
2023-12-09 12:14:16
信息是如此重要,如果遗失将会带来难以弥补的后果。代码丢失是每个人最不愿面对的灾难之一,如果为此感到焦虑,那么备份就是你亟需的救命良药。
相信大家都熟悉 GitHub Actions,GitHub 为开发者提供了持续集成和持续交付(CI/CD)功能,可以将工作流自动化,以便构建、测试和部署你的代码。
在本指南中,我们将利用 GitHub Actions 为你的代码仓库配置自动备份任务。这份教程非常适合寻求数据保护的开发者,或是想要进一步了解 GitHub Actions 的爱好者。
准备工作
在开始之前,你需要准备一些东西:
- 一个 GitHub 账户和一个代码仓。如果没有的话,可以先去注册一个。
- GitHub Actions 是 GitHub 提供的服务,需要先启用它。前往你的代码仓的 "Settings" 页面,点击 "Actions" 标签页,然后点击 "Enable GitHub Actions" 按钮。
- GitHub Personal Access Token,它可以让你在不输入密码的情况下通过编程方式访问 GitHub API。去 "Settings" 页面,点击 "Developer settings",然后点击 "Personal access tokens"。点击 "Generate new token" 按钮,并给予它 "repo" 权限。
GitHub Actions 配置
接下来是重点:
- 在你的代码仓中创建一个名为 ".github/workflows" 的文件夹。
- 在该文件夹中创建一个名为 "backup-repo.yml" 的文件。
- 将以下代码复制到该文件中:
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.'
- 将 "YOUR_GMAIL_ADDRESS" 和 "YOUR_GMAIL_PASSWORD" 替换为你自己的 Gmail 地址和密码。
- 将 "YOUR_RECEIVING_EMAIL_ADDRESS" 替换为你想要接收备份通知的电子邮件地址。
- 将 "0 0 * * *" 替换为 crontab 表达式,它决定了备份任务的执行时间。例如,这里的 "0 0 * * *" 表示每天凌晨 0 点执行备份任务。
备份过程
备份过程包括以下步骤:
- 克隆代码仓到 GitHub Actions 运行器。
- 使用 "actions/upload-artifact@v2" 操作创建一个备份。
- 使用 "dawidd6/action-send-mail@v3" 操作发送电子邮件通知,告知备份已完成。
备份结果
备份结果将以压缩文件(.zip)的形式存储在 GitHub Actions 的工件(Artifacts)中。你可以通过访问你的代码仓的 "Actions" 页面,然后点击 "Artifacts" 标签页来查看备份结果。
总结
恭喜你!现在你已经成功地配置了 GitHub Actions 来自动备份你的代码仓。当备份任务执行时,你将会收到一封电子邮件通知。你也可以通过访问 GitHub Actions 的工件页面来查看备份结果。
希望本指南对你有帮助。