gpt4 book ai didi

gitlab-ci - GitLab 部署作业从 git 中获取更改

转载 作者:行者123 更新时间:2023-12-04 14:26:01 28 4
gpt4 key购买 nike

在我的项目中,部署脚本使用构建作业的结果,但我看到在我的部署作业中,GitLab CI 重新获取了上次提交的所有更改,并删除了构建作业生成的所有文件。我正在使用 Shell Executor。

有没有办法阻止 GitLab CI 在部署作业上执行此操作,以便我的部署可以从构建作业停止的地方继续?

我试过了:

cache:
untracked: true

在我的部署工作中,但似乎没有任何区别

我完整的 .gitlab-ci.yml 是:
before_script:
- sudo apt-get -y install default-jdk
- sudo add-apt-repository -y ppa:cwchien/gradle
- sudo apt-get -y update
- sudo apt-get -y install gradle
- curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
- sudo apt-get install -y nodejs
- sudo npm install -g pm2

stages:
- build
- test
- deploy

after_script:

jobBuild:
stage: build
script:
- ( cd my-lib; gradle build assemble)
only:
- master

jobDeploy:
before_script:

stage: deploy
cache:
untracked: true

script:
- <some shell scripts>
only:
- master

最佳答案

更多关于 Gitlab CI 的信息 cache
首先,由于它是您要缓存的构建作业中的文件,因此您可能需要将缓存规则添加到 jobBuild。您甚至可以通过在作业之外定义缓存来全局定义缓存。
缓存机制的问题在于它是一个尽力而为的系统,这意味着缓存可能并不总是可用。

The cache is provided on a best-effort basis, so don't expect that thecache will be always present. For implementation details, please checkGitLab Runner.


如果您想要将构建的文件从一个作业 100% 的时间传输到另一个作业,您需要使用 artifacts .
使用 artifacts
Gitlab CI 将允许您定义一组文件和/或文件夹,以在作业结束时捆绑到工件中。如果您指定对第一个作业的依赖,那么该工件将可用于后续阶段的作业。
如果你不想在部署阶段获取 git repo,你可以设置你的 GIT_STRATEGYnone .更多信息 here .
这是对您的 .gitlab-ci.yml 的修改文件来做这一切:
before_script:
- sudo apt-get -y install default-jdk
- sudo add-apt-repository -y ppa:cwchien/gradle
- sudo apt-get -y update
- sudo apt-get -y install gradle
- curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
- sudo apt-get install -y nodejs
- sudo npm install -g pm2

stages:
- build
- test
- deploy

after_script:

jobBuild:
stage: build
script:
- ( cd my-lib; gradle build assemble)
only:
- master
artifacts:
paths:
- path/to/folder/containing/build/files # for example my-lib

jobDeploy:
before_script:
stage: deploy
variables:
GIT_STRATEGY: none
dependencies:
- jobBuild
script:
- cd path/to/folder/containing/build/files # for example my-lib
- <some shell scripts>
only:
- master

关于gitlab-ci - GitLab 部署作业从 git 中获取更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43719239/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com