From 477b21e6331a8bef352a94d6b3350336d9b6d31c Mon Sep 17 00:00:00 2001 From: chenjing <28122123@qq.com> Date: Fri, 1 Sep 2023 13:27:40 +0800 Subject: [PATCH] build service change --- app/controllers/site_pages_controller.rb | 18 ++++++++++++++++-- app/models/page.rb | 6 ++++++ app/services/page_service.rb | 15 +-------------- app/views/site_pages/_info.json.jbuilder | 2 ++ ...7_add_last_build_info_and_state_to_pages.rb | 6 ++++++ 5 files changed, 31 insertions(+), 16 deletions(-) create mode 100644 db/migrate/20230901023417_add_last_build_info_and_state_to_pages.rb diff --git a/app/controllers/site_pages_controller.rb b/app/controllers/site_pages_controller.rb index 5cdc4ba2f..b830a064b 100644 --- a/app/controllers/site_pages_controller.rb +++ b/app/controllers/site_pages_controller.rb @@ -36,7 +36,11 @@ class SitePagesController < ApplicationController if data.nil? data = JSON.parse(response_str)["error"] end - @page.update(last_build_at: Time.now) + if data.include?("部署成功") + @page.update(last_build_at: Time.now, build_state: true, last_build_info: data) + else + @page.update(build_state:false, last_build_info: data) + end render_ok({data: data.nil? ? nil : data.split("\n") }) end @@ -50,7 +54,17 @@ class SitePagesController < ApplicationController return normal_status(-1, "该仓库还未开通Page服务,无法进行部署") if Page.exists?(user: user, project: project) @page = Page.find_by(user: user, project: project) - @page.deploy_page(branch) + response_str = @page.deploy_page(branch) + data = JSON.parse(response_str)["result"] + if data.nil? + data = JSON.parse(response_str)["error"] + end + + if data.include?("部署成功") + @page.update(last_build_at: Time.now, build_state: true, last_build_info: data) + else + @page.update(build_state:false, last_build_info: data) + end render_ok end diff --git a/app/models/page.rb b/app/models/page.rb index 1b5f9a018..f814b96ad 100644 --- a/app/models/page.rb +++ b/app/models/page.rb @@ -14,6 +14,8 @@ # state_description :string(255) # created_at :datetime not null # updated_at :datetime not null +# last_build_info :text(65535) +# build_state :boolean # # Indexes # @@ -47,4 +49,8 @@ class Page < ApplicationRecord "http://#{user.login}.#{@deploy_domain}/#{identifier}" end + def build_script_path + "#{language_frame}_build" + end + end diff --git a/app/services/page_service.rb b/app/services/page_service.rb index 90249b7f3..687added1 100644 --- a/app/services/page_service.rb +++ b/app/services/page_service.rb @@ -47,20 +47,7 @@ class PageService repo_link = project.repository.url repo = project.repository.identifier branch = branch - script_path = nil - script_path = case page.language_frame - when "hugo" - "hugo_build" - - when "jekyll" - "jekyll_build" - - when "hexo" - "hexo_build" - else - "hugo_build" - end - + script_path =page.build_script_path if script_path.present? uri = URI.parse("http://gitlink.#{@deploy_domain}/gitlink_execute_script?key=#{@deploy_key}&script_path=#{script_path}&project_dir=#{project_dir}&repo=#{repo}&repo_link=#{repo_link}&branch=#{branch}&owner=#{owner}") response = Net::HTTP.get_response(uri) diff --git a/app/views/site_pages/_info.json.jbuilder b/app/views/site_pages/_info.json.jbuilder index 3918c523c..bfd2e1171 100644 --- a/app/views/site_pages/_info.json.jbuilder +++ b/app/views/site_pages/_info.json.jbuilder @@ -9,6 +9,8 @@ json.theme page.theme json.state page.state json.state_description page.state_description json.language_frame page.language_frame +json.build_state page.build_state +json.last_build_info page.last_build_info.to_s.split("\n") json.url page.url json.created_at page.created_at.strftime("%Y-%m-%d %H:%M:%S") json.last_build_at page.last_build_at.nil? ? nil : page.last_build_at.strftime("%Y-%m-%d %H:%M:%S") \ No newline at end of file diff --git a/db/migrate/20230901023417_add_last_build_info_and_state_to_pages.rb b/db/migrate/20230901023417_add_last_build_info_and_state_to_pages.rb new file mode 100644 index 000000000..b5df0bd2d --- /dev/null +++ b/db/migrate/20230901023417_add_last_build_info_and_state_to_pages.rb @@ -0,0 +1,6 @@ +class AddLastBuildInfoAndStateToPages < ActiveRecord::Migration[5.2] + def change + add_column :pages, :last_build_info, :text + add_column :pages, :build_state, :boolean + end +end