src/main.go

Tue, 16 Dec 2025 20:12:54 +0100

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Tue, 16 Dec 2025 20:12:54 +0100
changeset 3
9273d04a4d89
parent 2
edeb8e8e02b6
child 4
e24fc79b7980
permissions
-rw-r--r--

download result from buildenv and parse result.json

0
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
1 package main
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
2
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
3 import (
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
4 "bytes"
3
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
5 "encoding/json"
0
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
6 "encoding/xml"
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
7 "fmt"
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
8 "log"
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
9 "os"
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
10 "os/exec"
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
11 "path"
1
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
12 "strings"
0
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
13 "text/template"
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
14 )
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
15
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
16 type Config struct {
1
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
17 XMLName xml.Name `xml:"config"`
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
18 BuildEnv []BuildEnv `xml:"buildenv"`
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
19 BuildEnvMap map[string]BuildEnv
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
20
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
21 Repository []Repository `xml:"repository"`
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
22 }
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
23
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
24 type BuildEnv struct {
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
25 Name string `xml:"name,attr"`
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
26 Host string `xml:"host"`
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
27 User string `xml:"user"`
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
28 }
0
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
29
1
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
30 type Repository struct {
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
31 Path string `xml:"path"`
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
32 BuildEnvs string `xml:"buildenvs"`
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
33 Build []struct {
3
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
34 Name string `xml:"name,attr"`
2
edeb8e8e02b6 implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1
diff changeset
35 IsPlatform string `xml:"isplatform,attr"`
edeb8e8e02b6 implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1
diff changeset
36 NotPlatform string `xml:"not,attr"`
edeb8e8e02b6 implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1
diff changeset
37 NotList []string
1
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
38 Test []string `xml:"test"`
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
39 Var []struct {
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
40 Name string `xml:"name,attr"`
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
41 Value string `xml:",chardata"`
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
42 }
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
43 Configure string `xml:"configure"`
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
44 Compile string `xml:"compile"`
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
45 Check string `xml:"check"`
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
46 } `xml:"build"`
0
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
47 }
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
48
3
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
49 type Result struct {
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
50 Build string `json:"build"`
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
51 Name string `json:"name"`
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
52 Configure string `json:"configure"`
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
53 Compile string `json:"compile"`
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
54 Check string `json:"check"`
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
55 }
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
56
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
57 type Results struct {
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
58 Results []Result
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
59 }
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
60
0
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
61 func main() {
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
62 data, err := os.ReadFile("testconfig.xml")
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
63 if err != nil {
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
64 log.Fatal(err)
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
65 }
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
66
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
67 config := &Config{}
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
68 if err := xml.Unmarshal(data, &config); err != nil {
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
69 log.Fatal(err)
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
70 }
1
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
71 config.BuildEnvMap = make(map[string]BuildEnv)
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
72 for _, env := range config.BuildEnv {
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
73 config.BuildEnvMap[env.Name] = env
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
74 }
0
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
75
2
edeb8e8e02b6 implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1
diff changeset
76 for ri := range config.Repository {
edeb8e8e02b6 implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1
diff changeset
77 for bi := range config.Repository[ri].Build {
edeb8e8e02b6 implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1
diff changeset
78 build := &config.Repository[ri].Build[bi]
edeb8e8e02b6 implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1
diff changeset
79 build.NotList = strings.Split(build.NotPlatform, ",")
edeb8e8e02b6 implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1
diff changeset
80 }
edeb8e8e02b6 implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1
diff changeset
81 }
edeb8e8e02b6 implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1
diff changeset
82
0
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
83 templateStr, err := os.ReadFile("build.template")
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
84 if err != nil {
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
85 log.Fatal(err)
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
86 }
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
87
2
edeb8e8e02b6 implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1
diff changeset
88 funcs := template.FuncMap{
edeb8e8e02b6 implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1
diff changeset
89 "add": func(i int, n int) int {
edeb8e8e02b6 implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1
diff changeset
90 return i + n
edeb8e8e02b6 implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1
diff changeset
91 },
edeb8e8e02b6 implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1
diff changeset
92 "sub": func(i int, n int) int {
edeb8e8e02b6 implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1
diff changeset
93 return i - n
edeb8e8e02b6 implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1
diff changeset
94 },
edeb8e8e02b6 implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1
diff changeset
95 }
edeb8e8e02b6 implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1
diff changeset
96
edeb8e8e02b6 implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1
diff changeset
97 tpl, err := template.New("").Funcs(funcs).Parse(string(templateStr))
0
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
98 if err != nil {
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
99 log.Fatal(err)
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
100 }
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
101
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
102 err = os.Mkdir("tmp", 0755)
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
103 if err != nil && !os.IsExist(err) {
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
104 log.Fatal(err)
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
105 }
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
106
1
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
107 tmp := "tmp"
0
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
108
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
109 for _, repo := range config.Repository {
1
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
110 if err = create_repo_archive(&repo, tpl, tmp); err != nil {
0
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
111 log.Fatal(err)
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
112 }
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
113
3
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
114 exec_buildenvs(config, &repo, tmp)
1
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
115 }
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
116 }
0
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
117
1
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
118 func create_repo_archive(repo *Repository, tpl *template.Template, tmp_dir string) error {
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
119 // create a build directory, that contains the repository source
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
120 // and build scripts
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
121 buildPath := path.Join(tmp_dir, "build")
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
122
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
123 if err := os.RemoveAll(buildPath); err != nil {
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
124 log.Print("remove build dir failed: ", err)
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
125 return err
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
126 }
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
127 if err := os.RemoveAll(path.Join(tmp_dir, "build.tar")); err != nil {
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
128 log.Print("remove build.tar failed")
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
129 return err
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
130 }
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
131 if err := os.RemoveAll(path.Join(tmp_dir, "build.tar.gz")); err != nil {
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
132 log.Print("remove build.tar.gz failed")
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
133 return err
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
134 }
3
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
135 if err := os.RemoveAll(path.Join(tmp_dir, "result")); err != nil {
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
136 log.Print("remove result failed")
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
137 return err
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
138 }
1
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
139
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
140 err := os.Mkdir(buildPath, 0755)
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
141 if err != nil {
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
142 log.Print("mkdir build dir failed: ", err)
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
143 return err
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
144 }
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
145
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
146 // update repository and copy it to the build directory
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
147 cmd := exec.Command("hg", "pull")
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
148 var outb, errb bytes.Buffer
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
149 cmd.Dir = repo.Path
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
150 cmd.Stdout = &outb
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
151 cmd.Stderr = &errb
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
152 err = cmd.Run()
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
153 if err != nil {
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
154 log.Print("hg: ", errb.String())
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
155 return err
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
156 }
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
157
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
158 outb.Reset()
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
159 errb.Reset()
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
160 cmd = exec.Command("hg", "update")
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
161 cmd.Dir = repo.Path
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
162 cmd.Stdout = &outb
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
163 cmd.Stderr = &errb
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
164 err = cmd.Run()
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
165 if err != nil {
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
166 log.Print("hg: ", errb.String())
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
167 return err
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
168 }
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
169
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
170 // copy repository to the tmp_dir build directory
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
171 cmd = exec.Command("cp", "-r", repo.Path, path.Join(buildPath, "src"))
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
172 err = cmd.Run()
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
173 if err != nil {
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
174 log.Print("cannot copy the repository to the build dir")
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
175 return err
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
176 }
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
177
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
178 // create build script
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
179 file, err := os.Create(path.Join(buildPath, "build.sh"))
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
180 if err != nil {
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
181 log.Print("cannot create build.sh")
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
182 return err
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
183 }
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
184 defer file.Close()
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
185
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
186 err = tpl.Execute(file, repo)
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
187 if err != nil {
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
188 log.Print("cannot execute build.sh template")
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
189 return err
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
190 }
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
191 file.Chmod(0755)
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
192
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
193 // create tarball
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
194 cmd = exec.Command("tar", "cvf", "../build.tar", "src", "build.sh")
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
195 cmd.Dir = buildPath
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
196 if err := cmd.Run(); err != nil {
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
197 log.Print("tar error")
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
198 return err
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
199 }
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
200
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
201 cmd = exec.Command("gzip", path.Join(tmp_dir, "build.tar"))
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
202 if err := cmd.Run(); err != nil {
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
203 log.Print("gzip error")
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
204 return err
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
205 }
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
206
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
207 return nil
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
208 }
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
209
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
210 func host_is_available(host string) bool {
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
211 cmd := exec.Command("ping", "-c", "1", host)
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
212 if err := cmd.Run(); err != nil {
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
213 return false
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
214 }
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
215 return true
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
216 }
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
217
3
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
218 func exec_buildenvs(config *Config, repo *Repository, tmp_dir string) int {
1
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
219 if len(repo.BuildEnvs) == 0 {
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
220 log.Print("repo %s has no buildenvs", repo.Path)
3
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
221 return 0
1
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
222 }
3
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
223 success := 0
1
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
224 buildenvs := strings.Split(repo.BuildEnvs, ",")
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
225 for _, buildenv := range buildenvs {
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
226 env, ok := config.BuildEnvMap[buildenv]
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
227 if !ok {
3
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
228 log.Print("unknown build env ", buildenv)
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
229 continue
0
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
230 }
1
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
231 if !host_is_available(env.Host) {
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
232 log.Print("skip unavailable host ", env.Host)
3
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
233 continue
0
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
234 }
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
235
1
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
236 // steps:
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
237 // upload build.tar.gz
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
238 // extract build.tar.gz on the buildenv host and run build.sh
0
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
239
1
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
240 // upload using scp
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
241 cmd := exec.Command("scp", path.Join(tmp_dir, "build.tar.gz"), env.Host+":")
2
edeb8e8e02b6 implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1
diff changeset
242 log.Print("scp: ", cmd.Args)
0
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
243 if err := cmd.Run(); err != nil {
1
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
244 log.Print("cannot copy build env to ", env.Host)
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
245 continue
0
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
246 }
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
247
1
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
248 // run build.sh
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
249 build_dir := "build"
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
250 remote_command := fmt.Sprintf("sh -c 'rm -Rf %s; mkdir -p %s; gzip -dc build.tar.gz | tar xf - -C %s ; (cd %s; ./build.sh)'", build_dir, build_dir, build_dir, build_dir)
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
251 log.Printf("host: %s: command: %s", env.Host, remote_command)
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
252
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
253 var outb, errb bytes.Buffer
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
254 cmd = exec.Command("ssh", "-t", env.Host, remote_command)
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
255 cmd.Stdout = &outb
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
256 cmd.Stderr = &errb
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
257 err := cmd.Run()
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
258 log.Printf("host: %s: stdout: %s", env.Host, outb.String())
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
259 if err != nil {
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
260 log.Print("cannot execute build.sh on buildenv host ", env.Host)
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
261 log.Print("stderr: ", errb.String())
3
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
262 continue
0
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
263 }
3
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
264
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
265 // download result
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
266 cmd.Stdout = nil
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
267 cmd.Stderr = nil
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
268 cmd = exec.Command("scp", "-r", env.Host+":"+build_dir+"/result", tmp_dir)
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
269 log.Print("scp: ", cmd.Args)
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
270 if err := cmd.Run(); err != nil {
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
271 log.Print("cannot get result from buildenv")
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
272 continue
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
273 }
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
274
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
275 // parse result
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
276 resultData, err := os.ReadFile(path.Join(tmp_dir, "result/result.json"))
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
277 if err != nil {
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
278 log.Print("cannot read result from buildenv")
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
279 continue
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
280 }
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
281
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
282 var results []Result
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
283 if err := json.Unmarshal(resultData, &results); err != nil {
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
284 log.Print("cannot parse result.json")
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
285 continue
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
286 }
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
287
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
288 log.Print(results)
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
289
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
290 success++
1
05a8e80e577e add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 0
diff changeset
291 }
0
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
292
3
9273d04a4d89 download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 2
diff changeset
293 return success
0
75d2ad4c7dee init repo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
294 }

mercurial