可以允许整个作业失败
job1:
stage: test
script:
- execute_script_that_will_fail
allow_failure: true
Run Code Online (Sandbox Code Playgroud)
是否有可能在一系列脚本中,有一个允许失败(而其他则不允许)?
job1:
stage: test
script:
- execute_script_that_MAY_fail_and_should_be_marked_somehow_in_this_config_as_such
- execute_script_that_MUST_NOT_fail
Run Code Online (Sandbox Code Playgroud)
理由是可能存在相关的脚本,应该组合在一起并且按顺序排列,并且只允许其中一些脚本失败。
例如,docker 部署具有 a build(不得失败)、stop容器的 a(如果容器未运行,则可能会失败)和 a run(不得失败)。
我当前的解决方法是将其分成单独的工作,但这是一个丑陋的黑客:
stages:
- one
- two
- three
one:
stage: one
script:
- execute_script_that_MUST_NOT_fail
two:
stage: two
script:
- execute_script_that_MAY_fail
allow_failure: true
three:
stage: three
script:
- execute_script_that_MUST_NOT_fail
Run Code Online (Sandbox Code Playgroud) 我试图让我的 gitlab-runner 工作,但我把我的 gitlab 配置弄得非常糟糕......我希望可以恢复我的自托管 gitlab 实例。
首先,当我运行时,sudo gitlab-ctl status我得到输出
down: alertmanager: 1s, normally up, want up; run: log: (pid 8770) 1438s
down: prometheus: 0s, normally up, want up; run: log: (pid 8742) 1438s
Run Code Online (Sandbox Code Playgroud)
其余部分按我猜测的方式工作。正如我之前所说,由于配置混乱,导致权限被拒绝错误相关的问题sudo chown ...
有没有办法恢复旧的用户权限?或者有没有办法获取gitlab所需的权限配置信息?
非常感谢!
PS:当我运行时sudo gitlab-ctl reconfigure出现此错误
================================================================================
Error executing action `run` on resource 'execute[/opt/gitlab/embedded/service/gitlab-shell/bin/gitlab-keys check-permissions]'
================================================================================
Mixlib::ShellOut::ShellCommandFailed
------------------------------------
Expected process to exit with [0], but received '1'
---- Begin output of /opt/gitlab/embedded/service/gitlab-shell/bin/gitlab-keys check-permissions ----
STDOUT: error: could not open …Run Code Online (Sandbox Code Playgroud) 我无法使用 https 上的 oauth2 令牌通过 jenkins groovy 从 gitlab 签出代码。
使用相同的 oauth 令牌在 git cli 上进行克隆。我还可以通过同一台计算机上的curl 列出我的所有Gitlab 项目。
但无法通过 groovy 管道使用 Oauth2 令牌调用 git clone。
约束:Jenkins 服务器需要通过 groovy 脚本使用 oauth2 令牌通过 https 端口(仅)与 gitlab 服务器进行通信。我想使用 jenkins 凭证管理器来存储 Oauth2 令牌 - 而不是直接通过 s 脚本传递它
错误:状态代码 128:stderr:远程:HTTP 基本:访问被拒绝
**用于结帐的 Groovy 代码 **
checkout([$class: 'GitSCM', branches: [[name: "*/$GIT_BRANCH"]], doGenerateSubmoduleConfigurations: false, extensions: [], gitTool: 'Default', submoduleCfg: [], userRemoteConfigs: [[credentialsId: "$GIT_CREDS_ID", url: "$GIT_URL"]]])
Run Code Online (Sandbox Code Playgroud)
问题是 $GIT_CREDS_ID :仅选择具有 SSH 私钥或用户名/密码组合的凭证 ID。但不选择具有 Oauth 令牌的凭证 ID(安装 git lab 插件后创建) …
最近,我在同一个项目的两个不同分支中与其他人一起工作。我不小心将包含他的代码的分支合并develop到我的分支中。然后我在我的合并请求中看到了他的文件,随后我经历了惨痛的教训
git rm HIS_FILES
在我的分支中删除他不需要的文件,不仅会从我的分支中删除它们,还会从他的分支(以及整个 git 索引)中删除它们。
我想知道的是,我如何正确地从我的分支中删除他的文件,以便它们不会从他的分支中删除?一旦我意识到他的文件在我的分支中,我是否会创建一个新分支?在将分支合并develop到本地分支之前,我是否会恢复到上一个提交?
谢谢你的帮助
我想运行托管在 Kubernetes 集群上的私有容器注册表中的应用程序。我按照此处的说明创建了一个像这样的秘密:
kubectl create secret docker-registry regcred --docker-server=<your-registry-server> \
--docker-username=<your-name> \
--docker-password=<your-pword> \
--docker-email=<your-email>
Run Code Online (Sandbox Code Playgroud)
在我的部署中使用它是这样的:
containers:
- image: registry.gitlab.com/xxxxx/xxxx
name: dockerdemo
resources: {}
imagePullSecrets:
- name: regcred
Run Code Online (Sandbox Code Playgroud)
K8s 现在可以从我的私有注册表中提取映像。无论如何,我对我的用户和密码以纯文本形式存储在集群中感到不舒服。是否有更好/更安全的方法让 K8s 集群通过令牌访问注册表?
我是 GitLab 的新手,不确定这是否可行,我已经在本地设置了 GitLab 并正在运行,还有 Artifactory 私人存储库。
我总是使用 DinD 配置,使用 Docker 作为带有 DinD 服务的主映像,然后在各个阶段登录并从私有存储库中提取不同的映像。
但我听说没有 DinD 也可以做到这一点,从而缩短执行时间。所需的图像是在阶段开始时拉取的。
而不是这个:
image: docker:latest
services:
- docker:18.09.8-dind
variables:
DOCKER_DRIVER: overlay2
DOCKER_HOST: tcp://localhost:2375
stages:
- run_script
run_script:
stage:
run_script
script:
- docker login -u $DOCKER_TECHNICAL_USER -p $DOCKER_TECHNICAL_USER_PASSWORD $DOCKER_REGISTRY_URL
- docker pull artifactory.example.com:5000/repo/powershell-core:6.3
- docker run -it artifactory.example.com:5000/repo/powershell-core:6.3 pwsh -command "get-process"
Run Code Online (Sandbox Code Playgroud)
我想这样做(整个yml):
stages:
- run_script
run_script:
before_script:
- docker login -u $DOCKER_TECHNICAL_USER -p $DOCKER_TECHNICAL_USER_PASSWORD $DOCKER_REGISTRY_URL
image: artifactory.example.com:5000/repo/powershell-core:6.3
stage:
run_script
script:
- pwsh -command "get-process"
Run Code Online (Sandbox Code Playgroud)
如果我尝试这样做,它会说它无法进行身份验证:
ERROR: …Run Code Online (Sandbox Code Playgroud) continuous-integration gitlab gitlab-ci gitlab-ci-runner devops
为了更好地理解这些操作,我想知道 github 或 gitlab 到底是如何合并这些请求的。当压缩、变基、合并……时,详细执行哪些 git 命令?
我想获取 git 项目中的所有文件( python 文件 esp )。虽然我可以根据文件名输入一次访问一个文件。我不确定如何获取目录下的所有文件名。
我现在的代码如下
gl=gitlab.Gitlab('https://git.sys.xxx.com', private_token=pwd, api_version=4)
gl.auth()
project=gl.projects.get('hadoop-d/xyz')
a='src/main/python/xyz_inbound/baseline/*.*'
b='file_name'
c='.py'
d=a+b+c
f=project.files.get(file_path=d, ref='master')
Run Code Online (Sandbox Code Playgroud) 我正在尝试通过 gitlab CI 通过 zappa 在 aws lambda 上部署 Flask 应用程序。由于无法通过 gitlab CI 进行内联编辑,因此我zappa_settings.json在远程计算机上生成了该文件,并且尝试使用它来执行zappa deploy dev.
我的zappa_settings.json文件:
{
"dev": {
"app_function": "main.app",
"aws_region": "eu-central-1",
"profile_name": "default",
"project_name": "prices-service-",
"runtime": "python3.7",
"s3_bucket": -MY_BUCKET_NAME-
}
}
Run Code Online (Sandbox Code Playgroud)
我的.gitlab-ci.yml文件:
image: ubuntu:18.04
stages:
- deploy
before_script:
- apt-get -y update
- apt-get -y install python3-pip python3.7 zip
- python3.7 -m pip install --upgrade pip
- python3.7 -V
- pip3.7 install virtualenv zappa
deploy_job:
stage: deploy
script:
- …Run Code Online (Sandbox Code Playgroud) 我在 GitLab 中有一个 python 项目仓库。我看到 GitLab 共享了可用的测试版 Windows 运行程序(请参阅这篇文章)。
gitlab-ci.yml我想知道Windows 共享运行器上的 python是否有任何标准?如果是这样,由于这仍然是测试版,我很好奇它的稳定性如何?对于那些使用过这个并且有 AppVeyor 经验的人来说,我使用 AppVeyor 还是这个更好?
谢谢!
gitlab ×10
git ×3
gitlab-ci ×3
python ×2
api ×1
aws-lambda ×1
branch ×1
devops ×1
docker ×1
github ×1
groovy ×1
jenkins ×1
kubernetes ×1
oauth-2.0 ×1
pull-request ×1
repository ×1
windows ×1
zappa ×1