mirror of
https://github.com/appleboy/drone-ssh.git
synced 2025-05-09 18:23:21 +08:00
add sleep option
This commit is contained in:
parent
8b824ce040
commit
eb3de49441
3
DOCS.md
3
DOCS.md
@ -28,6 +28,7 @@ deploy:
|
||||
- bar.com
|
||||
user: root
|
||||
port: 22
|
||||
sleep: 5
|
||||
commands:
|
||||
- echo hello
|
||||
- echo world
|
||||
@ -35,6 +36,8 @@ deploy:
|
||||
|
||||
In the above example Drone executes the commands on multiple hosts sequentially. If the commands fail on a single host this plugin exits immediatly, and will not run your commands on the remaining hosts in the list.
|
||||
|
||||
The above example also uses the `sleep` parameter. The sleep parameter instructs Drone to sleep for N seconds between host executions.
|
||||
|
||||
## Keys
|
||||
|
||||
The plugin authenticates to your server using a per-repository SSH key generated by Drone. You can find the public key in your repository settings in Drone. You will need to copy / paste this key into your `~/.ssh/authorized_keys` file on your remote machine.
|
8
main.go
8
main.go
@ -6,6 +6,7 @@ import (
|
||||
"os"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/drone/drone-plugin-go/plugin"
|
||||
"golang.org/x/crypto/ssh"
|
||||
@ -18,6 +19,7 @@ type Params struct {
|
||||
Login string `json:"user"`
|
||||
Port int `json:"port"`
|
||||
Host StrSlice `json:"host"`
|
||||
Sleep int `json:"sleep"`
|
||||
}
|
||||
|
||||
func main() {
|
||||
@ -27,11 +29,15 @@ func main() {
|
||||
plugin.Param("vargs", &v)
|
||||
plugin.MustParse()
|
||||
|
||||
for _, host := range v.Host.Slice() {
|
||||
for i, host := range v.Host.Slice() {
|
||||
err := run(w.Keys, v, host)
|
||||
if err != nil {
|
||||
os.Exit(1)
|
||||
}
|
||||
if v.Sleep != 0 && i > v.Host.Len()-1 {
|
||||
fmt.Printf("$ sleep %d\n", v.Sleep)
|
||||
time.Sleep(time.Duration(v.Sleep) * time.Second)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user