我们在同一阶段有4个可以同时运行的部署作业.来自Gitlab文档:
阶段元素的排序定义了作业执行的顺序:
同一阶段的工作是并行运行的.
下一阶段的作业在上一阶段的作业成功完成后运行.
但是,会发生的情况是,一次只运行一个作业,而其他作业仍在等待处理.是否有其他事情我需要做才能让它并行执行.我正在使用一个带有在Ubuntu 16.04实例上托管的shell执行器的运行器.
当我在提交中推送到GIT(Gitlab)repo时,我看到用户在'user.email'和'user.name'中设置了提交.
为什么会这样?我认为有关用户的信息应该从Gitlab配置文件中获取.现在可以欺骗我们的身份.
我有一个项目,我正在生成许多提交,所以它占用的空间正在快速增长.由于我有一个gitlab页面提交被推送,我认为最好摆脱我本地git目录上的这些旧提交,因为我总是可以从gitlab获取它们.
为此,我只删除了本地.git目录,并创建了一个新目录.我用了这个序列
git init
git add .
git push -m "test"
git add origin git@myGitPage.../myGitPage.git
Run Code Online (Sandbox Code Playgroud)
但是最后一个命令导致了
致命的:pathspec'genin'与任何文件都不匹配
然后我恢复了旧的.git目录,做了一些修改并将它们推送到gitlab.然后删除了本地git dir,再次尝试使用从头创建的新git,但正如预期的那样,它再次无法工作.
在恢复旧的git时,我正在恢复旧版本,因为我将新版本推送到gitlab,现在当我发送一个
git push origin master
Run Code Online (Sandbox Code Playgroud)
用这个旧版本
我收到了
![拒绝]主 - >主(非快进)错误:未能将某些引用推送到'git @ ...'为了防止您丢失历史记录,拒绝非快进更新在推送之前合并远程更改再次.有关详细信息,请参阅"git push --help"中的"关于快进的注意事项"部分.
如果我下载,然后从gitlab解压缩最新版本,我会收到相同的:
致命的:pathspec'genin'与任何文件都不匹配
要召唤它,使用全新的git目录或gilab的最新版本,我收到上述错误消息.随着已经老了,我收到的消息提到快速前进.
我怎么能解决所有这些混乱,回到我的常规
git add .
git push -m "anything"
git push origin master
Run Code Online (Sandbox Code Playgroud)
不需要在我的电脑上保留旧的提交,但没有在gitlab上删除它们?
我的.gitlab-ci.yml中有这样的任务
deploy_all:
stage: deploy
script:
- cp project/target/jnlp/* html/jnlp/
tags:
- client:deploy-all
Run Code Online (Sandbox Code Playgroud)
一切正常,除非不必要的git仓库获取。以下是跑步者日志中的摘录
Running with gitlab-ci-multi-runner 9.1.0 (0118d89)
...
Fetching changes...
HEAD is now at 8dfc104 Update .gitlab-ci.yml
...
Job succeeded
Run Code Online (Sandbox Code Playgroud)
这里不需要存储库,因为我只需要其他任务的工件。是否可以禁用此行为?
我正在尝试删除X个月以上的git标签
我们有需要保留的发行标签,它们都标记release-*在* = date
我知道如何删除单数标签 git push origin :refs/tags/<tagName>
所以我推断出要删除所有远程标签
git ls-remote --tags origin | xargs git push origin :$1
要跳过我计划使用的发布标签,请使用egrep -v以下命令
git ls-remote --tags origin | egrep -v "(^\*|release*)" | xargs git push origin :$1
但是我至今还没有弄清楚如何做到这一点。
我可以在本地按日期排序,例如,git for-each-ref --sort=taggerdate --format '%(refname)' refs/tags | egrep -v "(^\*|release*)"但这对远程标记没有帮助。
如果有帮助,我不介意删除或不删除本地标签以删除远程标签。
最后,如果它提供了更好的清除方法,我们将使用gitlab?
无论如何,这都需要通过Jenkins像脚本一样运行,以帮助满足git清理的需要。
更新资料
因为我们有成千上万个git标签,所以我意识到xargs将会变得非常慢。
我相信删除的方式更有可能是
git push origin $(< git tag | <sorting_by_date + exclude release> \
| sed -e 's/^/:/' | paste -sd " …
我确实克隆了一个主分支,创建了一个新的分支并进行了更改,提交并尝试使用以下命令进行推送:
git push origin myNewBranch,但我一直收到以下错误:
remote: fatal: bad object HEAD
To https://gitlab.com/myProjectRepo/my-app.git
! [remote rejected] myNewBranch -> myNewBranch (missing necessary objects)
error: failed to push some refs to 'https://gitlab.com/myProjectRepo/my-app.git'
Run Code Online (Sandbox Code Playgroud)
我得到的错误没有提到或指向任何像这里问的空对象文件.在尝试push不这样做时,它也发生在我身边commit
我确实在Ubuntu 16.04.4 LTS上设置了一个新的GitLab实例。安装软件包运行正常,并且GitLab似乎已启动并正在运行。然后,我开始在中配置实例并设置SMTP /etc/gitlab/gitlab.rb。之后我跑了sudo gitlab-ctl reconfigure。它失败,并显示以下错误消息:
Starting Chef Client, version 13.6.4
Running handlers:
There was an error running gitlab-ctl reconfigure:
Unable to determine node name: configure node_name or configure the system's hostname and fqdn
Running handlers complete
Chef Client failed. 0 resources updated in 10 seconds
Run Code Online (Sandbox Code Playgroud)
设置系统的主机名和fqdn:
$ hostname --fqdn
git-lab.dom
$ hostname
git-lab
Run Code Online (Sandbox Code Playgroud)
Ohai似乎成功读取了主机名,fqdn和域:
$ /opt/gitlab/embedded/bin/ohai
[...]
"hostname": "git-lab",
"machinename": "git-lab",
"fqdn": "git-lab.dom",
"domain": "dom",
[...]
Run Code Online (Sandbox Code Playgroud)
对于类似问题的答案建议手动设置node_namein /etc/chef/client.rb。但是,gitlab omnibus软件包似乎将client.rb放在其他位置。我也不愿意遵循这个建议,因为对于我来说到目前为止我还没有必须安装其他的GitLab,这对我来说似乎很奇怪。此外,文档指出(重点是我): …
我的GitLab私有存储区中有一个bash脚本文件。我希望在运行wget命令时在Linux中下载文件,但是由于文件托管在私有存储库中,因此下载失败,因此转到登录页面。
有没有一种方法可以使该单个文件公开访问?如果不是,是否有办法在尝试打开文件时将我的凭据包括在GET URL中?
我有一个Jenkins管道项目,我希望每次推送到托管代码的Gitlab存储库时都会触发构建.
在Jenkins上我安装了Gitlab插件和Git插件,我通过添加Gitlab主机URL(https://gitlab.com)和之前生成的Gitlab API令牌来配置Gitlab部分(管理Jenkins - >配置系统). Gitlab:如果我执行测试连接,一切正常,正如预期的那样.
问题出在Gitlab上:我转到Settings - > Integrations,我尝试通过添加我在项目配置中找到的Jenkins项目URL来配置webhook(下面突出显示):
但是有一个问题:似乎不允许从Gitlab向localhost请求.
似乎要避免这个问题是必要的,以激活一个选项(允许从钩子和服务请求到本地网络),但只有当我有自己管理的Gitlab服务器时,此选项才可用.相反,我的项目托管在gitlab.com上,因此无法修改此选项.
在我的案例中,有任何解决方法或替代解决方案来配置webhook吗?