如何设置GitHub Actions删除旧的artifacts?
时间: 2024-10-12 13:04:42 浏览: 43
在GitHub Actions中,你可以通过添加自定义脚本来自动管理artifacts的生命周期,包括删除旧的artifacts。以下是一种常见的做法:
1. **创建一个工作流**: 创建一个新的`.yml`文件,例如`delete-old-artifacts.yml`,并在GitHub仓库的工作流程目录下。
2. **添加工作流程内容**:
```yaml
on:
schedule:
# 定义删除旧artifacts的时间点,例如每天凌晨1点
- cron: '0 1 * * *'
jobs:
delete-old-artifacts:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- id: fetch_artifacts
name: Fetch Artifacts
uses: actions/download-artifacts@v2
with:
name: old-artifacts
path: /path/to/artifacts # 替换为你实际的artifacts路径
- id: clean_artifacts
name: Clean Old Artifacts
run: |
find /path/to/artifacts -type f -mtime +7 -exec rm {} \;
# `-mtime +7` 表示移除超过7天的文件,根据需求调整这个条件
- id: upload-status
name: Upload Delete Status
run: |
echo "::set-output name=status::Cleanup completed" # 输出消息以便查看流水线结果
```
上述脚本会在每天的指定时间运行,首先下载名为`old-artifacts`的artifacts,然后查找并删除超过7天未更新的文件(这里假设默认期限)。最后,它会报告清理状态。
3. **启用工作流程**: 确保该文件处于`.github/workflows`目录下,并保存。然后访问工作流程设置,启用并配置定时任务。
请注意,此操作会永久删除旧的artifacts,所以在执行之前请谨慎设定规则,确保不会意外删除重要数据。
阅读全文