@@ -32,3 +32,55 @@ file archive_name do
3232end
3333desc "Create #{ archive_name } "
3434task :dist => archive_name
35+
36+ namespace :doc do
37+ desc "Build HTML documentation"
38+ task :html do
39+ sh ( "sphinx-build" ,
40+ "-b" , "html" ,
41+ "-j" , "auto" ,
42+ "doc/source" ,
43+ "doc/build" )
44+ end
45+
46+ desc "Publish HTML documentation"
47+ task :publish do
48+ site = ENV [ "ASF_SITE" ] || "site"
49+ asf_yaml = File . expand_path ( ".asf.yaml" )
50+ cleaned_doc = File . expand_path ( "doc/build.clean" )
51+ index_html = File . expand_path ( "doc/index.html" )
52+
53+ rm_rf ( cleaned_doc )
54+ cp_r ( "doc/build" , cleaned_doc )
55+ rm_f ( "#{ cleaned_doc } /.buildinfo" )
56+ rm_rf ( "#{ cleaned_doc } /.doctrees" )
57+
58+ cd ( "site" ) do
59+ cp ( asf_yaml , "." )
60+ sh ( "git" , "add" , "--force" , ".asf.yaml" )
61+ cp ( index_html , "." )
62+ sh ( "git" , "add" , "--force" , "index.html" )
63+ if ENV [ "GITHUB_REF_TYPE" ] == "tag"
64+ new_version = ENV [ "GITHUB_REF_NAME" ] . gsub ( /-rc\d +\z / , "" )
65+ else
66+ new_version = "devel"
67+ end
68+ rm_rf ( new_version )
69+ cp_r ( cleaned_doc , new_version )
70+ sh ( "git" , "add" , "--force" , new_version )
71+ unless new_version == "devel"
72+ rm_rf ( "current" )
73+ cp_r ( cleaned_doc , "current" )
74+ sh ( "git" , "add" , "--force" , "current" )
75+ end
76+ sh ( "git" , "commit" , "-m" , "Publish" , "--allow-empty" )
77+ unless ENV [ "GITHUB_EVENT_NAME" ] == "pull_request"
78+ dry_run = [ ]
79+ if ENV [ "GITHUB_REF_TYPE" ] != "tag" and ENV [ "GITHUB_REF_NAME" ] != "main"
80+ dry_run << "--dry-run"
81+ end
82+ sh ( "git" , "push" , *dry_run , "origin" , "asf-site:asf-site" )
83+ end
84+ end
85+ end
86+ end
0 commit comments