mirror of
				https://github.com/appleboy/drone-ssh.git
				synced 2025-10-29 00:51:15 +08:00 
			
		
		
		
	Merge d698aa5ea6 into 3932e1a754
				
					
				
			This commit is contained in:
		
						commit
						45cc916ba4
					
				
							
								
								
									
										78
									
								
								.drone.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								.drone.yml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,78 @@ | |||||||
|  | workspace: | ||||||
|  |   base: /srv/app | ||||||
|  |   path: src/github.com/appleboy/drone-ssh | ||||||
|  | 
 | ||||||
|  | pipeline: | ||||||
|  |   clone: | ||||||
|  |     image: plugins/git | ||||||
|  |     tags: true | ||||||
|  | 
 | ||||||
|  |   # restore the cache from an sftp server | ||||||
|  |   restore_cache: | ||||||
|  |     image: appleboy/drone-sftp-cache | ||||||
|  |     restore: true | ||||||
|  |     mount: [ .glide, vendor ] | ||||||
|  |     ignore_branch: true | ||||||
|  | 
 | ||||||
|  |   test: | ||||||
|  |     image: appleboy/golang-testing | ||||||
|  |     pull: true | ||||||
|  |     environment: | ||||||
|  |       TAGS: netgo | ||||||
|  |       GOPATH: /srv/app | ||||||
|  |     commands: | ||||||
|  |       - make dep_install | ||||||
|  |       - make vet | ||||||
|  |       - make lint | ||||||
|  |       - make test | ||||||
|  |       - make coverage | ||||||
|  |       - make build | ||||||
|  |       # build binary for docker image | ||||||
|  |       - make static_build | ||||||
|  |     when: | ||||||
|  |       event: [ push, tag, pull_request ] | ||||||
|  | 
 | ||||||
