91 lines
3.9 KiB
YAML
91 lines
3.9 KiB
YAML
language: go
|
|
|
|
sudo: false
|
|
|
|
env:
|
|
global:
|
|
- GO111MODULE=on
|
|
- ASC_URL=https://keybase.io/nirui/pgp_keys.asc
|
|
- PACKAGE=github.com/niruix/sshwifty
|
|
- VERSION_VARIABLE=github.com/niruix/sshwifty/application.version
|
|
- BUILD_TARGETS="darwin/386 darwin/amd64 windows/386 windows/amd64 openbsd/386 openbsd/amd64 openbsd/arm openbsd/arm64 freebsd/386 freebsd/amd64 freebsd/arm freebsd/arm64 linux/386 linux/amd64 linux/arm linux/arm64 linux/ppc64 linux/ppc64le linux/mips linux/mipsle linux/mips64 linux/mips64le"
|
|
- SSHWIFTY_VERSION=$(git describe --always --dirty='*' --tag)
|
|
- SSHWIFTY_COMMIT=$(git describe --always)
|
|
- SSHWIFTY_RELEASE=$([[ "$SSHWIFTY_VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+\-[a-zA-Z0-9]+\-release$ ]] && echo "yes")
|
|
- SSHWIFTY_DEPLOY=$([[ "$SSHWIFTY_RELEASE" != "yes" || "$TRAVIS_TAG" == "" || "$GITHUB_USER" == "" || "$GITHUB_TOKEN" == "" ]] || echo "yes")
|
|
- SSHWIFTY_TEST_COVER=$([[ "$COVERALLS_TOKEN" == "" ]] || echo "yes")
|
|
|
|
branches:
|
|
only:
|
|
- master
|
|
- dev
|
|
- /^[0-9]+\.[0-9]+\.[0-9]+\-[a-zA-Z0-9]+\-release$/
|
|
|
|
go:
|
|
- stable
|
|
|
|
before_install:
|
|
- export
|
|
- npm install && npm run generate
|
|
- |
|
|
if [[ "$SSHWIFTY_TEST_COVER" == "yes" ]]; then
|
|
go get github.com/go-playground/overalls
|
|
go get github.com/mattn/goveralls
|
|
fi
|
|
- |
|
|
if [[ "$SSHWIFTY_DEPLOY" == "yes" ]]; then
|
|
go get github.com/tcnksm/ghr
|
|
go get github.com/mitchellh/gox
|
|
fi
|
|
|
|
script:
|
|
- go vet ./...
|
|
- npm run testonly
|
|
|
|
after_success:
|
|
- |
|
|
if [[ "$SSHWIFTY_TEST_COVER" == "yes" ]]; then
|
|
overalls -project="$PACKAGE" -covermode=count
|
|
goveralls -coverprofile=./overalls.coverprofile -service travis-ci
|
|
fi
|
|
|
|
before_deploy:
|
|
- |
|
|
if [[ "$SSHWIFTY_DEPLOY" == "yes" ]]; then
|
|
mkdir -p ./.tmp/deploy
|
|
curl "$ASC_URL" > ./.tmp/deploy/GPG.asc
|
|
cat ./.tmp/deploy/GPG.asc | gpg --import
|
|
CGO_ENABLED=0 gox -ldflags "-s -w -X $VERSION_VARIABLE=$SSHWIFTY_VERSION" -osarch "$BUILD_TARGETS" -output "./.tmp/deploy/{{.Dir}}_$(echo $SSHWIFTY_VERSION)_{{.OS}}_{{.Arch}}/{{.Dir}}_{{.OS}}_{{.Arch}}"
|
|
git archive --format tar --output "./.tmp/deploy/src" HEAD
|
|
echo "# Version $SSHWIFTY_VERSION" > ./.tmp/deploy/Note
|
|
echo >> ./.tmp/deploy/Note
|
|
echo "Following updates is included since the last release $(git describe --abbrev=0 --tags $(git rev-list --tags --skip=1 --max-count=1))" >> ./.tmp/deploy/Note
|
|
git log $(git describe --abbrev=0 --tags $(git rev-list --tags --skip=1 --max-count=1))..HEAD --pretty=format:"- %h %s - (%an) %GK %G?" >> ./.tmp/deploy/Note
|
|
echo 'echo Preparing for $1 ...;' > prepare.sh
|
|
echo '(cd $1/ && find . -maxdepth 1 -type f ! -name "SUM.*" -exec sha512sum {} \; > SUM.sha512);' >> prepare.sh
|
|
echo '(cp *.md $1/);' >> prepare.sh
|
|
echo '(cp ./.tmp/deploy/GPG.asc $1/);' >> prepare.sh
|
|
echo '(cp ./.tmp/deploy/Note $1/);' >> prepare.sh
|
|
echo '(cp ./sshwifty.conf.example.json $1/);' >> prepare.sh
|
|
echo '(cp "./.tmp/deploy/src" $1/);' >> prepare.sh
|
|
echo '(cd $1/ && tar zpcvf "../$(basename $(pwd)).tar.gz" * --owner=0 --group=0);' >> prepare.sh
|
|
chmod +x ./prepare.sh
|
|
find ./.tmp/deploy/ -maxdepth 1 -type d ! -name "deploy" -exec ./prepare.sh {} \;
|
|
rm ./prepare.sh -f
|
|
find ./.tmp/deploy/ -maxdepth 1 -type d ! -name "deploy" -exec rm {} -rf \;
|
|
find ./.tmp/deploy/ -maxdepth 1 -type f -name "*.tar.gz" -execdir sha512sum {} \; > ./.tmp/deploy/SUM.sha512
|
|
echo "$GITHUB_USER" > ./deploy_user
|
|
echo "$SSHWIFTY_VERSION-prebuild" > ./deploy_title
|
|
echo 'ghr -u "$(cat ./deploy_user)" -n "$(cat ./deploy_title)" -b "$(cat ./.tmp/deploy/Note)" -delete -prerelease "$(cat ./deploy_title)" ./.tmp/deploy' > ./deploy.sh
|
|
chmod +x ./deploy.sh
|
|
cat ./.tmp/deploy/SUM.sha512
|
|
fi
|
|
|
|
deploy:
|
|
provider: script
|
|
script: ./deploy.sh
|
|
skip_cleanup: true
|
|
on:
|
|
all_branches: true
|
|
condition: $SSHWIFTY_DEPLOY = yes
|