aboutsummaryrefslogtreecommitdiff
path: root/acid.go
diff options
context:
space:
mode:
authorPřemysl Eric Janouch <p@janouch.name>2024-12-21 14:38:11 +0100
committerPřemysl Eric Janouch <p@janouch.name>2024-12-22 09:02:09 +0100
commitbd130537736d74d8d77080d9876767981df759d9 (patch)
treed62b3daad135759ff314eab129f20603d11de58b /acid.go
parent92fd2db1c17a2ec3f7bd19f0e8543ad1ef7cf92b (diff)
downloadacid-bd130537736d74d8d77080d9876767981df759d9.tar.gz
acid-bd130537736d74d8d77080d9876767981df759d9.tar.xz
acid-bd130537736d74d8d77080d9876767981df759d9.zip
Make manually invoked runners possibleorigin/master
This is intended for runners that are only available on request.
Diffstat (limited to 'acid.go')
-rw-r--r--acid.go33
1 files changed, 19 insertions, 14 deletions
diff --git a/acid.go b/acid.go
index b206057..f938d02 100644
--- a/acid.go
+++ b/acid.go
@@ -66,10 +66,11 @@ type Config struct {
}
type ConfigRunner struct {
- Name string `yaml:"name"` // descriptive name
- Run string `yaml:"run"` // runner executable
- Setup string `yaml:"setup"` // runner setup script (SSH)
- SSH struct {
+ Name string `yaml:"name"` // descriptive name
+ Manual bool `yaml:"manual"` // only run on request
+ Run string `yaml:"run"` // runner executable
+ Setup string `yaml:"setup"` // runner setup script (SSH)
+ SSH struct {
User string `yaml:"user"` // remote username
Address string `yaml:"address"` // TCP host:port
Identity string `yaml:"identity"` // private key path
@@ -80,6 +81,18 @@ type ConfigProject struct {
Runners map[string]ConfigProjectRunner `yaml:"runners"`
}
+func (cf *ConfigProject) AutomaticRunners() (runners []string) {
+ // We pass through unknown runner names,
+ // so that they can cause reference errors later.
+ for runner := range cf.Runners {
+ if r, _ := gConfig.Runners[runner]; !r.Manual {
+ runners = append(runners, runner)
+ }
+ }
+ sort.Strings(runners)
+ return
+}
+
type ConfigProjectRunner struct {
Setup string `yaml:"setup"` // project setup script (SSH)
Build string `yaml:"build"` // project build script (SSH)
@@ -379,12 +392,7 @@ func handlePush(w http.ResponseWriter, r *http.Request) {
return
}
- runners := []string{}
- for name := range project.Runners {
- runners = append(runners, name)
- }
- sort.Strings(runners)
-
+ runners := project.AutomaticRunners()
if err := createTasks(r.Context(),
event.Repository.Owner.Username, event.Repository.Name,
event.HeadCommit.ID, runners); err != nil {
@@ -493,11 +501,8 @@ func rpcEnqueue(ctx context.Context,
runners := fs.Args()[3:]
if len(runners) == 0 {
- for runner := range project.Runners {
- runners = append(runners, runner)
- }
+ runners = project.AutomaticRunners()
}
- sort.Strings(runners)
for _, runner := range runners {
if _, ok := project.Runners[runner]; !ok {