标签: gitlab

git - 检查分支和子模块

我可以使用哪些函数将所有子模块(本地 repo)同步/初始化/更新到远程分支中的版本?

“同步”(我们称之为,我不是说 git sync!)也必须在以下情况下工作:

  • 一个子模块只被添加到远程分支
  • 子模块中的文件已在本地添加/删除/修改。跟踪或未跟踪。
  • 删除子模块(可选)

本质上,我希望本地 repo 始终与远程分支的版本完全相同。每当我更改子模块中的某些内容时,都无需过多摆弄。所以没有手动ssh'ing到服务器来初始化一个新的子模块,只为了部署脚本工作......

这可以在不克隆(又名传输)整个存储库的情况下实现吗?我选择 git 是为了有一种安全、快速的方式来部署我的源代码。但我能想到的唯一选择是git clone --recursive在它们各自的标签下做一个完整的和检查子模块。在这种情况下,rsync 可能会在同步文件方面做得更好。

git deployment webhooks git-submodules gitlab

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

Gradle jacoco 多项目。如何在终端输出所有项目的代码覆盖率?

我正在使用Gradle jacoco插件并JUnit在 gradle 多项目中进行测试。

我已经安装了 jacoco,以便向声纳报告我的代码覆盖率,我做到了。

Gitlab-CI 还为代码覆盖率提供了一个徽章,我只需要在终端中输出代码覆盖率并使用正则表达式来查找它。

有没有办法在终端输出所有项目的代码覆盖率?

java junit gradle jacoco gitlab

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

无法从 gitlab 私有注册表(openshift)中拉取镜像

我无法从 gitlab 私有注册表中提取图像

如何使用容器注册表

首先使用您的 GitLab 用户名和密码登录 GitLab 的 Container Registry。如果您启用了 2FA,则需要使用个人访问令牌:

docker 登录 registry.gitlab.com

版本 openshift

oc version
oc v3.6.1+008f2d5
kubernetes v1.6.1+5115d708d7
features: Basic-Auth GSSAPI Kerberos SPNEGO

openshift v3.6.1+008f2d5
kubernetes v1.6.1+5115d708d7
Run Code Online (Sandbox Code Playgroud)

重现步骤

oc new-project test2
oc project test2

oc secrets new-dockercfg secret     --docker-server=https://registry.gitlab.com     --docker-username=user     --docker-password="pass"     --docker-email=email@gmail.com
secret/secret

oc secrets link builder secret --for=pull
oc secrets link default secret --for=pull
oc secrets link deployer secret --for=pull

oc new-app --docker-image='registry.gitlab.com/user/imagename:latest' --loglevel=5
I1227 12:37:21.263940   77342 newapp.go:486] Docker client did not respond to …
Run Code Online (Sandbox Code Playgroud)

openshift gitlab

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

找到目录下所有一级子目录的活动git分支

基于评论的更新问题:
项目 P,由子模块/迷你项目 A、B、C、D、E 组成。

请注意,A、B、C、D、E 是包含自己项目的目录,例如 A:Web,B:分析 C:Devops D:does_somethings E:Extra_features 等等。换句话说,每个 AE 都是它自己的存储库。

A 可以有由 user1 创建或检出的 b1,b2,b3 分支。
B 可以有 x1,x2,x3 分支,同样由 user1 执行。等等。
所以每个子文件夹 A、B、C、D、E 可以有多个未合并/合并的分支。

我的问题是,是否有一个命令会自动告诉我哪个分支在 P.

现在我正在cd进入每个子文件夹,然后输入 'git branch'。
所以如果我有 10 个子文件夹,我必须 cd 进入它们 10 次,然后再执行 git branch 10 次。

我查了一下:https : //stackoverflow.com/a/2421063/4590025

git log --graph --pretty=oneline --abbrev-commit

但这不是我要找的。

我正在寻找类似鸟瞰图的东西。

git gitlab

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

我尝试使用我的 React 应用程序设置 gitlab 页面,但它显示 404 错误

我尝试使用我的 React 应用程序设置 gitlab 页面,但是,我无法这样做,因为它没有生成任何可供我访问的 url。我已经设置了 gitlab-ci.yml。

