为什么 GitLab CI/CD 在将某些文件作为工件传递时会忽略它们?
Why is GitLab CI/CD ignoring certain files when passing them as an artifact?
我的 GitLab 存储库有一个简单的 CI/CD 设置。
在 build
作业期间,命令安装 NPM,运行 使用 Webpack 构建 JS/SCSS 等的构建脚本
然后,因为我不想将任何源文件上传到我的服务器,所以我将它们连同部署不需要的其他一些文件一起删除。
但是,当父目录 htdocs
被上传为工件以便它可以在部署作业中使用时,当我 运行 ls -la
和 ls ./assets -la
deploy
作业,我仍然可以看到我之前在 build
作业中删除的所有文件。
当我从浏览器下载工件 ZIP 文件时,一切都是正确的,因为我所有不需要的文件都消失了。
为什么我仍然可以在 build
作业中看到源文件和分发文件?这是一个错误吗?
目前这导致我的所有源文件都上传到我的服务器,这不是我想要的。有人可以帮忙吗?
image: node:11.9.0
before_script:
- cd ./htdocs
stages:
- build
- deploy
build:
stage: build
script:
- npm install --quiet
- npm run build
- rm -rf node_modules assets/src
- rm -r .??* package.json package-lock.json README.md webpack.*.js
artifacts:
paths:
- ./htdocs/
deploy:
stage: deploy
cache: {}
dependencies:
- build
script:
- ls -la
- ls ./assets/ -la
默认情况下,GitLab 中的每个作业都会克隆存储库,然后下载您在依赖项中设置的任何工件。您应该在 deploy
阶段的作业日志的开头看到它。
要在部署阶段停止上传源文件,您可以将 GIT_STRATEGY 设置为 none
。
例如:
deploy:
stage: deploy
cache: {}
variables:
GIT_STRATEGY: none
dependencies:
- build
script:
- ls -la
- ls ./assets/ -la
我的 GitLab 存储库有一个简单的 CI/CD 设置。
在 build
作业期间,命令安装 NPM,运行 使用 Webpack 构建 JS/SCSS 等的构建脚本
然后,因为我不想将任何源文件上传到我的服务器,所以我将它们连同部署不需要的其他一些文件一起删除。
但是,当父目录 htdocs
被上传为工件以便它可以在部署作业中使用时,当我 运行 ls -la
和 ls ./assets -la
deploy
作业,我仍然可以看到我之前在 build
作业中删除的所有文件。
当我从浏览器下载工件 ZIP 文件时,一切都是正确的,因为我所有不需要的文件都消失了。
为什么我仍然可以在 build
作业中看到源文件和分发文件?这是一个错误吗?
目前这导致我的所有源文件都上传到我的服务器,这不是我想要的。有人可以帮忙吗?
image: node:11.9.0
before_script:
- cd ./htdocs
stages:
- build
- deploy
build:
stage: build
script:
- npm install --quiet
- npm run build
- rm -rf node_modules assets/src
- rm -r .??* package.json package-lock.json README.md webpack.*.js
artifacts:
paths:
- ./htdocs/
deploy:
stage: deploy
cache: {}
dependencies:
- build
script:
- ls -la
- ls ./assets/ -la
默认情况下,GitLab 中的每个作业都会克隆存储库,然后下载您在依赖项中设置的任何工件。您应该在 deploy
阶段的作业日志的开头看到它。
要在部署阶段停止上传源文件,您可以将 GIT_STRATEGY 设置为 none
。
例如:
deploy:
stage: deploy
cache: {}
variables:
GIT_STRATEGY: none
dependencies:
- build
script:
- ls -la
- ls ./assets/ -la