创建pipeline文件接口
This commit is contained in:
parent
0d6ddad013
commit
3946c7116b
|
@ -4203,7 +4203,8 @@ http://localhost:3000/api/ci/pipelines/1/content.json?owner=xx&repo=xx | jq
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"content": "#pipeline \nkind: pipeline\r\nname: maven项目-镜像仓库\r\n\r\nplatform:\r\n os: linux\r\n arch: arm64\nsteps:\n- name: Maven编译\r\n image: arm64v8/maven\r\n commands:\r\n - mvn install\n- name: 编译镜像-推送到仓库\r\n image: plugins/docker\r\n settings:\r\n username: moshenglv\r\n password: RL9UB5P7Jtzukka\r\n repo: docker.io/moshenglv/demo\r\n tags: latest\n",
|
"content": "#pipeline \nkind: pipeline\r\nname: maven项目-镜像仓库\r\n\r\nplatform:\r\n os: linux\r\n arch: arm64\nsteps:\n- name: Maven编译\r\n image: arm64v8/maven\r\n commands:\r\n - mvn install\n- name: 编译镜像-推送到仓库\r\n image: plugins/docker\r\n settings:\r\n username: moshenglv\r\n password: RL9UB5P7Jtzukka\r\n repo: docker.io/moshenglv/demo\r\n tags: latest\n",
|
||||||
"sync": 1
|
"sync": 1,
|
||||||
|
"sha":"xxxxx"
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,8 @@ class Ci::PipelinesController < Ci::BaseController
|
||||||
|
|
||||||
before_action :require_login, only: %i[list create]
|
before_action :require_login, only: %i[list create]
|
||||||
skip_before_action :connect_to_ci_db
|
skip_before_action :connect_to_ci_db
|
||||||
before_action :load_project, only: %i[content]
|
before_action :load_project, only: %i[content, create_trustie_pipeline]
|
||||||
|
before_action :load_repository, only: %i[create_trustie_pipeline]
|
||||||
|
|
||||||
# ======流水线相关接口========== #
|
# ======流水线相关接口========== #
|
||||||
def list
|
def list
|
||||||
|
@ -84,6 +85,47 @@ class Ci::PipelinesController < Ci::BaseController
|
||||||
return file['sha']
|
return file['sha']
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def create_trustie_pipeline
|
||||||
|
pipeline = Ci::Pipeline.find(params[:id])
|
||||||
|
sha = get_pipeline_file_sha(pipeline.file_name)
|
||||||
|
if sha
|
||||||
|
pipeline.update!(sync: 1)
|
||||||
|
return update_trustie_pipeline(sha)
|
||||||
|
else
|
||||||
|
interactor = Gitea::CreateFileInteractor.call(current_user.gitea_token, @owner.login, content_params)
|
||||||
|
if interactor.success?
|
||||||
|
pipeline.update!(sync: 1)
|
||||||
|
else
|
||||||
|
render_error(interactor.error)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def update_trustie_pipeline(sha)
|
||||||
|
interactor = Gitea::UpdateFileInteractor.call(current_user.gitea_token, params[:owner], params.merge(identifier: @project.identifier,sha: sha))
|
||||||
|
if interactor.success?
|
||||||
|
return render_ok("更新成功")
|
||||||
|
else
|
||||||
|
return render_error(interactor.error)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def content_params
|
||||||
|
{
|
||||||
|
filepath: params[:filepath],
|
||||||
|
branch: params[:branch],
|
||||||
|
new_branch: params[:new_branch],
|
||||||
|
content: params[:content],
|
||||||
|
message: params[:message],
|
||||||
|
committer: {
|
||||||
|
email: current_user.mail,
|
||||||
|
name: current_user.login
|
||||||
|
},
|
||||||
|
identifier: @project.identifier
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
# =========阶段相关接口========= #
|
# =========阶段相关接口========= #
|
||||||
def stages
|
def stages
|
||||||
pipeline_id = params[:id]
|
pipeline_id = params[:id]
|
||||||
|
|
|
@ -46,6 +46,7 @@ Rails.application.routes.draw do
|
||||||
get :content
|
get :content
|
||||||
get :stages
|
get :stages
|
||||||
post :create_stage
|
post :create_stage
|
||||||
|
post :create_trustie_pipeline
|
||||||
delete :delete_stage, :path => ":stage_id/delete_stage", to: 'pipelines#delete_stage'
|
delete :delete_stage, :path => ":stage_id/delete_stage", to: 'pipelines#delete_stage'
|
||||||
put :update_stage, :path => ":stage_id/update_stage", to: 'pipelines#update_stage'
|
put :update_stage, :path => ":stage_id/update_stage", to: 'pipelines#update_stage'
|
||||||
get :stage_steps, :path => ":stage_id/steps", to: 'pipelines#steps'
|
get :stage_steps, :path => ":stage_id/steps", to: 'pipelines#steps'
|
||||||
|
|
Loading…
Reference in New Issue