steps: - name: build image: golang:1.25 commands: - go mod tidy - CGO_ENABLED=0 GOOS=linux go build -ldflags="-w -s" -o ./server/api/server ./cmd/api/main.go - name: deploy image: alpine:latest when: - event: [tag, push] branch: main environment: # Nama variabel di container : Nama secret yang disimpan di Woodpecker SSH_PASS: from_secret: SSH_PASS SSH_USER: from_secret: SSH_USER SSH_HOST: from_secret: SSH_HOST REMOTE_PATH: from_secret: REMOTE_PATH CONTAINER_NAME: from_secret: CONTAINER_NAME commands: - export SSHPASS="$SSH_PASS" - apk update - apk add --no-cache openssh-client sshpass - sshpass -e ssh -o StrictHostKeyChecking=no $SSH_USER@$SSH_HOST "rm -rf $REMOTE_PATH/server" - sshpass -e scp -o StrictHostKeyChecking=no ./server/api/server $SSH_USER@$SSH_HOST:$REMOTE_PATH - sshpass -e ssh -o StrictHostKeyChecking=no $SSH_USER@$SSH_HOST "echo $SSH_PASS | sudo -S docker restart $CONTAINER_NAME" - echo "Application successfully deployed."