GitHub Actions打包仓库报错:zip无内容可处理求助
问题原因与修复方案
错误原因
你的工作流缺少拉取仓库代码的关键步骤,GitHub Actions runner的默认工作目录是空的,没有仓库文件,所以zip命令找不到<repository_name>这个目录,导致报错"Nothing to do!"。
修改后的完整工作流配置
name: Zip repository and put on S3 on: [workflow_dispatch] jobs: zip-n-push: name: Zip and Push runs-on: ubuntu-latest steps: # 拉取仓库代码到runner工作目录 - name: Checkout repository uses: actions/checkout@v4 with: fetch-depth: 0 # 若需要完整仓库历史可添加,默认仅拉取最新提交 # 打包当前目录的仓库代码为ZIP - name: Zip repository content run: | rm -f repository.zip # 清理旧文件(-f避免文件不存在时报错) zip -r repository.zip . -x ".git/*" ".github/*"
关键修改点
- 添加checkout步骤:通过
actions/checkout@v4将仓库代码克隆到runner的工作目录,这是所有涉及仓库文件操作的前置必要步骤。 - 修正zip命令的目标路径:将
<repository_name>替换为.(当前目录),因为checkout后仓库代码直接放在工作根目录,而非以仓库名命名的子文件夹。 - 优化rm命令:用
rm -f替代rm -rf,避免误删目录,同时忽略文件不存在的错误。
后续S3上传补充(可选)
如果要上传到AWS S3,可在打包步骤后添加以下配置(需提前将AWS凭证存入GitHub Secrets):
- name: Configure AWS credentials uses: aws-actions/configure-aws-credentials@v4 with: aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} aws-region: us-east-1 # 替换为你的S3桶所在区域 - name: Upload ZIP to S3 run: | aws s3 cp repository.zip s3://your-bucket-name/target-path/
内容的提问来源于stack exchange,提问作者Shiv
相关产品推荐
相关产品推荐

