.deploy: &deploy
before_script:
- apt-get update -y
script:
- cd source/
- npm install multi-file-swagger
- multi-file-swagger -o yaml temp.yml > swagger.yml
Run Code Online (Sandbox Code Playgroud)
我想安装 multi-file-swagger 包将 temp.yml(已拆分为多个文件)编译为 swagger.yml。所以在使用npm之前我需要安装nodejs。我怎样才能做到这一点?
有人告诉我,不使用 JaCoCo,而是会有一个内部 Gitlab 工具,我可以在其中创建测试覆盖率报告?
我在 Gitlab 仪表板菜单中找不到任何内容。该项目是一个 Android App Kotlin 项目。
我有下面的管道。创建合并请求后,创建了状态为失败的分离合并请求管道(app1 - 无阶段/作业)。在以下管道的范围内,需要在创建合并请求时以及合并更改 main 后运行管道。这里描述的流程Gitlab CI Child pipeline 下面的管道不起作用。
workflow:
rules:
- if: '$CI_PIPELINE_SOURCE == "schedule"'
- if: '$CI_PIPELINE_SOURCE == "web"'
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
- if: '$CI_PIPELINE_SOURCE == "push"'
stages:
- child-pipelines
app1:
stage: child-pipelines
variables:
COMPONENT NAME: 'app1'
trigger:
include:
- local: .ci/.gitlab-ci.yml
strategy: depend
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- test1/**/*
variables:
DEPLOY_RELEASE: '11111'
- if : '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "main"'
changes:
- test1/**/*
variables:
DEPLOY_RELEASE: '222222' …Run Code Online (Sandbox Code Playgroud) 我为一个应用程序构建了很多不同的 Android 风格,所以我想将构建拆分为不同的 yml 文件。我目前有我的基本文件.gitlab-ci.yml
image: alvrme/alpine-android:android-29-jdk11
variables:
GIT_SUBMODULE_STRATEGY: recursive
before_script:
- export GRADLE_USER_HOME=`pwd`/.gradle
- chmod +x ./gradlew
cache:
key: "$CI_COMMIT_REF_NAME"
paths:
- .gradle/
stages:
- test
- staging
- production
- firebaseUpload
- slack
include:
- local: '/.gitlab/bur.yml'
- local: '/.gitlab/vil.yml'
- local: '/.gitlab/kom.yml'
Run Code Online (Sandbox Code Playgroud)
我目前正在尝试打造 3 种不同的口味。但我不知道为什么只有最后包含的 yml 文件被执行。前 2 个被忽略。
/.gitlab/bur.yml
unitTests:
stage: test
script:
- ./gradlew testBurDevDebugUnitTest
Run Code Online (Sandbox Code Playgroud)
/.gitlab/vil.yml
unitTests:
stage: test
script:
- ./gradlew testVilDevDebugUnitTest
Run Code Online (Sandbox Code Playgroud)
/.gitlab/kom.yml
unitTests:
stage: test
script:
- ./gradlew testKomDevDebugUnitTest
Run Code Online (Sandbox Code Playgroud) 有没有办法将 Github / Gitlab 页面与 monorepo 一起使用?我有 1 个 Gitlab 存储库,其中有 3 个项目:
我将使用付费的 Heroku dyno 来部署后端。我也可以使用(事实上,我正在使用)heroku 来部署两个前端项目的 dist 文件夹。但是因为我们模块化了很多应用程序,而且免费的 Heroku dynos 并不是特别快,所以我想知道 Github / Gitlab 页面是否更快。我使用过一次 Gitlab 页面,但用于 1 个使用 Gitlab CI 的项目。有谁知道是否可以执行每个分支一个页面之类的操作,或者我可以用来部署我的 2 个前端应用程序的操作?
我正在尝试将一个测试项目公开到其存储库,但收到了403 FORBIDDEN. 可能是什么问题呢?
.gitlab-ci.yml:
image: maven:3.8.4-eclipse-temurin-11
deploy:
stage: deploy
script: mvn deploy -s ci_settings.xml
Run Code Online (Sandbox Code Playgroud)
ci_settings.xml:
<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
<servers>
<server>
<id>gitlab-maven</id>
<configuration>
<httpHeaders>
<property>
<name>Job-Token</name>
<value>${CI_JOB_TOKEN}</value>
</property>
</httpHeaders>
</configuration>
</server>
</servers>
</settings>
Run Code Online (Sandbox Code Playgroud)
pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>my.group</groupId>
<artifactId>my-commons</artifactId>
<version>1.0.0</version>
<repositories>
<repository>
<id>gitlab-maven</id>
<url>${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/maven</url>
</repository>
</repositories>
<distributionManagement>
<repository>
<id>gitlab-maven</id>
<url>${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/maven</url>
</repository>
<snapshotRepository>
<id>gitlab-maven</id>
<url>${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/maven</url>
</snapshotRepository>
</distributionManagement>
</project>
Run Code Online (Sandbox Code Playgroud)
结果。
[信息]上传到gitlab-maven: https://my.company.com/api/v4/projects/295/packages/maven/com/example/my-test/1.0.0/my-commons-1.0.0 .pom
[错误] 无法在项目 my-commons 上执行目标 org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy):无法部署工件:无法传输工件 com.example:my- …
我在 gitlab 中克隆了文件,创建了一个新分支,编辑了文件,最后推送了它。但不知何故,它创建了一个新的存储库,我的 github 中的一个新分支,而我的 gitlab 中没有任何内容。我应该怎么办
在 Gitlab 项目的顶部,有一个栏显示项目内使用的每种语言的百分比。
在我的存储库中,我有几十个大型 python 文件和一个带有几行代码的小笔记本,但它表明该项目主要包含笔记本。这不是一个错误,它只是与绘图特别在文件中生成大量原始行这一事实有关.ipynb。
我想避免这种行为,例如告诉 Gitlab 不要计算该文件的行数。我找到了一些适用于 Github 的解决方案,但没有找到适用于 Gitlab 的解决方案。
注意:我不想创建一个额外的存储库来托管一个小笔记本,即使它可以解决这个问题。
我在 Gitlab 上有一个存储库,其中一个分支上有一些提交,如下所示
A - B - C - D - HEAD
Run Code Online (Sandbox Code Playgroud)
我错误地在提交 B 上上传了一些秘密令牌字符串,后来我注意到了,所以我从 A 创建了一个新分支,然后手动复制了提交 D 中的所有文件,所以历史记录现在看起来像这样
/ - E - HEAD
A - B - C - D
Run Code Online (Sandbox Code Playgroud)
现在我所做的是在 Gitlab 上删除分支 BCD,这样那些“令牌提交”就不再可访问,历史记录看起来像
A - E - HEAD
Run Code Online (Sandbox Code Playgroud)
然而,我只是注意到我仍然可以通过项目 - >活动访问麻烦的提交,并看到我的旧推送,其中旧提交仍然可以访问。
怎样才能彻底删除那些呢?
我的问题与明显的编码问题无关,而是经过 3 年从事不同项目并使用 Gitlab 和 Github 的经验之后提出的。我仍然不确定何时提交并将迄今为止实现的代码推送到其原始存储库。
需要明确的是,
当我们完成某个任务时,我们是否应该进行新的推送?
或者也许每当我们编写某个代码并且我们确定它不会被更改时?
或者,就像我通常在工作日结束时所做的那样,如果任务尚未完成(只是为了远程保存工作)作为 [WIP] 推送!
或者...
有类似想法的链接或资源吗?