Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
2eb9a20f
G
gitlab-foss
项目概览
李少辉-开发者
/
gitlab-foss
通知
15
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
gitlab-foss
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
2eb9a20f
编写于
9月 23, 2015
作者:
D
Dmitriy Zaporozhets
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Enable CI for gitlab when .gitlab-ci.yml is pushed
Signed-off-by:
N
Dmitriy Zaporozhets
<
dmitriy.zaporozhets@gmail.com
>
上级
3b6915d8
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
41 addition
and
1 deletion
+41
-1
CHANGELOG
CHANGELOG
+1
-0
app/models/project.rb
app/models/project.rb
+19
-0
app/models/project_services/gitlab_ci_service.rb
app/models/project_services/gitlab_ci_service.rb
+1
-1
app/services/git_push_service.rb
app/services/git_push_service.rb
+10
-0
spec/models/project_spec.rb
spec/models/project_spec.rb
+10
-0
未找到文件。
CHANGELOG
浏览文件 @
2eb9a20f
...
...
@@ -2,6 +2,7 @@ Please view this file on the master branch, on stable branches it's out of date.
v 8.1.0 (unreleased)
- Show CI status on all pages where commits list is rendered
- Automatically enable CI when push .gitlab-ci.yml file to repository
v 8.0.1
- Improve CI migration procedure and documentation
...
...
app/models/project.rb
浏览文件 @
2eb9a20f
...
...
@@ -739,4 +739,23 @@ class Project < ActiveRecord::Base
def
ci_commit
(
sha
)
gitlab_ci_project
.
commits
.
find_by
(
sha:
sha
)
if
gitlab_ci?
end
def
enable_ci
(
user
)
# Enable service
service
=
gitlab_ci_service
||
create_gitlab_ci_service
service
.
active
=
true
service
.
save
# Create Ci::Project
params
=
OpenStruct
.
new
({
id:
self
.
id
,
name_with_namespace:
self
.
name_with_namespace
,
path_with_namespace:
self
.
path_with_namespace
,
web_url:
self
.
web_url
,
default_branch:
self
.
default_branch
,
ssh_url_to_repo:
self
.
ssh_url_to_repo
})
Ci
::
CreateProjectService
.
new
.
execute
(
user
,
params
)
end
end
app/models/project_services/gitlab_ci_service.rb
浏览文件 @
2eb9a20f
...
...
@@ -72,7 +72,7 @@ class GitlabCiService < CiService
})
ci_project
=
Ci
::
Project
.
find_by!
(
gitlab_id:
project
.
id
)
Ci
::
CreateProjectService
.
new
.
execute
(
current_user
,
params
,
...
...
app/services/git_push_service.rb
浏览文件 @
2eb9a20f
...
...
@@ -55,6 +55,12 @@ class GitPushService
@push_data
=
build_push_data
(
oldrev
,
newrev
,
ref
)
# If CI was disabled but .gitlab-ci.yml file was pushed
# we enable CI automatically
if
!
project
.
gitlab_ci?
&&
gitlab_ci_yaml?
(
newrev
)
project
.
enable_ci
(
user
)
end
EventCreateService
.
new
.
push
(
project
,
user
,
@push_data
)
project
.
execute_hooks
(
@push_data
.
dup
,
:push_hooks
)
project
.
execute_services
(
@push_data
.
dup
,
:push_hooks
)
...
...
@@ -143,4 +149,8 @@ class GitPushService
def
commit_user
(
commit
)
commit
.
author
||
user
end
def
gitlab_ci_yaml?
(
sha
)
@project
.
repository
.
blob_at
(
sha
,
'.gitlab-ci.yml'
)
end
end
spec/models/project_spec.rb
浏览文件 @
2eb9a20f
...
...
@@ -411,4 +411,14 @@ describe Project do
it
{
expect
(
project
.
ci_commit
(
commit
.
sha
)).
to
eq
(
commit
)
}
end
describe
:enable_ci
do
let
(
:project
)
{
create
:project
}
let
(
:user
)
{
create
:user
}
before
{
project
.
enable_ci
(
user
)
}
it
{
expect
(
project
.
gitlab_ci?
).
to
be_truthy
}
it
{
expect
(
project
.
gitlab_ci_project
).
to
be_a
(
Ci
::
Project
)
}
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录