GitLab CI/CD流水线中创建目录并仅复制.pyc文件至仓库可行吗?
GitLab CI/CD部署阶段复制.pyc文件到仓库新目录的问题解决
你当前的脚本没法按需求在GitLab仓库中创建目标目录,主要存在几个问题,这里给你梳理并提供修正后的方案:
现存问题
- 路径不匹配:你创建的
trial在流水线工作目录,但cp命令把文件复制到了用户家目录的~/trial,完全不在仓库目录下,自然无法关联到GitLab仓库。 - 缺少Git提交步骤:就算文件复制到了仓库内的目录,CI/CD环境默认不会自动把变更提交推送到仓库,需要手动添加git操作。
- 可能的递归复制问题:原
find命令会遍历所有目录,包括刚创建的trial,可能导致重复复制.pyc文件。
修正后的部署脚本
deploy-job: # This job runs in the deploy stage. stage: deploy # It only runs when *both* jobs in the test stage complete successfully. environment: production script: - mkdir -p trial # -p参数确保目录不存在时自动创建,避免报错 # 查找所有.pyc文件,排除刚创建的trial目录,按原目录结构复制到./trial - find . -name '*.pyc' -path './trial/*' -prune -o -exec cp --parents {} ./trial \; # 配置Git提交用户,提交并推送变更到仓库 - git add trial/ - git config user.name "GitLab CI/CD" - git config user.email "ci@gitlab.example.com" - git commit -m "CI: Add compiled .pyc files with full directory structure" - git push origin $CI_COMMIT_BRANCH - echo "Files successfully delivered and committed to repository."
关键修正说明
- 把目标路径改为
./trial,确保文件夹在仓库工作目录内,后续能提交到GitLab仓库。 - 优化
find命令,排除./trial目录,避免递归复制新生成的.pyc文件。 - 添加Git配置与提交推送步骤,让复制后的文件能被推送到GitLab仓库中。
内容的提问来源于stack exchange,提问作者Kartikey Sinha
相关产品推荐
相关产品推荐

