32 lines
1.1 KiB
YAML
32 lines
1.1 KiB
YAML
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."
|