有没有人设法弄清楚如何让 Vue.jshistory mode与 GitHub 或 GitLab Pages一起工作?
它适用于hash mode,但我不想hash mode用于 SEO 相关的原因。
路由器模式参考:https : //router.vuejs.org/en/essentials/history-mode.html
我需要加快工作“部署”。它不需要项目源,但只需要工件。
典型.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) GitLab CI 允许向项目添加自定义变量。
它允许使用类型的秘密变量,file其中我指定了一个作为变量名称的密钥和作为文件内容的值(例如证书的内容)
然后在管道执行期间,内容将保存为临时文件,调用变量名称将返回创建文件的路径。
最终,我需要将此文件复制到构建项目时创建的 Docker 容器中。(docker build ...在yml中)
当如果变量作品测试,我想echo $VARIABLE在.gitlab-ci.yml和它的作品,临时文件的路径返回。但是在RUN echo $VARIABLEin 中执行时Dockerfile,它是空的。因此我也不能使用ADD $VARIABLE /tmp/这是我的目标。
有没有办法解决这个问题并使这个文件可供Dockerfile? 我是 Docker 和 GitLab 的新手,不知道还能去哪里找。
我有一些 gitlab CI管道,其中包含数十个作业 - 有时我需要找到可能出现在作业中的内容,但不知道是哪个作业。我可以在 Web 界面中手动选择每个作业并查看关联的日志,但为每个作业执行此操作是不可行的。
有没有某种方法(最好是作为非特权 gitlab 用户)来检索/聚合给定管道的所有作业的输出?
如果重要的话,我使用的是 12.5.X-ee 版本。
我有一个私有的 GitLab 项目,其中包含用于构建和推送 Docker 映像的管道。因此我必须首先向 GitLab 的 Docker 注册表进行身份验证。
\n\n研究
\n\n我阅读了使用 GitLab CI/CD 对容器注册表进行身份验证:
\n\n\n有三种方法可以通过 GitLab CI/CD 对容器注册表进行身份验证,具体取决于项目的可见性。
\n\n适用于所有项目,但更适合公共项目:
\n\n\n
\n\n- \n
使用特殊
\n\nCI_REGISTRY_USER变量:为您创建此变量指定的用户,以便推送到连接到您的项目的注册表。它的密码是用CI_REGISTRY_PASSWORD变量自动设置的。这允许您自动构建和部署 Docker 映像,并具有对注册表的读/写访问权限。这是短暂的,因此它\xe2\x80\x99s 仅对一项作业有效。您可以按原样使用以下示例:Run Code Online (Sandbox Code Playgroud)docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY\n对于私人和内部项目:
\n\n\n
- \n
使用个人访问令牌:如果您的项目是私有的,您可以创建并使用个人访问令牌:
\n\n\n
\n\n- 对于读(拉)访问,范围应为
\nread_registry.- 对于读/写(拉/推)访问,请使用
\napi.替换以下示例中的
\n\n<username>和:<access_token>Run Code Online (Sandbox Code Playgroud)docker login -u <username> -p <access_token> $CI_REGISTRY\n使用 GitLab 部署令牌:您可以在您的私有项目中创建和使用特殊的部署令牌。它提供对注册表的只读(拉取)访问。创建后,您可以使用特殊的环境变量,GitLab …
我正在尝试在依赖于私有子模块的 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) 这是我第一次尝试生成 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 报告在那里。
我在 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)