换句话说,快进合并是否保证产生与要合并的源分支的 HEAD 相同的 GIT SHA?
我在终端中测试了此行为,它适用于我的测试场景:
$ git rev-parse some-branch
0fc9fba2fb1c8a13556da4a333351bc12909c497
$ git merge some-branch --ff-only
Updating 90c6244..0fc9fba
Fast-forward
b | 0
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 b
$ git rev-parse HEAD
0fc9fba2fb1c8a13556da4a333351bc12909c497
Run Code Online (Sandbox Code Playgroud)
我可以在我的工具中利用这个条件,例如,我使用源 GIT SHA 标记构建工件。如果快进保证 SHA 不会发生变化,我就不必进行一些可能成本高昂的重建检查。问题是我必须确定这是真的。
我正在使用 gitlab 的自定义安装。我在 wsl2
ssh 版本:
ssh -V
OpenSSH_8.2p1 Ubuntu-4ubuntu0.2, OpenSSL 1.1.1f 31 Mar 2020
Run Code Online (Sandbox Code Playgroud)
我创建了 ssh 密钥,然后将其添加到 gitlab
我还使用 ssh-add 添加了密钥
ssh-add -l
4096 SHA256:XXX...XXX (RSA)
Run Code Online (Sandbox Code Playgroud)
但是当我想通过 ssh 克隆 git 存储库时出现错误
git clone git@XX.XX.XX.XX:user/repo_name.git
git@XX.XX.XX.XX's password:
Permission denied, please try again.
Run Code Online (Sandbox Code Playgroud)
但当我这样做时
ssh -T git@XX.XX.XX.XX
Welcome to GitLab, user
Run Code Online (Sandbox Code Playgroud)
它不会要求我输入密码。
有人有解决办法吗?我已经到处寻找但一无所获
我已经按照这个 gitlab教程链接将我的 jenkins 服务器连接到 Gitlab。
一切都很顺利,我已经:
直到那里一切都很顺利。然后我将包含 a 的代码添加并推jenkinsFile送到我的 GitLab 存储库,并进入 Jenkins WebUI 查看构建状态,但管道显示绿色表示构建成功,虽然没有任何反应,但没有从 GitLab 检索到任何代码(如附加控制台输出屏幕截图),因此没有jenkinsFile执行,也没有显示错误消息。
我尝试从 WebUI 手动运行构建,但结果相同,无法git push events从 GitLab触发我的管道
我想我可能应该Git在Source Code Management部分中选择(我将其保留None,因为教程没有提及它),但如果我选择 Git 作为 SCM,我无法选择我的 GitLab API 令牌凭据,似乎我们无法使用 GitLab 插件(API 令牌)和同一构建项目的 Git …
我对 gitlab pipeline 完全陌生,所以我不确定最好的方法是什么。我已经阅读了有关子模块和依赖项、触发其他管道的内容,但我很难理解什么有助于我在这里尝试实现的目标。
我有project_b,它是project_a 的子模块。在project_b的.gitlab-ci.yml中,project_a当前正在被克隆,然后project_b被移动到子模块通常位于project_a中的位置:
...
default:
...
before_script:
- git clone (project_a)
- mv project_a /src
- rm -rf /src/submodules/project_b/*
- mount --bind /src/submodules/project_b
...
Run Code Online (Sandbox Code Playgroud)
这是因为project_b 依赖于project_a。
不过,据我了解,这意味着project_b是project_a的下游。
我不想每次运行project_b 管道时都必须克隆整个project_a 存储库。
我已经看到了大量有关为依赖项目触发下游管道的信息,但我唯一能找到的似乎与我的案例相关的是不久前提出的关于 gitlab 缺乏触发上游管道的功能的问题: 上游在 Gitlab-CI 中触发,又名管道依赖项
有添加这个功能吗?因为我确实在网上找不到任何信息。否则,关于如何绕过克隆整个project_a存储库的任何建议?我可能完全不在这儿,但我想知道的一件事是,是否有某种方法可以让project_b触发project_a的特定管道,而该管道只做我需要它做的事情来测试project_b?
任何建议将不胜感激,谢谢!
我尝试按照这些相当简单的说明将静态应用程序安全测试 (SAST) 集成到 Gitlab 上的 Android CI/CD 管道中。但是,我在使用CI lint 工具时遇到以下错误:
sast job: chosen stage does not exist; available stages are .pre, stg_build, stg_test, .post
Run Code Online (Sandbox Code Playgroud)
这是我的 .gitlab-ci.yml 的最简单版本,它重现了错误:
sast job: chosen stage does not exist; available stages are .pre, stg_build, stg_test, .post
Run Code Online (Sandbox Code Playgroud)
我在 GitLab 中发现了类似的错误:选择的阶段不存在,但这是关于尝试使用环境变量作为阶段名称。
如何防止此错误并让 SAST 处理 Gitlab 上的合并请求?
我正在尝试将管道中构建的映像推送到 Docker 注册表,并且我的映像上有两个标签(latest和commit hash),但是当使用该命令时docker push --all-tags registry.gitlab.com/group/image-name,它不起作用,并且出现此错误:
未知标志:--all-tags
我正在使用最新版本的 docker,GitLab CI/CD 阶段定义如下
Build Docker Image:
stage: Build Docker Image
image: docker:stable
needs: ["Build & Test App"]
services:
- docker:dind
script:
- echo "$CI_REGISTRY_PASSWORD" | docker login "$CI_REGISTRY" -u "$CI_REGISTRY_USER" --password-stdin
- docker build -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" .
- docker tag "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" "$CI_REGISTRY_IMAGE:latest"
- docker push --all-tags "$CI_REGISTRY_IMAGE"
Run Code Online (Sandbox Code Playgroud)
当我在本地计算机上尝试时,似乎这个标志是已知的并且它可以工作。你知道,可能是什么问题吗?多谢。
是否可以将IDEA中的项目连接到Gitlab?GitHub 没有问题,你指定一个 github 帐户,然后 VCS-> Import into ,它会在你的帐户中创建一个项目。但对于 GitLab,我看不到这种可能性。也许有什么办法?还是直接手动扔进去?
我们有一个正在运行的 AWS EKS(使用 Pulumi 设置),我们在其中安装了 Tekton,如云原生 Buildpacks Tekton 文档中所述。示例项目可用。
我们的 Tekton 管道配置如下(也源自Cloud Native Buildpacks Tekton 文档):
apiVersion: tekton.dev/v1beta1
kind: Pipeline
metadata:
name: buildpacks-test-pipeline
spec:
params:
- name: IMAGE
type: string
description: image URL to push
- name: SOURCE_URL
type: string
description: A git repo url where the source code resides.
- name: SOURCE_REVISION
description: The branch, tag or SHA to checkout.
default: ""
workspaces:
- name: source-workspace # Directory where application source is located. …Run Code Online (Sandbox Code Playgroud) 我正在尝试配置一个gitlab-ci.yml文件来自动构建两个 Docker 映像。我已经看到它是用 docker-compose 完成的,但就我而言,我不想使用 docker-compose。
我见过的配置docker-compose.yml是这样的:
version: '3'
services:
vcxagency-base:
build:
context: https://github.com/AbsaOSS/vcxagencynode.git#master
dockerfile: ./vcxagency-base/vcxagency-base.Dockerfile
image: vcxagency-base:1.15.0
vcxagency-node:
build:
context: https://github.com/AbsaOSS/vcxagencynode.git#master
dockerfile: ./vcxagency-node/Dockerfile
image: vcxagency-node:0.3.1
ports:
- 8080:8080
depends_on:
- postgres
environment:
- LOG_LEVEL=debug
- LOG_ENABLE_INDYSDK=false
- LOG_JSON_TO_CONSOLE=false
- SERVER_PORT=8080
- SERVER_MAX_REQUEST_SIZE_KB=300
- SERVER_ENABLE_TLS=false
Run Code Online (Sandbox Code Playgroud)
我根本没有真正使用过 Docker。我尝试浏览文档,但找不到具体的内容。
目标是让这些在 Kubernetes 集群上运行,但现在我只想在 GitLab 中构建图像。
这是错误日志消息:
\n\n\n[3:40:55 PM] [语义发布] \xe2\x80\xba \xe2\x9c\x96 命令“git push --dry-run\n--no-verify https://gitlab-ci-令牌:[secure]@[repository-url].git\nHEAD:main" 失败,并显示错误消息远程:不允许您上传代码。\n致命:无法访问 \'https://gitlab-ci- token:[secure]@[repository-url]/\': 请求的 URL 返回错误:403。
\n
我GITLAB_TOKEN在存储库设置中设置了所有必要的权限,但似乎它甚至没有被使用:
这是我的.releaserc.json配置:
{\n "branches": ["main", { "name": "beta", "prerelease": true }],\n "plugins": [\n "@semantic-release/commit-analyzer",\n "@semantic-release/release-notes-generator",\n "@semantic-release/changelog",\n "@semantic-release/npm",\n "@semantic-release/gitlab",\n [\n "@semantic-release/git",\n {\n "assets": ["package.json", "package-lock.json", "CHANGELOG.md"],\n "message": "chore(release): ${nextRelease.version} [skip ci]\\n\\n${nextRelease.notes}"\n }\n ]\n ]\n}\nRun Code Online (Sandbox Code Playgroud)\n这是我的.gitlab-ci.yml配置:
# NodeJs image\nimage: node:16\n\n# STAGES\nstages:\n - checks\n - build\n - release\n\n# SETUP\nbefore_script:\n - node -v\n …Run Code Online (Sandbox Code Playgroud) gitlab ×10
gitlab-ci ×6
docker ×2
git ×2
kubernetes ×2
amazon-eks ×1
git-clone ×1
git-merge ×1
github ×1
gitlab-api ×1
jenkins ×1
ssh ×1
tekton ×1