用作 cicd/ssh-action 仓库基础组件
Go to file
Bo-Yi Wu aa95c51e7f refactor(error): update error
Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
2019-03-04 14:42:28 +08:00
docker feat(vendor): switch to go module (#137) 2019-03-04 10:55:52 +08:00
images docs: update logo path 2019-03-04 14:28:19 +08:00
tests feat: add some testing. (#32) 2017-01-23 16:00:48 +08:00
.drone.jsonnet feat(vendor): switch to go module (#137) 2019-03-04 10:55:52 +08:00
.drone.yml feat(vendor): switch to go module (#137) 2019-03-04 10:55:52 +08:00
.editorconfig feat: add editor config. 2017-08-01 16:04:55 +08:00
.gitignore add arm arm64 and amd64 build. (#106) 2017-11-09 20:12:30 -06:00
DOCS.md remove unused doc. 2017-12-18 09:30:13 +08:00
go.mod chore: update go module 2019-03-04 14:27:51 +08:00
go.sum chore: update go module 2019-03-04 14:27:51 +08:00
LICENSE refactor: remove unnecessary files. 2017-01-23 09:24:28 +08:00
main.go Revert "feat: upgrade easyssh-proxy and update flag of timeout field (#127)" (#128) 2018-10-23 15:54:40 +08:00
Makefile feat(vendor): switch to go module (#137) 2019-03-04 10:55:52 +08:00
pipeline.libsonnet feat(vendor): switch to go module (#137) 2019-03-04 10:55:52 +08:00
plugin_test.go refactor(error): update error 2019-03-04 14:42:28 +08:00
plugin.go refactor(error): update error 2019-03-04 14:42:28 +08:00
README.md docs: update logo path 2019-03-04 14:28:19 +08:00

drone-ssh

GitHub tag GoDoc Build Status codecov Go Report Card Docker Pulls

Drone plugin to execute commands on a remote host through SSH. For the usage information and a listing of the available options please take a look at the docs.

Note: Please update your image config path to appleboy/drone-ssh for drone. plugins/ssh is no longer maintained.

demo

Build

Build the binary with the following commands:

go build
go test

Docker

Build the docker image with the following commands:

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -tags netgo
docker build -t appleboy/drone-ssh .

Please note incorrectly building the image for the correct x64 linux and with GCO disabled will result in an error when running the Docker image:

docker: Error response from daemon: Container command
'/bin/drone-ssh' not found or does not exist..

Usage

Execute from the working directory:

docker run --rm \
  -e PLUGIN_HOST=foo.com \
  -e PLUGIN_USERNAME=root \
  -e PLUGIN_KEY="$(cat ${HOME}/.ssh/id_rsa)" \
  -e PLUGIN_SCRIPT=whoami \
  -v $(pwd):$(pwd) \
  -w $(pwd) \
  appleboy/drone-ssh

Mount key from file path

Please make sure that enable the trusted mode in project setting for drone 0.8 version.

trusted mode

Mount private key in volumes setting of .drone.yml config

pipeline:
  ssh:
    image: appleboy/drone-ssh
    host: xxxxx.com
    username: deploy
+   volumes:
+     - /root/drone_rsa:/root/ssh/drone_rsa
    key_path: /root/ssh/drone_rsa
    script:
      - echo "test ssh"

See the detail of issue comment.