54 lines
1.6 KiB
YAML
54 lines
1.6 KiB
YAML
|
image: golang:latest
|
||
|
stages:
|
||
|
- build
|
||
|
- test
|
||
|
- deploy
|
||
|
|
||
|
before_script:
|
||
|
- mkdir -p "/go/src/dev.sum7.eu/$CI_PROJECT_NAMESPACE/"
|
||
|
- cp -R "$CI_PROJECT_DIR" "/go/src/dev.sum7.eu/$CI_PROJECT_NAMESPACE/"
|
||
|
- cd "/go/src/dev.sum7.eu/$CI_PROJECT_PATH"
|
||
|
- go get -d -t ./...
|
||
|
|
||
|
build-my-project:
|
||
|
stage: build
|
||
|
script:
|
||
|
- mkdir "$CI_PROJECT_DIR/bin/"
|
||
|
- go install "dev.sum7.eu/$CI_PROJECT_PATH"
|
||
|
- mv "/go/bin/$CI_PROJECT_NAME" "$CI_PROJECT_DIR/bin/$CI_PROJECT_NAME"
|
||
|
artifacts:
|
||
|
paths:
|
||
|
- "bin/$CI_PROJECT_NAME"
|
||
|
- config_example.toml
|
||
|
|
||
|
test-my-project:
|
||
|
stage: test
|
||
|
script:
|
||
|
- go get github.com/client9/misspell/cmd/misspell
|
||
|
- misspell -error .
|
||
|
- ./.ci/check-gofmt
|
||
|
- ./.ci/check-testfiles
|
||
|
- go test $(go list ./... | grep -v /vendor/) -v -coverprofile .testCoverage.txt
|
||
|
- go tool cover -func=.testCoverage.txt
|
||
|
artifacts:
|
||
|
paths:
|
||
|
- .testCoverage.txt
|
||
|
|
||
|
test-race-my-project:
|
||
|
stage: test
|
||
|
script:
|
||
|
- go test -race ./...
|
||
|
|
||
|
deploy:
|
||
|
stage: deploy
|
||
|
only:
|
||
|
- master
|
||
|
script:
|
||
|
- go install "dev.sum7.eu/$CI_PROJECT_PATH"
|
||
|
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
|
||
|
- eval $(ssh-agent -s)
|
||
|
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
|
||
|
- ssh -o StrictHostKeyChecking=no -p $SSH_PORT "$CI_PROJECT_NAME@$SSH_HOST" sudo /usr/bin/systemctl stop $CI_PROJECT_NAME
|
||
|
- scp -o StrictHostKeyChecking=no -P $SSH_PORT "/go/bin/$CI_PROJECT_NAME" "$CI_PROJECT_NAME@$SSH_HOST":/opt/$CI_PROJECT_NAME/bin
|
||
|
- ssh -o StrictHostKeyChecking=no -p $SSH_PORT "$CI_PROJECT_NAME@$SSH_HOST" sudo /usr/bin/systemctl start $CI_PROJECT_NAME
|