mirror of
https://gitea.com/gitea/act_runner.git
synced 2025-06-16 19:47:13 +02:00
Clarify labels (#69)
The label will follow the format `label[:schema[:args]]`, and the schema will be `host` if it's omitted. So - `ubuntu:docker://node:18`: Run jobs with label `ubuntu` via docker with image `node:18` - `ubuntu:host`: Run jobs with label `ubuntu` on the host directly. - `ubuntu`: Same as `ubuntu:host`. - `ubuntu:vm:ubuntu-latest`: (Just a example, not Implemented) Run jobs with label `ubuntu` via virtual machine with iso `ubuntu-latest`. Reviewed-on: https://gitea.com/gitea/act_runner/pulls/69 Reviewed-by: Zettat123 <zettat123@noreply.gitea.io> Reviewed-by: wxiaoguang <wxiaoguang@noreply.gitea.io>
This commit is contained in:
26
runtime/label.go
Normal file
26
runtime/label.go
Normal file
@ -0,0 +1,26 @@
|
||||
// Copyright 2023 The Gitea Authors. All rights reserved.
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
package runtime
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func ParseLabel(str string) (label, schema, arg string, err error) {
|
||||
splits := strings.SplitN(str, ":", 3)
|
||||
label = splits[0]
|
||||
schema = "host"
|
||||
arg = ""
|
||||
if len(splits) >= 2 {
|
||||
schema = splits[1]
|
||||
}
|
||||
if len(splits) >= 3 {
|
||||
arg = splits[2]
|
||||
}
|
||||
if schema != "host" && schema != "docker" {
|
||||
return "", "", "", fmt.Errorf("unsupported schema: %s", schema)
|
||||
}
|
||||
return
|
||||
}
|
Reference in New Issue
Block a user