> image: node:latest
pages:
  script:
    - npm install
    - npm run build
    - mkdir public2
    - mv public/* public2
  artifacts:
    paths:
      - public2
  only:
    - master
  stage: deploy
Run Code Online (Sandbox Code Playgroud)

javascript gitlab gitlab-ci gitlab-pages

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

树莓派上 kubernetes 上的 gitlab-runner - 找不到容器“助手”

我正在尝试在树莓派上的 kubernetes 集群上运行 gitlab-runner。

gitlab 管道生成以下输出:

Running with gitlab-runner 10.4.0 (857480b6) on hello-world-gitlab-runner-6548-tq4mr (123)
Using Kubernetes namespace: gitlab
Using Kubernetes executor with image arm32v7/node ...
Waiting for pod gitlab/runner-123-project-456-concurrent-789 to be running, status is Pending
Waiting for pod gitlab/runner-123-project-456-concurrent-789 to be running, status is Pending
Waiting for pod gitlab/runner-123-project-456-concurrent-789 to be running, status is Pending
ERROR: Job failed (system failure): unable to upgrade connection: container not found ("helper")
Run Code Online (Sandbox Code Playgroud)

gitlab-runner pod 记录以下输出:

+ cp /scripts/config.toml /etc/gitlab-runner/
+ /entrypoint register --non-interactive --executor …
Run Code Online (Sandbox Code Playgroud)

arm raspberry-pi gitlab kubernetes gitlab-ci-runner

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

如何签出旧提交并将其推送到当前分支?

我的分支上有一些错误 commit/push,然后我想恢复到旧的正确提交并将其推送到当前分支上

我有以下问题:

git log
    new: xxxxxxx
    ...
    old: ac758a3

git checkout ac758a3
git commit -m 'revert to old branch (ac758a3) to push it on current branch'
Run Code Online (Sandbox Code Playgroud)

出去:

HEAD detached at ac758a3
nothing to commit, working directory clean
Run Code Online (Sandbox Code Playgroud)

[编辑]

示意图:

  • A(我想要的正确提交)--- B(错误提交)--- C(错误提交)

所以我想有以下流程:

  • A --- B --- C --- A

我想恢复到 A(旧提交)并将其推送到当前分支(同一分支)。

什么是快速解决方案?


提前致谢。

git gitlab

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

gitlab CI/CD 中的代码覆盖率

我曾经Docker-dind构建和测试我的 python 代码。我混淆了如何在gitlab-ci以下两个选项之间运行覆盖。

1) Gitlab 本身有覆盖范围[这里]

2)我遵循python的覆盖教程并使用以下内容创建自己的覆盖范围:

 coverage:
  stage: test
  script:
      - docker pull $CONTAINER_TEST_IMAGE
      - docker run $CONTAINER_TEST_IMAGE python -m coverage run tests/tests.py
      - docker run $CONTAINER_TEST_IMAGE python -m coverage report -m
Run Code Online (Sandbox Code Playgroud)

当 gitlab 抛出异常时No data to report.

在此处输入图片说明

我猜coverage report命令无法访问/查找.coverage容器中的文件。


所以我的问题是coverage在这种情况下运行的优雅方式是什么?

continuous-integration code-coverage gitlab docker gitlab-ci

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

Docker + GitLab CI - 成功测试后将图像标记为“最新”

我正在尝试在 GitLab-CI 中的我的私有注册表上标记自动构建的 Docker 映像,但“发布”作业失败并显示: Error response from daemon: No such image: dev.skibapro.de:5050/dransfeld/dockerci-test:v0.4

这是我的.gitlab-ci.yml,构建和测试作业运行没有错误,并且在管道运行后我的注册表中出现了 docerci-test:v0.4。

image: docker:stable
variables:
  DOCKER_DRIVER: overlay2
  IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME

services:
  - docker:dind

stages:
  - build
  - test
  - release

before_script:
  - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY

build:
  only:
    - tags
  stage: build
  script:
  - docker build -t $IMAGE_TAG -f docker/Dockerfile .
  - docker push $IMAGE_TAG

test:
  only:
    - tags
  stage: test
  script:
  - docker run $IMAGE_TAG /usr/local/bin/test.sh

release:
  only:
    - tags
  stage: release …
Run Code Online (Sandbox Code Playgroud)

gitlab docker gitlab-ci

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

是否可以防止用户克隆分支?

我们有一个自托管的 Gitlab CE 实例,想知道是否可以阻止用户克隆给定的分支。

研究了这一点后,我强烈怀疑这是不可能的。但我的问题是:

  1. gitlab 是否允许你控制是否可以克隆分支?
  2. 是否有任何类型的 git 托管可以让您控制是否可以克隆分支?

任何帮助深表感谢。

git gitlab

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