标签: gitlab

由计划触发的 GitLab 手动作业

我的 GitLab 管道有一点问题。
我想使用计划规则运行手动作业,或者找到一种方法在我的作业中运行计划管道而无需重写管道。

正如您在示例中看到的,我有 2 个第一份工作标记为工作。一种是手动的,一种是计划的。我的问题是,如果我运行计划的工作流程,AC 测试将不会启动,如果我尝试按计划的规则运行 FirstJob 它不会因为when: manual部分而启动。

这是我的例子:

stages:
    - firstjob
    - test
    - build
    - deploy

FirstJob:
    stage: firstjob
    script:
        - echo "Hello Peoples!"
        - sleep 1
    when: manual
    allow_failure: false

FirstJobSchedule:
    stage: firstjob
    script:
        - echo "Hello Scheduled Peoples!"
        - sleep 1
    only: 
        - schedule
    allow_failure: false

AC-test:
    needs: [FirstJob]
    stage: test
    script:
        - echo "AC Test is running"
        - sleep 10

ProdJobBuild:
    stage: build
    needs: [AC-test]
    script:
        - …
Run Code Online (Sandbox Code Playgroud)

schedule pipeline manual gitlab gitlab-ci

2
推荐指数
1
解决办法
5000
查看次数

管理多个 git 提交电子邮件地址

我使用我的个人笔记本电脑进行工作(他们对此很满意),但我注意到我所有的工作提交都使用我的个人电子邮件地址。我不想在我的 git 机器上全局默认使用我的工作电子邮件地址,有没有一种方法可以让我在提交时可以拥有我的个人电子邮件地址用于某些存储库,而我的工作电子邮件地址用于其他存储库?

我不介意重写现有提交的历史,只是继续前进。

git commit git-commit gitlab

2
推荐指数
1
解决办法
1170
查看次数

本地运行程序文件存储在哪里?

我将 gitlab.com 与我自己的运行程序一起使用(它们在我的服务器上执行)。

当在 shell 上下文中执行scriptin 中的条目时,文件在哪里创建?.gitlab-ci.yml例如,下面的示例在 shell 运行器上运行

script:
  - date > hello.txt
Run Code Online (Sandbox Code Playgroud)

我应该去哪里寻找hello.txt

这个问题的具体原因是为了清理目的:我想删除我的跑步者创建并填充临时数据的旧目录。

gitlab gitlab-ci gitlab-ci-runner

2
推荐指数
1
解决办法
9241
查看次数

为什么 gitlab ci 不发布我的 gitlab 页面?

我有一个现有的管道,可以构建、测试然后部署我的应用程序并清理我的基础设施,但最近我决定将 Doxygen 添加到我的项目中来为我生成文档。我向现有管道添加了一个步骤来生成 HTML,然后将输出发布到我的 gitlab 页面。但是在启动了几个管道之后,我一直在等待 gitlab 页面,但我的输出从未发布。所以我的问题是为什么我的公共目录从未发布到 gitlab 页面?

我目前有以下 gitlab CI 配置设置

在此输入图像描述

我的 doxygen 配置如下

