chore: use circle ci (#725)
Former-commit-id: 3f2b9bf4d651e626e7658849fd0f1caefa4cbe1b [formerly 978d6c75dab9f724c7aff2a31cc3d3d0bb5e84d0] [formerly 4df409b8627f55ec6fee20f0698e7a2b06380f6d [formerly d60b3ebb28179b2d928e695bec7ccbd7494ef4e1]] Former-commit-id: 24fec7fe931aaecf3fa91d9e9050c16c49909cd9 [formerly dbfae033cad45b7139de0238ea656e74e727f3e5] Former-commit-id: a3fddbb4692b968e481ed7ffe3065b635aca2df7
This commit is contained in:
215
wizard.sh
215
wizard.sh
@@ -1,95 +1,19 @@
|
||||
#!/bin/sh
|
||||
#!/usr/bin/env sh
|
||||
|
||||
set -e
|
||||
|
||||
untracked="(untracked)"
|
||||
REPO=$(cd $(dirname $0); pwd)
|
||||
LINT="false"
|
||||
BUILD="false"
|
||||
PUSH_LATEST="false"
|
||||
COMMIT_SHA=$(git rev-parse --short HEAD)
|
||||
ASSETS="false"
|
||||
BINARY="false"
|
||||
RELEASE=""
|
||||
|
||||
debugInfo () {
|
||||
echo "Repo: $REPO"
|
||||
echo "Will lint: $LINT"
|
||||
echo "Will build: $BUILD"
|
||||
echo "Will release: $RELEASE"
|
||||
echo "Will push latest docker: $PUSH_LATEST"
|
||||
echo "Use Docker: $USE_DOCKER"
|
||||
echo "Is CI: $CI"
|
||||
}
|
||||
|
||||
dockerLogin () {
|
||||
if [ "$CI" = "true" ]; then
|
||||
gpg --batch --gen-key <<-EOF
|
||||
%echo Generating a standard key
|
||||
Key-Type: DSA
|
||||
Key-Length: 1024
|
||||
Subkey-Type: ELG-E
|
||||
Subkey-Length: 1024
|
||||
Name-Real: Meshuggah Rocks
|
||||
Name-Email: meshuggah@example.com
|
||||
Expire-Date: 0
|
||||
# Do a commit here, so that we can later print "done" :-)
|
||||
%commit
|
||||
%echo done
|
||||
EOF
|
||||
|
||||
key=$(gpg --no-auto-check-trustdb --list-secret-keys | grep ^sec | cut -d/ -f2 | cut -d" " -f1)
|
||||
pass init $key
|
||||
|
||||
if [ "$(command -v docker-credential-pass)" = "" ]; then
|
||||
docker run --rm -itv /usr/local/bin:/src filebrowser/dev sh -c "cp /go/bin/docker-credential-pass /src"
|
||||
fi
|
||||
|
||||
echo "$DOCKER_PASS" | docker login -u "$DOCKER_USER" --password-stdin
|
||||
fi
|
||||
}
|
||||
|
||||
dockerLogout () {
|
||||
if [ "$CI" = "true" ]; then
|
||||
docker logout
|
||||
fi
|
||||
}
|
||||
|
||||
dockerPushLatest () {
|
||||
docker build -t filebrowser/filebrowser .
|
||||
dockerLogin
|
||||
docker push filebrowser/filebrowser
|
||||
dockerLogout
|
||||
}
|
||||
|
||||
dockerPushTag () {
|
||||
dockerLogin
|
||||
|
||||
for tag in `echo $(docker images filebrowser/filebrowser* | awk -F ' ' '{print $1 ":" $2}') | cut -d ' ' -f2-`; do
|
||||
if [ "$tag" = "REPOSITORY:TAG" ]; then break; fi
|
||||
docker push $tag
|
||||
done
|
||||
|
||||
dockerLogout
|
||||
}
|
||||
|
||||
installRice () {
|
||||
if ! [ -x "$(command -v rice)" ]; then
|
||||
go get github.com/GeertJohan/go.rice/rice
|
||||
fi
|
||||
}
|
||||
|
||||
buildAssets () {
|
||||
installRice
|
||||
cd $REPO/frontend
|
||||
|
||||
if [ -d "dist" ]; then
|
||||
rm -rf dist/*
|
||||
fi;
|
||||
|
||||
yarn install
|
||||
yarn build
|
||||
|
||||
echo "Run rice"
|
||||
cd $REPO/http
|
||||
rice embed-go
|
||||
echo "Repo: $REPO"
|
||||
echo "Build assets: $ASSETS"
|
||||
echo "Build binary: $BINARY"
|
||||
echo "Release: $RELEASE"
|
||||
}
|
||||
|
||||
updateVersion () {
|
||||
@@ -100,79 +24,31 @@ updateVersion () {
|
||||
sed -i.bak "s|$from|$to|g" $REPO/version/version.go
|
||||
}
|
||||
|
||||
buildAssets () {
|
||||
cd $REPO
|
||||
rm -rf frontend/dist
|
||||
rm -f http/rice-box.go
|
||||
|
||||
cd $REPO/frontend
|
||||
npm install
|
||||
npm run build
|
||||
}
|
||||
|
||||
buildBinary () {
|
||||
if ! [ -x "$(command -v rice)" ]; then
|
||||
go install github.com/GeertJohan/go.rice/rice
|
||||
fi
|
||||
|
||||
cd $REPO/http
|
||||
rm -rf rice-box.go
|
||||
rice embed-go
|
||||
|
||||
cd $REPO
|
||||
go get -v ./...
|
||||
updateVersion $untracked "($COMMIT_SHA)"
|
||||
echo "Build CLI"
|
||||
CGO_ENABLED=0 go build -a -o filebrowser
|
||||
go build -a -o filebrowser
|
||||
updateVersion "($COMMIT_SHA)" $untracked
|
||||
}
|
||||
|
||||
lint () {
|
||||
cd $REPO
|
||||
|
||||
if [ "$USE_DOCKER" != "" ]; then
|
||||
$(command -v winpty) docker run --rm -itv "/$(pwd)://src" -w "//src" filebrowser/dev sh -c "\
|
||||
go get -v ./... && \
|
||||
golangci-lint run -v"
|
||||
else
|
||||
golangci-lint run -v
|
||||
fi
|
||||
}
|
||||
|
||||
ciRelease () {
|
||||
docker run --rm -t \
|
||||
-v $(pwd):/src \
|
||||
-w /src \
|
||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||
filebrowser/dev \
|
||||
sh -c "\
|
||||
go get ./... && \
|
||||
goreleaser \
|
||||
"
|
||||
|
||||
dockerPushTag
|
||||
}
|
||||
|
||||
build () {
|
||||
cd $REPO
|
||||
|
||||
if [ -d http/"rice-box.go" ]; then
|
||||
rm -rf http/rice-box.go
|
||||
fi
|
||||
|
||||
if [ "$USE_DOCKER" != "" ]; then
|
||||
if [ -d "frontend/dist" ]; then
|
||||
rm -rf frontend/dist
|
||||
fi;
|
||||
|
||||
if [ -f "http/rice-box.go" ]; then
|
||||
rm -f http/rice-box.go
|
||||
fi;
|
||||
|
||||
if [ "$(command -v git)" != "" ]; then
|
||||
COMMIT_SHA="$(git rev-parse HEAD | cut -c1-8)"
|
||||
else
|
||||
COMMIT_SHA="untracked"
|
||||
fi
|
||||
|
||||
$(command -v winpty) docker run --rm -it \
|
||||
-u "$(id -u)" \
|
||||
-v /$(pwd):/src:z \
|
||||
-w //src \
|
||||
-e COMMIT_SHA=$COMMIT_SHA \
|
||||
-e HOME="//tmp" \
|
||||
-e GOPATH=//tmp/gopath \
|
||||
filebrowser/dev \
|
||||
sh -c "./wizard.sh -b"
|
||||
|
||||
else
|
||||
buildAssets
|
||||
buildBinary
|
||||
fi
|
||||
}
|
||||
|
||||
release () {
|
||||
cd $REPO
|
||||
|
||||
@@ -229,26 +105,27 @@ release () {
|
||||
}
|
||||
|
||||
usage() {
|
||||
echo "Usage: $0 [-l] [-b] [-p] [-r <string>]" 1>&2;
|
||||
echo "Usage: $0 [-a] [-c] [-b] [-r <string>]" 1>&2;
|
||||
exit 1;
|
||||
}
|
||||
|
||||
DEBUG="false"
|
||||
|
||||
while getopts "pdlbr:" o; do
|
||||
while getopts "bacr:d" o; do
|
||||
case "${o}" in
|
||||
l)
|
||||
LINT="true"
|
||||
;;
|
||||
b)
|
||||
BUILD="true"
|
||||
ASSETS="true"
|
||||
BINARY="true"
|
||||
;;
|
||||
a)
|
||||
ASSETS="true"
|
||||
;;
|
||||
c)
|
||||
BINARY="true"
|
||||
;;
|
||||
r)
|
||||
RELEASE=${OPTARG}
|
||||
;;
|
||||
p)
|
||||
PUSH_LATEST="true"
|
||||
;;
|
||||
d)
|
||||
DEBUG="true"
|
||||
;;
|
||||
@@ -263,22 +140,14 @@ if [ "$DEBUG" = "true" ]; then
|
||||
debugInfo
|
||||
fi
|
||||
|
||||
if [ "$LINT" = "true" ]; then
|
||||
lint
|
||||
if [ "$ASSETS" = "true" ]; then
|
||||
buildAssets
|
||||
fi
|
||||
|
||||
if [ "$BUILD" = "true" ]; then
|
||||
build
|
||||
fi
|
||||
|
||||
if [ "$PUSH_LATEST" = "true" ]; then
|
||||
dockerPushLatest
|
||||
if [ "$BINARY" = "true" ]; then
|
||||
buildBinary
|
||||
fi
|
||||
|
||||
if [ "$RELEASE" != "" ]; then
|
||||
if [ "$CI" = "true" ]; then
|
||||
ciRelease
|
||||
else
|
||||
release $RELEASE
|
||||
fi
|
||||
release $RELEASE
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user