mirror of
https://github.com/cnbattle/drone-upx.git
synced 2026-06-04 18:24:03 +08:00
Compare commits
14 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f44600c18f | |||
| 9b4ed9f580 | |||
| e431ebc97e | |||
| a86f39abbb | |||
| f34695b6ae | |||
| ff652546da | |||
| 569a2a387c | |||
| 0fc4a07c24 | |||
| 1057f2939d | |||
| 2e506963cb | |||
| 14500fa9d7 | |||
| 7c2d02cc6f | |||
| 5f95c675ce | |||
| 3ffa50d418 |
+30
-95
@@ -9,7 +9,7 @@ platform:
|
||||
steps:
|
||||
- name: vet
|
||||
pull: always
|
||||
image: golang:1.14
|
||||
image: golang:1.19
|
||||
commands:
|
||||
- make vet
|
||||
volumes:
|
||||
@@ -18,7 +18,7 @@ steps:
|
||||
|
||||
- name: lint
|
||||
pull: always
|
||||
image: golang:1.14
|
||||
image: golang:1.19
|
||||
commands:
|
||||
- make lint
|
||||
volumes:
|
||||
@@ -27,7 +27,7 @@ steps:
|
||||
|
||||
- name: misspell
|
||||
pull: always
|
||||
image: golang:1.14
|
||||
image: golang:1.19
|
||||
commands:
|
||||
- make misspell-check
|
||||
volumes:
|
||||
@@ -36,7 +36,7 @@ steps:
|
||||
|
||||
- name: test
|
||||
pull: always
|
||||
image: golang:1.14
|
||||
image: golang:1.19
|
||||
commands:
|
||||
- make test
|
||||
volumes:
|
||||
@@ -58,9 +58,9 @@ platform:
|
||||
steps:
|
||||
- name: build-push
|
||||
pull: always
|
||||
image: golang:1.14
|
||||
image: golang:1.19
|
||||
commands:
|
||||
- "go build -v -ldflags '-X main.build=${DRONE_BUILD_NUMBER}' -a -o release/linux/amd64/drone-upx"
|
||||
- "go build -v -ldflags '-X main.build=${DRONE_BUILD_NUMBER}' -a -o release/linux/amd64/drone-upx-original"
|
||||
environment:
|
||||
CGO_ENABLED: 0
|
||||
when:
|
||||
@@ -70,18 +70,25 @@ steps:
|
||||
|
||||
- name: build-tag
|
||||
pull: always
|
||||
image: golang:1.14
|
||||
image: golang:1.19
|
||||
commands:
|
||||
- "go build -v -ldflags '-X main.version=${DRONE_TAG##v} -X main.build=${DRONE_BUILD_NUMBER}' -a -o release/linux/amd64/drone-upx"
|
||||
- "go build -v -ldflags '-X main.version=${DRONE_TAG##v} -X main.build=${DRONE_BUILD_NUMBER}' -a -o release/linux/amd64/drone-upx-original"
|
||||
environment:
|
||||
CGO_ENABLED: 0
|
||||
when:
|
||||
event:
|
||||
- tag
|
||||
|
||||
- name : upx
|
||||
image: cnbattle/drone-upx
|
||||
settings:
|
||||
level: 9
|
||||
save_file: ./release/linux/amd64/drone-upx
|
||||
original_file: ./release/linux/amd64/drone-upx-original
|
||||
|
||||
- name: executable
|
||||
pull: always
|
||||
image: golang:1.14
|
||||
image: golang:1.19
|
||||
commands:
|
||||
- ./release/linux/amd64/drone-upx --help
|
||||
|
||||
@@ -126,6 +133,7 @@ trigger:
|
||||
depends_on:
|
||||
- testing
|
||||
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
name: linux-arm64
|
||||
@@ -137,9 +145,9 @@ platform:
|
||||
steps:
|
||||
- name: build-push
|
||||
pull: always
|
||||
image: golang:1.14
|
||||
image: golang:1.19
|
||||
commands:
|
||||
- "go build -v -ldflags '-X main.build=${DRONE_BUILD_NUMBER}' -a -o release/linux/arm64/drone-upx"
|
||||
- "go build -v -ldflags '-X main.build=${DRONE_BUILD_NUMBER}' -a -o release/linux/arm64/drone-upx-original"
|
||||
environment:
|
||||
CGO_ENABLED: 0
|
||||
when:
|
||||
@@ -149,18 +157,25 @@ steps:
|
||||
|
||||
- name: build-tag
|
||||
pull: always
|
||||
image: golang:1.14
|
||||
image: golang:1.19
|
||||
commands:
|
||||
- "go build -v -ldflags '-X main.version=${DRONE_TAG##v} -X main.build=${DRONE_BUILD_NUMBER}' -a -o release/linux/arm64/drone-upx"
|
||||
- "go build -v -ldflags '-X main.version=${DRONE_TAG##v} -X main.build=${DRONE_BUILD_NUMBER}' -a -o release/linux/arm64/drone-upx-original"
|
||||
environment:
|
||||
CGO_ENABLED: 0
|
||||
when:
|
||||
event:
|
||||
- tag
|
||||
|
||||
- name : upx
|
||||
image: cnbattle/drone-upx
|
||||
settings:
|
||||
level: 9
|
||||
save_file: ./release/linux/arm64/drone-upx
|
||||
original_file: ./release/linux/arm64/drone-upx-original
|
||||
|
||||
- name: executable
|
||||
pull: always
|
||||
image: golang:1.14
|
||||
image: golang:1.19
|
||||
commands:
|
||||
- ./release/linux/arm64/drone-upx --help
|
||||
|
||||
@@ -205,85 +220,6 @@ trigger:
|
||||
depends_on:
|
||||
- testing
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
name: linux-arm
|
||||
|
||||
platform:
|
||||
os: linux
|
||||
arch: arm
|
||||
|
||||
steps:
|
||||
- name: build-push
|
||||
pull: always
|
||||
image: golang:1.14
|
||||
commands:
|
||||
- "go build -v -ldflags '-X main.build=${DRONE_BUILD_NUMBER}' -a -o release/linux/arm/drone-upx"
|
||||
environment:
|
||||
CGO_ENABLED: 0
|
||||
when:
|
||||
event:
|
||||
exclude:
|
||||
- tag
|
||||
|
||||
- name: build-tag
|
||||
pull: always
|
||||
image: golang:1.14
|
||||
commands:
|
||||
- "go build -v -ldflags '-X main.version=${DRONE_TAG##v} -X main.build=${DRONE_BUILD_NUMBER}' -a -o release/linux/arm/drone-upx"
|
||||
environment:
|
||||
CGO_ENABLED: 0
|
||||
when:
|
||||
event:
|
||||
- tag
|
||||
|
||||
- name: executable
|
||||
pull: always
|
||||
image: golang:1.14
|
||||
commands:
|
||||
- ./release/linux/arm/drone-upx --help
|
||||
|
||||
- name: dryrun
|
||||
pull: always
|
||||
image: plugins/docker:linux-arm
|
||||
settings:
|
||||
cache_from: cnbattle/drone-upx
|
||||
dockerfile: docker/Dockerfile.linux.arm
|
||||
dry_run: true
|
||||
repo: cnbattle/drone-upx
|
||||
tags: linux-arm
|
||||
when:
|
||||
event:
|
||||
- pull_request
|
||||
|
||||
- name: publish
|
||||
pull: always
|
||||
image: plugins/docker:linux-arm
|
||||
settings:
|
||||
auto_tag: true
|
||||
auto_tag_suffix: linux-arm
|
||||
cache_from: cnbattle/drone-upx
|
||||
daemon_off: false
|
||||
dockerfile: docker/Dockerfile.linux.arm
|
||||
password:
|
||||
from_secret: docker_password
|
||||
repo: cnbattle/drone-upx
|
||||
username:
|
||||
from_secret: docker_username
|
||||
when:
|
||||
event:
|
||||
exclude:
|
||||
- pull_request
|
||||
|
||||
trigger:
|
||||
ref:
|
||||
- refs/heads/master
|
||||
- "refs/pull/**"
|
||||
- "refs/tags/**"
|
||||
|
||||
depends_on:
|
||||
- testing
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
name: release-binary
|
||||
@@ -295,7 +231,7 @@ platform:
|
||||
steps:
|
||||
- name: build-all-binary
|
||||
pull: always
|
||||
image: golang:1.14
|
||||
image: golang:1.19
|
||||
commands:
|
||||
- make release
|
||||
when:
|
||||
@@ -349,7 +285,6 @@ trigger:
|
||||
depends_on:
|
||||
- linux-amd64
|
||||
- linux-arm64
|
||||
- linux-arm
|
||||
- release-binary
|
||||
|
||||
...
|
||||
+3
-4
@@ -1,11 +1,10 @@
|
||||
FROM alpine
|
||||
|
||||
ADD https://github.com/upx/upx/releases/download/v3.96/upx-3.96-amd64_linux.tar.xz /usr/local
|
||||
RUN xz -d -c /usr/local/upx-3.96-amd64_linux.tar.xz | tar -xOf - upx-3.96-amd64_linux/upx > /bin/upx && \
|
||||
RUN apk add --no-cache ca-certificates xz && rm -rf /var/cache/apk/*
|
||||
ADD https://github.com/upx/upx/releases/download/v4.0.0/upx-4.0.0-amd64_linux.tar.xz /usr/local
|
||||
RUN xz -d -c /usr/local/upx-4.0.0-amd64_linux.tar.xz | tar -xOf - upx-4.0.0-amd64_linux/upx > /bin/upx && \
|
||||
chmod a+x /bin/upx
|
||||
|
||||
RUN /bin/upx --help
|
||||
|
||||
ADD release/linux/amd64/drone-upx /bin/
|
||||
|
||||
ENTRYPOINT ["/bin/drone-upx"]
|
||||
|
||||
@@ -7,7 +7,7 @@ GO ?= go
|
||||
DEPLOY_ACCOUNT := cnbattle
|
||||
DEPLOY_IMAGE := $(EXECUTABLE)
|
||||
|
||||
TARGETS ?= linux darwin windows
|
||||
TARGETS ?= linux windows
|
||||
ARCHS ?= amd64 386
|
||||
SOURCES ?= $(shell find . -name "*.go" -type f)
|
||||
TAGS ?=
|
||||
@@ -35,21 +35,21 @@ 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@latest; \
|
||||
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; \
|
||||
$(GO) install github.com/client9/misspell/cmd/misspell@latest; \
|
||||
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; \
|
||||
$(GO) install github.com/client9/misspell/cmd/misspell@latest; \
|
||||
fi
|
||||
misspell -w $(SOURCES)
|
||||
|
||||
@@ -80,7 +80,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@latest; \
|
||||
fi
|
||||
gox -os="$(TARGETS)" -arch="$(ARCHS)" -tags="$(TAGS)" -ldflags="-s -w $(LDFLAGS)" -output="$(DIST)/binaries/$(EXECUTABLE)-$(VERSION)-{{.OS}}-{{.Arch}}"
|
||||
|
||||
|
||||
@@ -1,16 +1,18 @@
|
||||
# drone-upx
|
||||
|
||||
[](https://cloud.drone.io/cnbattle/drone-upx)
|
||||
[](https://github.com/cnbattle/drone-upx)
|
||||
[](https://github.com/cnbattle/drone-upx)
|
||||
[](https://goreportcard.com/report/github.com/cnbattle/drone-upx)
|
||||
[](https://img.shields.io/docker/pulls/cnbattle/drone-upx.svg)
|
||||
[](https://godoc.org/github.com/cnbattle/drone-upx)
|
||||
[](https://github.com/996icu/996.ICU/blob/master/LICENSE)
|
||||
[](https://github.com/996icu/996.ICU/blob/master/LICENSE)
|
||||
|
||||
## Use
|
||||
```
|
||||
- name : upx
|
||||
image: cnbattle/drone-upx
|
||||
settings:
|
||||
level: 9
|
||||
save_file: ./server_upx
|
||||
original_file: ./server_original
|
||||
level: 9 //default 5
|
||||
save_file: ./executable_upx_file
|
||||
original_file: ./executable_original_file
|
||||
```
|
||||
+15
-13
@@ -1,3 +1,4 @@
|
||||
// Package cmd cmd
|
||||
package cmd
|
||||
|
||||
import (
|
||||
@@ -6,19 +7,20 @@ import (
|
||||
"os/exec"
|
||||
)
|
||||
|
||||
// Cmd Cmd
|
||||
func Cmd(name string, arg ...string) {
|
||||
fmt.Println(name, arg)
|
||||
cmd0 := exec.Command(name, arg...)
|
||||
var outputBuf1 bytes.Buffer
|
||||
cmd0.Stdout = &outputBuf1
|
||||
if err := cmd0.Start(); err != nil {
|
||||
fmt.Printf("Error: The first command can not be startup %s\n", err)
|
||||
return
|
||||
// Cmd exec.Command
|
||||
func Cmd(name string, arg ...string) error {
|
||||
command := exec.Command(name, arg...)
|
||||
var buffer bytes.Buffer
|
||||
command.Stdout = &buffer
|
||||
if err := command.Start(); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := cmd0.Wait(); err != nil {
|
||||
fmt.Printf("Error: Couldn't wait for the second command: %s\n", err)
|
||||
return
|
||||
if err := command.Wait(); err != nil {
|
||||
return err
|
||||
}
|
||||
fmt.Printf("%s\n", outputBuf1.Bytes())
|
||||
fmt.Printf("%s", buffer.Bytes())
|
||||
fmt.Println("===================================================")
|
||||
fmt.Println(" Successfully ")
|
||||
fmt.Println("===================================================")
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
FROM plugins/base:linux-amd64
|
||||
|
||||
ADD https://github.com/upx/upx/releases/download/v3.96/upx-3.96-amd64_linux.tar.xz /usr/local
|
||||
RUN xz -d -c /usr/local/upx-3.96-amd64_linux.tar.xz | tar -xOf - upx-3.96-amd64_linux/upx > /bin/upx && \
|
||||
RUN apk add --no-cache ca-certificates xz && rm -rf /var/cache/apk/*
|
||||
ADD https://github.com/upx/upx/releases/download/v4.0.0/upx-4.0.0-amd64_linux.tar.xz /usr/local
|
||||
RUN xz -d -c /usr/local/upx-4.0.0-amd64_linux.tar.xz | tar -xOf - upx-4.0.0-amd64_linux/upx > /bin/upx && \
|
||||
chmod a+x /bin/upx
|
||||
|
||||
RUN apk add --no-cache ca-certificates && \
|
||||
rm -rf /var/cache/apk/*
|
||||
|
||||
COPY release/linux/amd64/drone-upx /bin/
|
||||
|
||||
ENTRYPOINT ["/bin/drone-upx"]
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
FROM plugins/base:linux-arm
|
||||
|
||||
ADD https://github.com/upx/upx/releases/download/v3.96/upx-3.96-amd64_linux.tar.xz /usr/local
|
||||
RUN xz -d -c /usr/local/upx-3.96-amd64_linux.tar.xz | tar -xOf - upx-3.96-amd64_linux/upx > /bin/upx && \
|
||||
chmod a+x /bin/upx
|
||||
|
||||
RUN apk add --no-cache ca-certificates && \
|
||||
rm -rf /var/cache/apk/*
|
||||
|
||||
COPY release/linux/arm/drone-upx /bin/
|
||||
ENTRYPOINT ["/bin/drone-upx"]
|
||||
@@ -1,11 +1,10 @@
|
||||
FROM plugins/base:linux-arm64
|
||||
|
||||
ADD https://github.com/upx/upx/releases/download/v3.96/upx-3.96-amd64_linux.tar.xz /usr/local
|
||||
RUN xz -d -c /usr/local/upx-3.96-amd64_linux.tar.xz | tar -xOf - upx-3.96-amd64_linux/upx > /bin/upx && \
|
||||
RUN apk add --no-cache ca-certificates xz && rm -rf /var/cache/apk/*
|
||||
ADD https://github.com/upx/upx/releases/download/v4.0.0/upx-4.0.0-arm64_linux.tar.xz /usr/local
|
||||
RUN xz -d -c /usr/local/upx-4.0.0-arm64_linux.tar.xz | tar -xOf - upx-4.0.0-arm64_linux/upx > /bin/upx && \
|
||||
chmod a+x /bin/upx
|
||||
|
||||
RUN apk add --no-cache ca-certificates && \
|
||||
rm -rf /var/cache/apk/*
|
||||
|
||||
COPY release/linux/arm64/drone-upx /bin/
|
||||
|
||||
ENTRYPOINT ["/bin/drone-upx"]
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
FROM microsoft/nanoserver:10.0.14393.1884
|
||||
|
||||
ADD https://github.com/upx/upx/releases/download/v3.96/upx-3.96-amd64_linux.tar.xz /usr/local
|
||||
RUN xz -d -c /usr/local/upx-3.96-amd64_linux.tar.xz | tar -xOf - upx-3.96-amd64_linux/upx > /bin/upx && \
|
||||
chmod a+x /bin/upx
|
||||
|
||||
COPY drone-upx.exe /drone-upx.exe
|
||||
|
||||
ENTRYPOINT [ "\\drone-upx.exe" ]
|
||||
@@ -17,9 +17,3 @@ manifests:
|
||||
architecture: arm64
|
||||
os: linux
|
||||
variant: v8
|
||||
-
|
||||
image: cnbattle/drone-upx:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-arm
|
||||
platform:
|
||||
architecture: arm
|
||||
os: linux
|
||||
variant: v7
|
||||
|
||||
+56
-10
@@ -1,22 +1,68 @@
|
||||
// Package cmd main
|
||||
package main
|
||||
|
||||
import (
|
||||
"github.com/cnbattle/drone-upx/cmd"
|
||||
"errors"
|
||||
"log"
|
||||
"os"
|
||||
|
||||
"github.com/cnbattle/drone-upx/cmd"
|
||||
|
||||
"github.com/urfave/cli/v2"
|
||||
)
|
||||
|
||||
var (
|
||||
level string
|
||||
saveFile string
|
||||
originalFile string
|
||||
// Version Version
|
||||
Version string
|
||||
)
|
||||
|
||||
func init() {
|
||||
level = os.Getenv("PLUGIN_LEVEL")
|
||||
saveFile = os.Getenv("PLUGIN_SAVE_FILE")
|
||||
originalFile = os.Getenv("PLUGIN_ORIGINAL_FILE")
|
||||
func main() {
|
||||
app := &cli.App{
|
||||
Name: "drone-upx",
|
||||
Usage: "UPX - the Ultimate Packer for eXecutables.",
|
||||
Copyright: "Copyright (c) 2020 Qi-ai Li",
|
||||
Version: Version,
|
||||
Authors: []*cli.Author{
|
||||
{
|
||||
Name: "Qi-ai Li",
|
||||
Email: "qiaicn@gmail.com",
|
||||
},
|
||||
},
|
||||
Flags: []cli.Flag{
|
||||
&cli.StringFlag{
|
||||
Name: "level, l",
|
||||
Value: "5",
|
||||
Usage: "upx level",
|
||||
EnvVars: []string{"PLUGIN_LEVEL"},
|
||||
},
|
||||
|
||||
&cli.StringFlag{
|
||||
Name: "originalFile, of",
|
||||
Usage: "original file",
|
||||
EnvVars: []string{"PLUGIN_ORIGINAL_FILE"},
|
||||
},
|
||||
|
||||
&cli.StringFlag{
|
||||
Name: "saveFile, sf",
|
||||
Usage: "save file name",
|
||||
EnvVars: []string{"PLUGIN_SAVE_FILE"},
|
||||
},
|
||||
},
|
||||
Action: run,
|
||||
}
|
||||
err := app.Run(os.Args)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func main() {
|
||||
cmd.Cmd("/bin/upx", "-"+level, "-o", saveFile, originalFile)
|
||||
func run(ctx *cli.Context) error {
|
||||
var level, originalFile, saveFile = ctx.String("level"), ctx.String("originalFile"), ctx.String("saveFile")
|
||||
if len(originalFile) == 0 {
|
||||
return errors.New("miss originalFile")
|
||||
}
|
||||
if len(saveFile) == 0 {
|
||||
return errors.New("miss saveFile")
|
||||
}
|
||||
return cmd.Cmd("/bin/upx", "-"+level, "-o", saveFile, originalFile)
|
||||
}
|
||||
|
||||
@@ -1,3 +1,11 @@
|
||||
module github.com/cnbattle/drone-upx
|
||||
|
||||
go 1.13
|
||||
go 1.19
|
||||
|
||||
require github.com/urfave/cli/v2 v2.20.3
|
||||
|
||||
require (
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect
|
||||
github.com/russross/blackfriday/v2 v2.1.0 // indirect
|
||||
github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect
|
||||
)
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w=
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
|
||||
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/urfave/cli/v2 v2.20.3 h1:lOgGidH/N5loaigd9HjFsOIhXSTrzl7tBpHswZ428w4=
|
||||
github.com/urfave/cli/v2 v2.20.3/go.mod h1:1CNUng3PtjQMtRzJO4FMXBQvkGtuYRxxiR9xMa7jMwI=
|
||||
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=
|
||||
Reference in New Issue
Block a user