diff --git a/.drone.yml b/.drone.yml index 25758e0..aad1c16 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,93 +1,69 @@ --- kind: pipeline name: testing - platform: - os: linux arch: amd64 - + os: linux steps: -- name: vet - pull: always - image: golang:1.16 - commands: +- commands: - make vet + image: golang:1.18 + name: vet + pull: always volumes: - name: gopath path: /go - -- name: lint +- image: robertstettner/drone-codecov + name: codecov pull: always - image: golang:1.16 - commands: - - make lint - volumes: - - name: gopath - path: /go - -- name: misspell - pull: always - image: golang:1.16 - commands: - - make misspell-check - volumes: - - name: gopath - path: /go - -- name: codecov - pull: always - image: robertstettner/drone-codecov settings: token: from_secret: codecov_token - volumes: - name: gopath temp: {} - --- +depends_on: +- testing kind: pipeline name: linux-amd64 - platform: - os: linux arch: amd64 - + os: linux steps: -- name: build-push - pull: always - image: golang:1.16 - commands: +- commands: - go build -v -ldflags '-X main.build=${DRONE_BUILD_NUMBER}' -a -o release/linux/amd64/drone-scp environment: - CGO_ENABLED: 0 + CGO_ENABLED: "0" + image: golang:1.18 + name: build-push + pull: always when: event: exclude: - tag - -- name: build-tag - pull: always - image: golang:1.16 - commands: - - go build -v -ldflags '-X main.version=${DRONE_TAG##v} -X main.build=${DRONE_BUILD_NUMBER}' -a -o release/linux/amd64/drone-scp +- commands: + - go build -v -ldflags '-X main.version=${DRONE_TAG##v} -X main.build=${DRONE_BUILD_NUMBER}' + -a -o release/linux/amd64/drone-scp environment: - CGO_ENABLED: 0 + CGO_ENABLED: "0" + image: golang:1.18 + name: build-tag + pull: always when: event: - tag - -- name: executable - pull: always - image: golang:1.16 - commands: +- commands: - ./release/linux/amd64/drone-scp --help - -- name: dryrun + image: golang:1.18 + name: executable + pull: always +- image: plugins/docker:linux-amd64 + name: dryrun pull: always - image: plugins/docker:linux-amd64 settings: cache_from: appleboy/drone-scp + daemon_off: false dockerfile: docker/Dockerfile.linux.amd64 dry_run: true repo: appleboy/drone-scp @@ -95,15 +71,14 @@ steps: when: event: - pull_request - -- name: publish +- image: plugins/docker:linux-amd64 + name: publish pull: always - image: plugins/docker:linux-amd64 settings: auto_tag: true auto_tag_suffix: linux-amd64 cache_from: appleboy/drone-scp - daemon_off: false + daemon_off: "false" dockerfile: docker/Dockerfile.linux.amd64 password: from_secret: docker_password @@ -114,59 +89,53 @@ steps: event: exclude: - pull_request - trigger: ref: - refs/heads/master - refs/pull/** - refs/tags/** - +--- depends_on: - testing - ---- kind: pipeline name: linux-arm64 - platform: - os: linux arch: arm64 - + os: linux steps: -- name: build-push - pull: always - image: golang:1.16 - commands: +- commands: - go build -v -ldflags '-X main.build=${DRONE_BUILD_NUMBER}' -a -o release/linux/arm64/drone-scp environment: - CGO_ENABLED: 0 + CGO_ENABLED: "0" + image: golang:1.18 + name: build-push + pull: always when: event: exclude: - tag - -- name: build-tag - pull: always - image: golang:1.16 - commands: - - go build -v -ldflags '-X main.version=${DRONE_TAG##v} -X main.build=${DRONE_BUILD_NUMBER}' -a -o release/linux/arm64/drone-scp +- commands: + - go build -v -ldflags '-X main.version=${DRONE_TAG##v} -X main.build=${DRONE_BUILD_NUMBER}' + -a -o release/linux/arm64/drone-scp environment: - CGO_ENABLED: 0 + CGO_ENABLED: "0" + image: golang:1.18 + name: build-tag + pull: always when: event: - tag - -- name: executable - pull: always - image: golang:1.16 - commands: +- commands: - ./release/linux/arm64/drone-scp --help - -- name: dryrun + image: golang:1.18 + name: executable + pull: always +- image: plugins/docker:linux-arm64 + name: dryrun pull: always - image: plugins/docker:linux-arm64 settings: cache_from: appleboy/drone-scp + daemon_off: false dockerfile: docker/Dockerfile.linux.arm64 dry_run: true repo: appleboy/drone-scp @@ -174,15 +143,14 @@ steps: when: event: - pull_request - -- name: publish +- image: plugins/docker:linux-arm64 + name: publish pull: always - image: plugins/docker:linux-arm64 settings: auto_tag: true auto_tag_suffix: linux-arm64 cache_from: appleboy/drone-scp - daemon_off: false + daemon_off: "false" dockerfile: docker/Dockerfile.linux.arm64 password: from_secret: docker_password @@ -193,59 +161,53 @@ steps: event: exclude: - pull_request - trigger: ref: - refs/heads/master - refs/pull/** - refs/tags/** - +--- depends_on: - testing - ---- kind: pipeline name: linux-arm - platform: - os: linux arch: arm - + os: linux steps: -- name: build-push - pull: always - image: golang:1.16 - commands: +- commands: - go build -v -ldflags '-X main.build=${DRONE_BUILD_NUMBER}' -a -o release/linux/arm/drone-scp environment: - CGO_ENABLED: 0 + CGO_ENABLED: "0" + image: golang:1.18 + name: build-push + pull: always when: event: exclude: - tag - -- name: build-tag - pull: always - image: golang:1.16 - commands: - - go build -v -ldflags '-X main.version=${DRONE_TAG##v} -X main.build=${DRONE_BUILD_NUMBER}' -a -o release/linux/arm/drone-scp +- commands: + - go build -v -ldflags '-X main.version=${DRONE_TAG##v} -X main.build=${DRONE_BUILD_NUMBER}' + -a -o release/linux/arm/drone-scp environment: - CGO_ENABLED: 0 + CGO_ENABLED: "0" + image: golang:1.18 + name: build-tag + pull: always when: event: - tag - -- name: executable - pull: always - image: golang:1.16 - commands: +- commands: - ./release/linux/arm/drone-scp --help - -- name: dryrun + image: golang:1.18 + name: executable + pull: always +- image: plugins/docker:linux-arm + name: dryrun pull: always - image: plugins/docker:linux-arm settings: cache_from: appleboy/drone-scp + daemon_off: false dockerfile: docker/Dockerfile.linux.arm dry_run: true repo: appleboy/drone-scp @@ -253,15 +215,14 @@ steps: when: event: - pull_request - -- name: publish +- image: plugins/docker:linux-arm + name: publish pull: always - image: plugins/docker:linux-arm settings: auto_tag: true auto_tag_suffix: linux-arm cache_from: appleboy/drone-scp - daemon_off: false + daemon_off: "false" dockerfile: docker/Dockerfile.linux.arm password: from_secret: docker_password @@ -272,37 +233,31 @@ steps: event: exclude: - pull_request - trigger: ref: - refs/heads/master - refs/pull/** - refs/tags/** - +--- depends_on: - testing - ---- kind: pipeline name: release-binary - platform: - os: linux arch: amd64 - + os: linux steps: -- name: build-all-binary - pull: always - image: golang:1.16 - commands: +- commands: - make release + image: golang:1.18 + name: build-all-binary + pull: always when: event: - tag - -- name: deploy-all-binary +- image: plugins/github-release + name: deploy-all-binary pull: always - image: plugins/github-release settings: api_key: from_secret: github_release_api_key @@ -311,26 +266,24 @@ steps: when: event: - tag - trigger: ref: - refs/tags/** - -depends_on: -- testing - --- +depends_on: +- linux-amd64 +- linux-arm64 +- linux-arm +- release-binary kind: pipeline name: notifications - platform: - os: linux arch: amd64 - + os: linux steps: -- name: manifest +- image: plugins/manifest + name: manifest pull: always - image: plugins/manifest settings: ignore_missing: true password: @@ -338,16 +291,7 @@ steps: spec: docker/manifest.tmpl username: from_secret: docker_username - trigger: ref: - refs/heads/master - refs/tags/** - -depends_on: -- linux-amd64 -- linux-arm64 -- linux-arm -- release-binary - -... diff --git a/Makefile b/Makefile index e9127ba..55b9830 100644 --- a/Makefile +++ b/Makefile @@ -35,24 +35,10 @@ vet: lint: @hash revive > /dev/null 2>&1; if [ $$? -ne 0 ]; then \ - $(GO) get -u github.com/mgechev/revive; \ + $(GO) install github.com/mgechev/revive; \ fi revive -config .revive.toml ./... || exit 1 -.PHONY: misspell-check -misspell-check: - @hash misspell > /dev/null 2>&1; if [ $$? -ne 0 ]; then \ - $(GO) get -u github.com/client9/misspell/cmd/misspell; \ - fi - misspell -error $(SOURCES) - -.PHONY: misspell -misspell: - @hash misspell > /dev/null 2>&1; if [ $$? -ne 0 ]; then \ - $(GO) get -u github.com/client9/misspell/cmd/misspell; \ - fi - misspell -w $(SOURCES) - .PHONY: fmt-check fmt-check: @diff=$$($(GOFMT) -d $(SOURCES)); \ @@ -80,7 +66,7 @@ release-dirs: release-build: @which gox > /dev/null; if [ $$? -ne 0 ]; then \ - $(GO) get -u github.com/mitchellh/gox; \ + $(GO) install github.com/mitchellh/gox; \ fi gox -os="$(TARGETS)" -arch="$(ARCHS)" -tags="$(TAGS)" -ldflags="-s -w $(LDFLAGS)" -output="$(DIST)/binaries/$(EXECUTABLE)-$(VERSION)-{{.OS}}-{{.Arch}}" diff --git a/go.mod b/go.mod index 438eafe..7371b6b 100644 --- a/go.mod +++ b/go.mod @@ -1,13 +1,27 @@ module github.com/appleboy/drone-scp -go 1.14 +go 1.18 require ( - github.com/appleboy/com v0.1.5 + github.com/appleboy/com v0.1.6 github.com/appleboy/easyssh-proxy v1.3.9 github.com/fatih/color v1.9.0 github.com/joho/godotenv v1.4.0 github.com/stretchr/testify v1.7.0 - github.com/urfave/cli/v2 v2.3.0 - golang.org/x/crypto v0.0.0-20201208171446-5f87f3452ae9 + github.com/urfave/cli/v2 v2.8.1 + golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e +) + +require ( + github.com/ScaleFT/sshkeys v0.0.0-20200327173127-6142f742bca5 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.1 // indirect + github.com/davecgh/go-spew v1.1.0 // indirect + github.com/dchest/bcrypt_pbkdf v0.0.0-20150205184540-83f37f9c154a // indirect + github.com/mattn/go-colorable v0.1.4 // indirect + github.com/mattn/go-isatty v0.0.11 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/russross/blackfriday/v2 v2.1.0 // indirect + github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect + golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1 // indirect + gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c // indirect ) diff --git a/go.sum b/go.sum index 212d708..6ae2a46 100644 --- a/go.sum +++ b/go.sum @@ -1,12 +1,11 @@ -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/ScaleFT/sshkeys v0.0.0-20200327173127-6142f742bca5 h1:VauE2GcJNZFun2Och6tIT2zJZK1v6jxALQDA9BIji/E= github.com/ScaleFT/sshkeys v0.0.0-20200327173127-6142f742bca5/go.mod h1:gxOHeajFfvGQh/fxlC8oOKBe23xnnJTif00IFFbiT+o= -github.com/appleboy/com v0.1.5 h1:MNWkTSBtEN+YaQO4IGCTQ8xfMvf3h57LLnUNTmCfDDM= -github.com/appleboy/com v0.1.5/go.mod h1:jnufjIC3opMlReyPPPye+8JqNvUzLm25o7h6SOy8nv0= +github.com/appleboy/com v0.1.6 h1:vP9ryTIbSFaXSrZcFTU7RRcgPbrpGJ0Oy5wpgEkQ2m8= +github.com/appleboy/com v0.1.6/go.mod h1:jnufjIC3opMlReyPPPye+8JqNvUzLm25o7h6SOy8nv0= github.com/appleboy/easyssh-proxy v1.3.9 h1:b+sVSTz+cVFvfA23HQywMMpm0s5g3gH7jYdBcQqaCQI= github.com/appleboy/easyssh-proxy v1.3.9/go.mod h1:G1eQomBEME7NWKA3hE49s5HsT44S5fn0aBxX7k9Yjug= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d h1:U+s90UTSYgptZMwQh2aRr3LuazLJIa+Pg3Kc1ylSYVY= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/cpuguy83/go-md2man/v2 v2.0.1 h1:r/myEWzV9lfsM1tFLgDyu0atFtJ1fXn261LKYj/3DxU= +github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dchest/bcrypt_pbkdf v0.0.0-20150205184540-83f37f9c154a h1:saTgr5tMLFnmy/yg3qDTft4rE5DY2uJ/cCxCe3q0XTU= @@ -22,34 +21,35 @@ github.com/mattn/go-isatty v0.0.11 h1:FxPOTFNqGkuDUGi3H/qkUbQO4ZiBa2brKq5r0l8TGe github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/urfave/cli/v2 v2.3.0 h1:qph92Y649prgesehzOrQjdWyxFOp/QVM+6imKHad91M= -github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= +github.com/urfave/cli/v2 v2.8.1 h1:CGuYNZF9IKZY/rfBe3lJpccSoIY1ytfvmgQT90cNOl4= +github.com/urfave/cli/v2 v2.8.1/go.mod h1:Z41J9TPoffeoqP0Iza0YbAhGvymRdZAd2uPmZ5JxRdY= +github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= +github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201208171446-5f87f3452ae9 h1:sYNJzB4J8toYPQTM6pAkcmBRgw9SnQKP9oXCHfgy604= golang.org/x/crypto v0.0.0-20201208171446-5f87f3452ae9/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= +golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e h1:T8NU3HyQ8ClP4SEE+KbFlg6n0NhuTsN4MyznaarGsZM= +golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200219091948-cb0a6d8edb6c h1:jceGD5YNJGgGMkJz79agzOln1K9TaZUjv5ird16qniQ= golang.org/x/sys v0.0.0-20200219091948-cb0a6d8edb6c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/term v0.0.0-20201117132131-f5c789dd3221 h1:/ZHdbVpdR/jk3g30/d4yUL0JU9kksj8+F/bnQUVLGDM= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1 h1:SrN+KX8Art/Sf4HNj6Zcz06G7VEz+7w9tdXTPOZ7+l4= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/pipeline.libsonnet b/pipeline.libsonnet index 8e4d72d..6ad7c1d 100644 --- a/pipeline.libsonnet +++ b/pipeline.libsonnet @@ -9,7 +9,7 @@ steps: [ { name: 'vet', - image: 'golang:1.16', + image: 'golang:1.18', pull: 'always', commands: [ 'make vet', @@ -21,37 +21,9 @@ }, ], }, - { - name: 'lint', - image: 'golang:1.16', - pull: 'always', - commands: [ - 'make lint', - ], - volumes: [ - { - name: 'gopath', - path: '/go', - }, - ], - }, - { - name: 'misspell', - image: 'golang:1.16', - pull: 'always', - commands: [ - 'make misspell-check', - ], - volumes: [ - { - name: 'gopath', - path: '/go', - }, - ], - }, // { // name: 'test', - // image: 'golang:1.16-alpine', + // image: 'golang:1.18-alpine', // pull: 'always', // commands: [ // 'apk add git make curl perl bash build-base zlib-dev ucl-dev', @@ -93,7 +65,7 @@ steps: [ { name: 'build-push', - image: 'golang:1.16', + image: 'golang:1.18', pull: 'always', environment: { CGO_ENABLED: '0', @@ -109,7 +81,7 @@ }, { name: 'build-tag', - image: 'golang:1.16', + image: 'golang:1.18', pull: 'always', environment: { CGO_ENABLED: '0', @@ -123,7 +95,7 @@ }, { name: 'executable', - image: 'golang:1.16', + image: 'golang:1.18', pull: 'always', commands: [ './release/' + os + '/' + arch + '/' + name + ' --help', @@ -188,7 +160,7 @@ steps: [ { name: 'build-all-binary', - image: 'golang:1.16', + image: 'golang:1.18', pull: 'always', commands: [ 'make release'