From 2dc156cd954a4c62af263994dea1e01b9c003b08 Mon Sep 17 00:00:00 2001 From: hexxa Date: Tue, 14 Sep 2021 16:24:14 +0800 Subject: [PATCH] fix(cicd): refactor scripts for cicd --- .github/workflows/cd_docker.yml | 1 + Dockerfile | 5 ++--- package.json | 9 +++++++-- public/static/img/favicon.png | Bin 0 -> 11888 bytes public/static/img/favicon.svg | 1 + public/static/manifest.json | 11 +++++++++++ scripts/build.sh | 30 ------------------------------ scripts/build_be_docker.sh | 11 ----------- scripts/docker_run.sh | 7 ------- src/client/web/package.json | 15 +++------------ src/server/server.go | 2 +- 11 files changed, 26 insertions(+), 66 deletions(-) create mode 100644 public/static/img/favicon.png create mode 100644 public/static/img/favicon.svg create mode 100644 public/static/manifest.json delete mode 100755 scripts/build.sh delete mode 100755 scripts/build_be_docker.sh delete mode 100644 scripts/docker_run.sh diff --git a/.github/workflows/cd_docker.yml b/.github/workflows/cd_docker.yml index 17a2b0d..e2f04a1 100644 --- a/.github/workflows/cd_docker.yml +++ b/.github/workflows/cd_docker.yml @@ -1,4 +1,5 @@ name: cd-docker + on: release: types: [published] diff --git a/Dockerfile b/Dockerfile index 51e19ee..9496dad 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,13 +1,12 @@ FROM golang:1.15 as build-be ADD . /quickshare WORKDIR /quickshare -RUN /quickshare/scripts/build_be_docker.sh +RUN /quickshare/scripts/build_exec.sh FROM node as build-fe COPY --from=build-be /quickshare /quickshare WORKDIR /quickshare -RUN yarn install \ - && yarn --cwd "src/client/web" run build \ +RUN yarn run build:fe \ && cp -R /quickshare/public /quickshare/dist/quickshare FROM debian:stable-slim diff --git a/package.json b/package.json index b968914..06e5997 100644 --- a/package.json +++ b/package.json @@ -4,8 +4,13 @@ "src/client/web" ], "scripts": { - "build": "scripts/build.sh", - "start": "cd src/client/web/ && yarn && yarn build && cd ../../.. && go run cmd/start/main.go -c `pwd`/configs/dev.yml" + "build:fe": "bash scripts/copy_js.sh && webpack --config src/client/web/webpack.app.prod.js", + "build:fe:dev": "bash scripts/copy_js_dev.sh && webpack --config src/client/web/webpack.app.dev.js --watch", + "build:fe:watch": "bash scripts/copy_js.sh && webpack --config src/client/web/webpack.app.prod.js --watch", + "start": "yarn build:fe && go run cmd/start/main.go -c `pwd`/configs/dev.yml", + + "build": "yarn build:fe && bash scripts/build_be.sh", + "build:docker": "docker build . -t hexxa/quickshare:latest" }, "dependencies": { "webpack-bundle-analyzer": "^4.4.2" diff --git a/public/static/img/favicon.png b/public/static/img/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..90fcc76a0ef0eec454e8fee1791713e35667afa9 GIT binary patch literal 11888 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 vjWk7d`NJbf+-oj;{U@b9dFsC<{1)|ZvcB`Y \ No newline at end of file diff --git a/public/static/manifest.json b/public/static/manifest.json new file mode 100644 index 0000000..5f7f049 --- /dev/null +++ b/public/static/manifest.json @@ -0,0 +1,11 @@ +{ + "name": "Quickshare", + "short_name": "Quickshare", + "icons": [{ + "src": "img/favicon.png", + "sizes": "512x512" + }], + "background_color": "#16a085", + "theme_color": "#ffffff", + "display": "fullscreen" +} diff --git a/scripts/build.sh b/scripts/build.sh deleted file mode 100755 index a0903f4..0000000 --- a/scripts/build.sh +++ /dev/null @@ -1,30 +0,0 @@ -export QSROOT=`pwd` -rm -r dist && mkdir dist - -go get github.com/mitchellh/gox -cd cmd/start -gox \ - -osarch="windows/386 windows/amd64 darwin/amd64 linux/386 linux/amd64 linux/arm linux/arm64" \ - -output "$QSROOT/dist/quickshare_{{.OS}}_{{.Arch}}/quickshare" - -cd $QSROOT/src/client/web -yarn build - -cd $QSROOT -cp -R $QSROOT/public $QSROOT/dist/quickshare_windows_386 -cp -R $QSROOT/public $QSROOT/dist/quickshare_windows_amd64 -cp -R $QSROOT/public $QSROOT/dist/quickshare_darwin_amd64 -cp -R $QSROOT/public $QSROOT/dist/quickshare_linux_386 -cp -R $QSROOT/public $QSROOT/dist/quickshare_linux_amd64 -cp -R $QSROOT/public $QSROOT/dist/quickshare_linux_arm -cp -R $QSROOT/public $QSROOT/dist/quickshare_linux_arm64 - -cd $QSROOT/dist - -zip -r -q $QSROOT/dist/quickshare_windows_386.zip quickshare_windows_386/* -zip -r -q $QSROOT/dist/quickshare_windows_amd64.zip quickshare_windows_amd64/* -zip -r -q $QSROOT/dist/quickshare_darwin_amd64.zip quickshare_darwin_amd64/* -zip -r -q $QSROOT/dist/quickshare_linux_386.zip quickshare_linux_386/* -zip -r -q $QSROOT/dist/quickshare_linux_amd64.zip quickshare_linux_amd64/* -zip -r -q $QSROOT/dist/quickshare_linux_arm.zip quickshare_linux_arm/* -zip -r -q $QSROOT/dist/quickshare_linux_arm64.zip quickshare_linux_arm64/* diff --git a/scripts/build_be_docker.sh b/scripts/build_be_docker.sh deleted file mode 100755 index 96a3910..0000000 --- a/scripts/build_be_docker.sh +++ /dev/null @@ -1,11 +0,0 @@ -export QSROOT=`pwd` -rm -r dist && mkdir dist - -# set this for builders behind GFW... -go env -w GOPROXY=https://goproxy.cn,direct -go get -d -v ./... -go get github.com/mitchellh/gox -cd cmd/start -gox \ - -osarch="linux/amd64" \ - -output "$QSROOT/dist/quickshare/start" diff --git a/scripts/docker_run.sh b/scripts/docker_run.sh deleted file mode 100644 index 5e2304f..0000000 --- a/scripts/docker_run.sh +++ /dev/null @@ -1,7 +0,0 @@ -docker run \ - --name quickshare \ - -d -p :8686:8686 \ - -v `pwd`/quickshare/root:/quickshare/root \ - -e DEFAULTADMIN=qs \ - -e DEFAULTADMINPWD=1234 \ - hexxa/quickshare diff --git a/src/client/web/package.json b/src/client/web/package.json index 487ba04..180ee03 100644 --- a/src/client/web/package.json +++ b/src/client/web/package.json @@ -4,20 +4,11 @@ "description": "web client for quickshare", "main": "", "scripts": { - "build": "yarn prod:addjs && yarn build:prod:wp", - "build:prod:wp": "webpack --config webpack.app.prod.js", + "build": "webpack --config webpack.app.prod.js", "build:watch": "webpack --config webpack.app.prod.js --watch", - "build:dev": "yarn dev:addjs && webpack --config webpack.app.dev.js --watch", + "build:dev": "webpack --config webpack.app.dev.js --watch", "test": "jest test --maxWorkers=2", - "test:watch": "jest test --watch --maxWorkers=2", - "dev:addjs": "yarn && yarn dev:copy-immutable && yarn dev:copy-react-dom && yarn dev:copy-react", - "dev:copy-immutable": "cp ../../../node_modules/immutable/dist/immutable.min.js ../../../public/static/js/", - "dev:copy-react-dom": "cp ../../../node_modules/react-dom/umd/react-dom.development.js ../../../public/static/js/", - "dev:copy-react": "cp ../../../node_modules/react/umd/react.development.js ../../../public/static/js/", - "prod:addjs": "yarn && yarn prod:copy-immutable && yarn prod:copy-react-dom && yarn prod:copy-react", - "prod:copy-immutable": "cp ../../../node_modules/immutable/dist/immutable.min.js ../../../public/static/js/", - "prod:copy-react-dom": "cp ../../../node_modules/react-dom/umd/react-dom.production.min.js ../../../public/static/js/", - "prod:copy-react": "cp ../../../node_modules/react/umd/react.production.min.js ../../../public/static/js/" + "test:watch": "jest test --watch --maxWorkers=2" }, "author": "hexxa", "license": "LGPL-3.0", diff --git a/src/server/server.go b/src/server/server.go index ce4befb..9aeef20 100644 --- a/src/server/server.go +++ b/src/server/server.go @@ -59,7 +59,7 @@ func NewServer(cfg gocfg.ICfg) (*Server, error) { port := cfg.GrabInt("Server.Port") portStr, ok := cfg.String("ENV.PORT") - if ok { + if ok && portStr != "" { port, err = strconv.Atoi(portStr) if err != nil { panic(fmt.Sprintf("invalid port: %s", portStr))