src/ public/ index.html main.go
[Unit] # Description=Service Description After=network.target [Service] Type=simple # , User=username # ExecStart=/username/service/binaryFile Restart=on-abort [Install] WantedBy=multi-user.target
ssh-keygen -f /etc/ssh/hmp.key
Enter passphrase (empty for no passphrase)do not enter the password, just click on Enter.
cat /etc/ssh/hmp.key
-----BEGIN RSA PRIVATE KEY----- { } -----END RSA PRIVATE KEY-----
image: golang:latest before_script: # sshpass - apt-get update -qq && apt-get install -y -qq sshpass # , . govendor, - go get github.com/gorilla/mux - go get github.com/gorilla/websocket # SSH - '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 - mkdir -p ~/.ssh - chmod 700 ~/.ssh - echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config # - mkdir -p /go/src/gitlab.com/$GROUP_NAME # - git clone git@gitlab.com:$GROUP_NAME/$REPOSITORY_NAME.git /go/src/gitlab.com/$GROUP_NAME/$REPOSITORY_NAME # - mkdir -p $CI_PROJECT_DIR/build/ # (, HTML- ..) . # src/public - cp -r $CI_PROJECT_DIR/src/public $CI_PROJECT_DIR/build stages: - build - deploy compile: stage: build script: # Go - cd /go/src/gitlab.com/$GROUP_NAME/$REPOSITORY_NAME/src # . , build main - go build -race -ldflags "-extldflags '-static'" -o $CI_PROJECT_DIR/build/main artifacts: paths: - $CI_PROJECT_DIR/build/main deploy: stage: deploy script: # () public - cd $CI_PROJECT_DIR/build # sshpass VDS - sshpass -V - export SSHPASS=$USER_PASS # - sshpass -e ssh -o stricthostkeychecking=no $USER@$HOST systemctl stop $SERVICE_NAME # - sshpass -e scp -o stricthostkeychecking=no -r . $USER@$HOST:$TARGET_DIR_ON_HOST # - sshpass -e ssh -o stricthostkeychecking=no $USER@$HOST systemctl restart $SERVICE_NAME
Source: https://habr.com/ru/post/421087/
All Articles