deploy_documentation:
  image: registry.gitlab.com/digitsam/automations/dotnetcore2.2/dotnetsdk2.2:lts
  stage: deploy
  script:
    - mkdir .public
    - doxygen Doxygen/doxygen.config
    - cp -r Doxygen/Output/html/* .public
    - mv .public public
  artifacts:
    paths:
      - public
  only:
    - master
Run Code Online (Sandbox Code Playgroud)

我不确定为什么它不起作用,因为当我检查工件时,我可以找到 Doxygen 生成的所有文件。

gitlab gitlab-ci

2
推荐指数
1
解决办法
3267
查看次数

无法从 gitlab CI 拉取或推送到个人注册表

我实现了自己的 docker 注册表,并成功从本地主机(推送)和服务器(拉取)对其进行了测试。现在,我正在尝试从 CI 管道构建并推送图像:

build:
  image: docker:18
  services:
    - docker:dind
  stage: build
  script:
    - echo -n $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY
    - docker pull $CI_REGISTRY/website:latest
    - docker build -t $CI_REGISTRY/website:latest .
    - docker push $CI_REGISTRY/website:latest
Run Code Online (Sandbox Code Playgroud)

我能够登录注册表:

$ echo -n $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
Run Code Online (Sandbox Code Playgroud)

当我尝试提取我的网站:最新图像时,我收到错误:

$ docker pull $CI_REGISTRY/website:latest
Error …
Run Code Online (Sandbox Code Playgroud)

gitlab docker

2
推荐指数
1
解决办法
4604
查看次数

Github 变基和合并 VS Git 变基和合并

我在 GitHub 的文档中看到 GitHub 合并和变基行为与 GitHub 上的变基和合并行为略有不同,git rebase因为 GitHub 上的变基和合并将始终更新提交者信息并创建新的提交 SHA,而 GitHub 外部的 git rebase 不会更改提交者信息变基发生在祖先提交之上。

那么有人可以向我解释一下这背后的机制吗?提交者的哪些信息发生了变化?

谢谢

git merge github rebase gitlab

2
推荐指数
1
解决办法
357
查看次数

如何在 iOS 项目中使用 Gitlab 共享运行器

如何使用共享运行器从 git 管道构建我的 iOS 项目?

图片错误

出现错误- 执行作业脚本的“step_script”阶段

/bin/sh: eval: 第 92 行: xcodebuild: 未找到

$ xcodebuild clean -project CI-Demo-iOS/CI-Demo-iOS.xcodeproj -scheme CI-Demo-iOS 错误:作业失败:退出代码 127

脚步 -

使用window操作系统将gitlab-ci.yaml推送到git。

gitlab-ci.yaml 文件有-

脚本:

- xcodebuild clean -project CI-Demo-iOS/CI-Demo-iOS.xcodeproj -scheme CI-Demo-iOS
Run Code Online (Sandbox Code Playgroud)

gitlab gitlab-ci gitlab-ci-runner

2
推荐指数
1
解决办法
3352
查看次数

如何使用 GitLab API 获取子管道的作业工件?

job 1 ________ child-pipeline ________ job 3 (x)
         /                       \
job 2 __/                         \___ job 4
Run Code Online (Sandbox Code Playgroud)

我正在努力达到 的神器job 3。这是我到目前为止到达的地方:

job 3我需要根据GitLab 文档获取 ID 。我使用Gitbeaker来简化 NodeJS 中的事情,但如果您不熟悉它,可以用curl 示例来回答。

首先,我获得了提交的管道,然后检索了这些管道的作业,但这些只给了我,job 1即使job 2文档说“在 GitLab 13.3 及更高版本中,此端点返回包括子管道在内的任何管道的数据。(参考)”

job 1 ________ child-pipeline ________ job 3 (x)
         /                       \
job 2 __/                         \___ job 4
Run Code Online (Sandbox Code Playgroud)

然后我选择了另一条路线来获取舞台上的提交状态,child-pipelines假设我将获取子管道的管道 ID 并且我将到达它们的作业。但我得到的 ID 不是管道 ID。

api.Pipelines.all(PROJECT_ID, {
  sha: 'commit_sha',
  ref: 'master',
}).then(async (commitPipelines) => { …
Run Code Online (Sandbox Code Playgroud)

gitlab gitlab-ci gitlab-api

2
推荐指数
1
解决办法
3831
查看次数

Gitlab-ci 无法识别 python

我想用我的管道运行我的 Jupyter 笔记本。为此,我需要runipy。要在 gitlab runner 上安装 runipy,我需要 python。但是当我想运行 .gitlab-ci.yml 脚本时,它会卡在打印 python 版本上,因为 python 无法识别。

.gitlab-ci.yml:

image: python:3.9

before_script:
  - python -V
  - pip install runipy
Run Code Online (Sandbox Code Playgroud)

错误:

Running with gitlab-runner 13.3.1 (738bbe5a)
  on JavaUnitTestRunner vr_SgzNd
Preparing the "shell" executor
00:00
Using Shell executor...
Preparing environment
00:01
Running on DESKTOP-DJVC49J...
Getting source from Git repository
00:03
Fetching changes with git depth set to 50...
Reinitialized existing Git repository in C:/Gitlab-Runner/builds/vr_SgzNd/0/I438220/pharma/.git/
Checking out 65a225c0 as pipeline...
git-lfs/2.9.2 (GitHub; windows amd64; go …
Run Code Online (Sandbox Code Playgroud)

python gitlab gitlab-ci gitlab-ci-runner jupyter-notebook

2
推荐指数
1
解决办法
6082
查看次数

git rev-parse HEAD 返回非零退出状态 128

git commit 遇到这个问题:

fatal: Not a git repository: '.git'
....
 File "C:\Repo\xyz\extern\VerFw\Src\ComponentLineImporter\__init__.py", line 28, in <module>
    from .Version import __version__
  File "C:\Repo\xyz\extern\VerFw\Src\ComponentLineImporter\Version.py", line 22, in <module>
    __version__ = subprocess.check_output('git rev-parse HEAD', cwd=os.path.dirname(os.path.abspath(__file__))).decode().strip()
  File "c:\program files\python36\lib\subprocess.py", line 336, in check_output
    **kwargs).stdout
  File "c:\program files\python36\lib\subprocess.py", line 418, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command 'git rev-parse HEAD' returned non-zero exit status 128.
Run Code Online (Sandbox Code Playgroud)

当我唯一的存储库中没有这样的重复文件夹时,为什么会出现此错误ComponentLineImporter

git gitlab

2
推荐指数
1
解决办法
9043
查看次数