1
1
2
2
import os
3
3
import shutil
4
+ import tempfile
5
+
6
+ from conf import versions_dict
4
7
5
8
6
9
def copytree (src , dst , symlinks = False , ignore = None ):
@@ -19,30 +22,51 @@ def call(command, ignore_error=False):
19
22
raise Exception ("Command failed: %s" % command )
20
23
21
24
22
- tmp_dir = os .getenv ("CONANDOCS_TMP_DIR" , "/tmp/docs" )
23
25
excluded_files = (".git" , "CNAME" , "index.html" )
24
26
25
- if __name__ == "__main__" :
27
+
28
+ def clean_gh_pages ():
29
+ call ("git checkout gh-pages" )
30
+ call ("git pull origin gh-pages" )
31
+ if os .path .exists ("en" ):
32
+ shutil .rmtree ("en" )
33
+
34
+
35
+ def build_and_copy (branch , folder_name ):
36
+ call ("git checkout %s" % branch )
26
37
27
38
call ("make html" )
28
- call ("make linkcheck" )
39
+ # call("make linkcheck")
40
+ tmp_dir = tempfile .mkdtemp ()
29
41
if os .path .exists (tmp_dir ):
30
42
shutil .rmtree (tmp_dir )
31
43
os .mkdir (tmp_dir )
32
44
33
45
copytree ("_build/html/" , tmp_dir )
46
+ shutil .rmtree ("_build" )
47
+
48
+ # Go to deploy branch, copy new files and commit
34
49
call ("git checkout gh-pages" )
35
- call ("git pull origin gh-pages" )
50
+ if not os .path .exists ("en" ):
51
+ os .mkdir ("en" )
36
52
37
- if os .path .exists ("en" ):
38
- shutil .rmtree ("en" )
53
+ version_folder = "en/%s" % folder_name
54
+ if os .path .exists (version_folder ):
55
+ shutil .rmtree (version_folder )
39
56
40
- os .mkdir ("en" )
41
- os .mkdir ("en/latest" )
42
-
43
- copytree (tmp_dir , "en/latest" )
57
+ os .mkdir (version_folder )
58
+ copytree (tmp_dir , version_folder )
44
59
call ("git add -A ." )
45
- call ("git commit -m 'deploying web'" , ignore_error = True )
46
- call ("git push origin gh-pages" , ignore_error = True )
47
- call ("git checkout master" )
48
- print ("PUSHED!" )
60
+ call ("git commit -m 'committed version %s'" % folder_name , ignore_error = True )
61
+
62
+
63
+ if __name__ == "__main__" :
64
+
65
+ clean_gh_pages ()
66
+
67
+ for branch , folder_name in versions_dict .items ():
68
+ build_and_copy (branch , folder_name )
69
+
70
+ #call("git push origin gh-pages", ignore_error=True)
71
+
72
+ print ("PUSH skipped, make sure all is ok and 'git push origin gh-pages'" )
0 commit comments