标签: gitlab-ci

带有 github/gitlab 页面的 vuejs 历史模式

有没有人设法弄清楚如何让 Vue.jshistory mode与 GitHub 或 GitLab Pages一起工作?

它适用于hash mode,但我不想hash mode用于 SEO 相关的原因。

路由器模式参考:https : //router.vuejs.org/en/essentials/history-mode.html

gitlab gitlab-ci vue.js vue-router vuejs2

13
推荐指数
6
解决办法
4981
查看次数

使用 GitLab CI 如何禁用一项作业的存储库克隆?

我需要加快工作“部署”。它不需要项目源,但只需要工件。

如何为唯一的工作禁用项目克隆?

典型.gitlab-ci.yml(伪)看起来像:

image: gcc

build:
  stage: build
  script:
  - ./configure
  - mkdir build && cd $_
  - cmake ..
  - make -sj8
artifacts:
  paths:
  - "build/*.elf"

deploy:
  image: artifactory
  variables:
  - DO_NOT_CLONE: 1  ## WANT THIS OPTION
  stage: deploy
  script:
  - push_artifacts build/*.elf
Run Code Online (Sandbox Code Playgroud)

yaml gitlab-ci

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

如何将 GitLab CI 文件变量传递给 Dockerfile 和 docker 容器?

GitLab CI 允许向项目添加自定义变量。

它允许使用类型的秘密变量,file其中我指定了一个作为变量名称的密钥和作为文件内容的值(例如证书的内容)

然后在管道执行期间,内容将保存为临时文件,调用变量名称将返回创建文件的路径。

最终,我需要将此文件复制到构建项目时创建的 Docker 容器中。(docker build ...在yml中)

当如果变量作品测试,我想echo $VARIABLE.gitlab-ci.yml和它的作品,临时文件的路径返回。但是在RUN echo $VARIABLEin 中执行时Dockerfile,它是空的。因此我也不能使用ADD $VARIABLE /tmp/这是我的目标。

有没有办法解决这个问题并使这个文件可供Dockerfile? 我是 Docker 和 GitLab 的新手,不知道还能去哪里找。

gitlab docker gitlab-ci dockerfile devops

13
推荐指数
2
解决办法
8610
查看次数

如何收集 gitlab 管道中所有作业的日志?

我有一些 gitlab CI管道,其中包含数十个作业 - 有时我需要找到可能出现在作业中的内容,但不知道是哪个作业。我可以在 Web 界面中手动选择每个作业并查看关联的日志,但为每个作业执行此操作是不可行的。

有没有某种方法(最好是作为非特权 gitlab 用户)来检索/聚合给定管道的所有作业的输出?

如果重要的话,我使用的是 12.5.X-ee 版本。

logging gitlab gitlab-ci

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

在构建 Docker 镜像之前如何对 GitLab 的容器注册表进行身份验证?

我有一个私有的 GitLab 项目,其中包含用于构建和推送 Docker 映像的管道。因此我必须首先向 GitLab 的 Docker 注册表进行身份验证。

\n\n

研究

\n\n

我阅读了使用 GitLab CI/CD 对容器注册表进行身份验证

\n\n
\n

有三种方法可以通过 GitLab CI/CD 对容器注册表进行身份验证,具体取决于项目的可见性。

\n\n

适用于所有项目,但更适合公共项目:

\n\n
    \n
  • 使用特殊CI_REGISTRY_USER变量:为您创建此变量指定的用户,以便推送到连接到您的项目的注册表。它的密码是用CI_REGISTRY_PASSWORD变量自动设置的。这允许您自动构建和部署 Docker 映像,并具有对注册表的读/写访问权限。这是短暂的,因此它\xe2\x80\x99s 仅对一项作业有效。您可以按原样使用以下示例:

    \n\n
    docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY\n
    Run Code Online (Sandbox Code Playgroud)
  • \n
\n\n

对于私人和内部项目:

\n\n
    \n
  • 使用个人访问令牌:如果您的项目是私有的,您可以创建并使用个人访问令牌:

    \n\n
      \n
    • 对于读(拉)访问,范围应为read_registry.
    • \n
    • 对于读/写(拉/推)访问,请使用api.
    • \n
    \n\n

    替换以下示例中的<username>和:<access_token>

    \n\n
       docker login -u <username> -p <access_token> $CI_REGISTRY\n
    Run Code Online (Sandbox Code Playgroud)
  • \n
  • 使用 GitLab 部署令牌:您可以在您的私有项目中创建和使用特殊的部署令牌。它提供对注册表的只读(拉取)访问。创建后,您可以使用特殊的环境变量,GitLab …

docker gitlab-ci

13
推荐指数
2
解决办法
2万
查看次数

在 Docker 中使用私有模块构建 Go 应用程序

我正在尝试在依赖于私有子模块的 docker 容器中构建一个 go 项目。

我希望能够--mount=type=ssh将我的 ssh 凭据传递到容器并且它会起作用。目前我可以在本地构建,只需设置GOPRIVATE变量并git config更新即可。

这是我Dockerfile目前的相关内容

# syntax = docker/dockerfile:experimental

FROM golang:1.14.3-alpine AS build
RUN apk add --no-cache git \
                openssh-client \
                ca-certificates

WORKDIR /src
ENV GIT_TERMINAL_PROMPT=1
ENV GOPRIVATE="gitlab.com/company_foo"
RUN git config --global url."ssh://git@gitlab.com".insteadOf "https://gitlab.com"



# Authorize SSH Host
# Skip Host verification for git
RUN mkdir -p /root/.ssh && \
    chmod 0700 /root/.ssh && \
    ssh-keyscan gitlab.com > /root/.ssh/known_hosts &&\
    chmod 644 /root/.ssh/known_hosts && touch /root/.ssh/config \ …
Run Code Online (Sandbox Code Playgroud)

go gitlab docker gitlab-ci

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

gitlab ci:作业工件“没有要上传的文件”

这是我第一次尝试生成 gitlab-ci 作业工件。我的 ci 脚本生成一个 csv 文件,我想将其下载为作业中的工件。yaml 文件如下。

   unittest:
      script:
        - cd unittest
        - bash ci-test.sh
      artifacts:
        paths:
          - /*.csv
        when: always
        expire_in: 1 day
Run Code Online (Sandbox Code Playgroud)

我收到了这样的错误消息。

Uploading artifacts for successful job
00:02
Uploading artifacts...
WARNING: /*.csv: no matching files 
ERROR: No files to upload 
Run Code Online (Sandbox Code Playgroud)

我已经确认生成的 csv 报告在那里。

gitlab-ci

13
推荐指数
1
解决办法
5万
查看次数

在 Gitlab CI 中按顺序运行同一阶段的作业

我想在同一阶段按顺序运行作业,而不是在 GitLab CI 中并行运行。目前,这就是我所拥有的: 在此输入图像描述

我希望单元测试在集成测试之前运行,而不是并行运行。我查看了文档并遇到了 DAG,但它需要作业处于前一阶段,并且不能处于同一阶段。有办法实现这一点吗?

gitlab gitlab-ci

13
推荐指数
1
解决办法
4万
查看次数

gitlab ci 管道中的分离头 - 如何正确推送

我在 CI 管道中的存储库的分离头方面遇到了一些问题。在管道的构建阶段,我运行一个脚本,该脚本更改特定文件。更改此文件后,将其推送到存储库。

before_script:
  - git config --global user.name "Bot"
  - git config --global user.email "ci@domain.com"
  - git status
script:
  - npx ts-node ./generate.ts
  - git push "https://git:${GIT_PUSH_TOKEN}@${CI_REPOSITORY_URL#*@}" "HEAD:main"
  - git status
Run Code Online (Sandbox Code Playgroud)

运行脚本给我输出

Fetching changes with git depth set to 50...
Initialized empty Git repository in /builds/fKSu5-y_/0/project/.git/
Created fresh repository.
Checking out 9b4a88be as main...

$ git status
HEAD detached at 9b4a88be

$ git push "https://git:${GIT_PUSH_TOKEN}@${CI_REPOSITORY_URL#*@}" "HEAD:main"
To https://gitlab.domain.com/project.git
9b4a88b..98be83e  HEAD -> main

$ git status
HEAD detached from 9b4a88b …
Run Code Online (Sandbox Code Playgroud)

git gitlab-ci

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

Gitlab CI - 查找使用的管道变量

当您从 Gitlab UI 运行管道时,您可以向运行添加变量:

在此输入图像描述

从已完成的管道的概述中,有没有办法找到特定运行的设置变量和值?

gitlab gitlab-ci

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

标签 统计

gitlab-ci ×10

gitlab ×6

docker ×3

devops ×1

dockerfile ×1

git ×1

go ×1

logging ×1

vue-router ×1

vue.js ×1

vuejs2 ×1

yaml ×1