|  |   release: | ||||||
|  |     image: appleboy/golang-testing | ||||||
|  |     pull: true | ||||||
|  |     environment: | ||||||
|  |       TAGS: netgo | ||||||
|  |       GOPATH: /srv/app | ||||||
|  |     commands: | ||||||
|  |       - make release | ||||||
|  |     when: | ||||||
|  |       event: [ tag ] | ||||||
|  |       branch: [ refs/tags/* ] | ||||||
|  | 
 | ||||||
|  |   publish_tag: | ||||||
|  |     image: plugins/docker | ||||||
|  |     repo: ${DRONE_REPO} | ||||||
|  |     tags: [ '${DRONE_TAG}' ] | ||||||
|  |     when: | ||||||
|  |       event: [ tag ] | ||||||
|  |       branch: [ refs/tags/* ] | ||||||
|  | 
 | ||||||
|  |   publish_latest: | ||||||
|  |     image: plugins/docker | ||||||
|  |     repo: ${DRONE_REPO} | ||||||
|  |     tags: [ 'latest' ] | ||||||
|  |     when: | ||||||
|  |       event: [ push ] | ||||||
|  |       branch: [ master ] | ||||||
|  | 
 | ||||||
|  |   release: | ||||||
|  |     image: plugins/github-release | ||||||
|  |     files: | ||||||
|  |       - dist/release/* | ||||||
|  |     when: | ||||||
|  |       event: [ tag ] | ||||||
|  |       branch: [ refs/tags/* ] | ||||||
|  | 
 | ||||||
|  |   # rebuild the cache on the sftp server | ||||||
|  |   rebuild_cache: | ||||||
|  |     image: appleboy/drone-sftp-cache | ||||||
|  |     rebuild: true | ||||||
|  |     mount: [ .glide, vendor ] | ||||||
|  |     ignore_branch: true | ||||||
|  |     when: | ||||||
|  |       branch: master | ||||||
							
								
								
									
										1
									
								
								.drone.yml.sig
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								.drone.yml.sig
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | |||||||
|  | eyJhbGciOiJIUzI1NiJ9.d29ya3NwYWNlOgogIGJhc2U6IC9zcnYvYXBwCiAgcGF0aDogc3JjL2dpdGh1Yi5jb20vYXBwbGVib3kvZHJvbmUtc3NoCgpwaXBlbGluZToKICBjbG9uZToKICAgIGltYWdlOiBwbHVnaW5zL2dpdAogICAgdGFnczogdHJ1ZQoKICAjIHJlc3RvcmUgdGhlIGNhY2hlIGZyb20gYW4gc2Z0cCBzZXJ2ZXIKICByZXN0b3JlX2NhY2hlOgogICAgaW1hZ2U6IGFwcGxlYm95L2Ryb25lLXNmdHAtY2FjaGUKICAgIHJlc3RvcmU6IHRydWUKICAgIG1vdW50OiBbIC5nbGlkZSwgdmVuZG9yIF0KICAgIGlnbm9yZV9icmFuY2g6IHRydWUKCiAgdGVzdDoKICAgIGltYWdlOiBhcHBsZWJveS9nb2xhbmctdGVzdGluZwogICAgcHVsbDogdHJ1ZQogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRBR1M6IG5ldGdvCiAgICAgIEdPUEFUSDogL3Nydi9hcHAKICAgIGNvbW1hbmRzOgogICAgICAtIG1ha2UgZGVwX2luc3RhbGwKICAgICAgLSBtYWtlIHZldAogICAgICAtIG1ha2UgbGludAogICAgICAtIG1ha2UgdGVzdAogICAgICAtIG1ha2UgY292ZXJhZ2UKICAgICAgLSBtYWtlIGJ1aWxkCiAgICAgICMgYnVpbGQgYmluYXJ5IGZvciBkb2NrZXIgaW1hZ2UKICAgICAgLSBtYWtlIHN0YXRpY19idWlsZAogICAgd2hlbjoKICAgICAgZXZlbnQ6IFsgcHVzaCwgdGFnLCBwdWxsX3JlcXVlc3QgXQoKICByZWxlYXNlOgogICAgaW1hZ2U6IGFwcGxlYm95L2dvbGFuZy10ZXN0aW5nCiAgICBwdWxsOiB0cnVlCiAgICBlbnZpcm9ubWVudDoKICAgICAgVEFHUzogbmV0Z28KICAgICAgR09QQVRIOiAvc3J2L2FwcAogICAgY29tbWFuZHM6CiAgICAgIC0gbWFrZSByZWxlYXNlCiAgICB3aGVuOgogICAgICBldmVudDogWyB0YWcgXQogICAgICBicmFuY2g6IFsgcmVmcy90YWdzLyogXQoKICBwdWJsaXNoX3RhZzoKICAgIGltYWdlOiBwbHVnaW5zL2RvY2tlcgogICAgcmVwbzogJHtEUk9ORV9SRVBPfQogICAgdGFnczogWyAnJHtEUk9ORV9UQUd9JyBdCiAgICB3aGVuOgogICAgICBldmVudDogWyB0YWcgXQogICAgICBicmFuY2g6IFsgcmVmcy90YWdzLyogXQoKICBwdWJsaXNoX2xhdGVzdDoKICAgIGltYWdlOiBwbHVnaW5zL2RvY2tlcgogICAgcmVwbzogJHtEUk9ORV9SRVBPfQogICAgdGFnczogWyAnbGF0ZXN0JyBdCiAgICB3aGVuOgogICAgICBldmVudDogWyBwdXNoIF0KICAgICAgYnJhbmNoOiBbIG1hc3RlciBdCgogIHJlbGVhc2U6CiAgICBpbWFnZTogcGx1Z2lucy9naXRodWItcmVsZWFzZQogICAgZmlsZXM6CiAgICAgIC0gZGlzdC9yZWxlYXNlLyoKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbIHRhZyBdCiAgICAgIGJyYW5jaDogWyByZWZzL3RhZ3MvKiBdCgogICMgcmVidWlsZCB0aGUgY2FjaGUgb24gdGhlIHNmdHAgc2VydmVyCiAgcmVidWlsZF9jYWNoZToKICAgIGltYWdlOiBhcHBsZWJveS9kcm9uZS1zZnRwLWNhY2hlCiAgICByZWJ1aWxkOiB0cnVlCiAgICBtb3VudDogWyAuZ2xpZGUsIHZlbmRvciBdCiAgICBpZ25vcmVfYnJhbmNoOiB0cnVlCiAgICB3aGVuOgogICAgICBicmFuY2g6IG1hc3Rlcgo.MvA91xJBP4JoAxLObpbaumlNtzjO_Gc3znDbTRUjAGY | ||||||
							
								
								
									
										18
									
								
								glide.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										18
									
								
								glide.lock
									
									
									
										generated
									
									
									
								
							| @ -1,10 +1,14 @@ | |||||||
| hash: fa5c3a4bf7b53b8e4cbbb43fb8a33447fc7d67f8cdd7bb8a27ff66e2d0dac47a | hash: 0c9184ed3a3b510feedfeb4fa4a119bdfa1a88b5dcfe9977944817a512958d44 | ||||||
| updated: 2017-01-23T09:33:16.187136258+08:00 | updated: 2017-01-23T10:04:51.354467848+08:00 | ||||||
| imports: | imports: | ||||||
| - name: github.com/joho/godotenv | - name: github.com/joho/godotenv | ||||||
|   version: a01a834e1654b4c9ca5b3ad05159445cc9c7ad08 |   version: a01a834e1654b4c9ca5b3ad05159445cc9c7ad08 | ||||||
|   subpackages: |   subpackages: | ||||||
|   - autoload |   - autoload | ||||||
|  | - name: github.com/stretchr/testify | ||||||
|  |   version: 69483b4bd14f5845b5a1e55bca19e954e827f1d0 | ||||||
|  |   subpackages: | ||||||
|  |   - assert | ||||||
| - name: github.com/urfave/cli | - name: github.com/urfave/cli | ||||||
|   version: 0bdeddeeb0f650497d603c4ad7b20cfe685682f6 |   version: 0bdeddeeb0f650497d603c4ad7b20cfe685682f6 | ||||||
| - name: golang.org/x/crypto | - name: golang.org/x/crypto | ||||||
| @ -14,4 +18,12 @@ imports: | |||||||
|   - ed25519 |   - ed25519 | ||||||
|   - ed25519/internal/edwards25519 |   - ed25519/internal/edwards25519 | ||||||
|   - ssh |   - ssh | ||||||
| testImports: [] | testImports: | ||||||
|  | - name: github.com/davecgh/go-spew | ||||||
|  |   version: 6d212800a42e8ab5c146b8ace3490ee17e5225f9 | ||||||
|  |   subpackages: | ||||||
|  |   - spew | ||||||
|  | - name: github.com/pmezard/go-difflib | ||||||
|  |   version: d8ed2627bdf02c080bf22230dbb337003b7aba2d | ||||||
|  |   subpackages: | ||||||
|  |   - difflib | ||||||
|  | |||||||
| @ -9,3 +9,7 @@ import: | |||||||
| - package: golang.org/x/crypto | - package: golang.org/x/crypto | ||||||
|   subpackages: |   subpackages: | ||||||
|   - ssh |   - ssh | ||||||
|  | - package: github.com/stretchr/testify | ||||||
|  |   version: ^1.1.4 | ||||||
|  |   subpackages: | ||||||
|  |   - assert | ||||||
|  | |||||||
							
								
								
									
										12
									
								
								plugin.go
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								plugin.go
									
									
									
									
									
								
							| @ -1,17 +1,19 @@ | |||||||
| package main | package main | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"fmt" | 	"log" | ||||||
| 	"net" | 	"net" | ||||||
| 	"os" | 	"os" | ||||||
| 	"strconv" | 	"strconv" | ||||||
| 	"strings" | 	"strings" | ||||||
| 	"time" | 	"time" | ||||||
| 
 | 
 | ||||||
|  | 	"fmt" | ||||||
| 	"golang.org/x/crypto/ssh" | 	"golang.org/x/crypto/ssh" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| type ( | type ( | ||||||
|  | 	// Config for the plugin.
 | ||||||
| 	Config struct { | 	Config struct { | ||||||
| 		Key      string | 		Key      string | ||||||
| 		User     string | 		User     string | ||||||
| @ -23,14 +25,16 @@ type ( | |||||||
| 		Script   []string | 		Script   []string | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	// Plugin structure
 | ||||||
| 	Plugin struct { | 	Plugin struct { | ||||||
| 		Config Config | 		Config Config | ||||||
| 	} | 	} | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  | // Exec executes the plugin.
 | ||||||
| func (p Plugin) Exec() error { | func (p Plugin) Exec() error { | ||||||
| 	if p.Config.Key == "" && p.Config.Password == "" { | 	if p.Config.Key == "" && p.Config.Password == "" { | ||||||
| 		return fmt.Errorf("Error: Can't connect without a private SSH key or password.") | 		return fmt.Errorf("Error: can't connect without a private SSH key or password") | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	for i, host := range p.Config.Host { | 	for i, host := range p.Config.Host { | ||||||
| @ -63,7 +67,7 @@ func (p Plugin) Exec() error { | |||||||
| 			Auth:    auths, | 			Auth:    auths, | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		fmt.Printf("+ ssh %s@%s -p %d\n", p.Config.User, addr, p.Config.Port) | 		log.Printf("+ ssh %s@%s -p %d\n", p.Config.User, addr, p.Config.Port) | ||||||
| 		client, err := ssh.Dial("tcp", addr, config) | 		client, err := ssh.Dial("tcp", addr, config) | ||||||
| 
 | 
 | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| @ -86,7 +90,7 @@ func (p Plugin) Exec() error { | |||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if p.Config.Sleep != 0 && i != len(p.Config.Host)-1 { | 		if p.Config.Sleep != 0 && i != len(p.Config.Host)-1 { | ||||||
| 			fmt.Printf("+ sleep %d\n", p.Config.Sleep) | 			log.Printf("+ sleep %d\n", p.Config.Sleep) | ||||||
| 			time.Sleep(time.Duration(p.Config.Sleep) * time.Second) | 			time.Sleep(time.Duration(p.Config.Sleep) * time.Second) | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Bo-Yi Wu
						Bo-Yi Wu