mirror of
https://github.com/marcusDenslow/terminalShop.git
synced 2026-10-25 02:52:20 +02:00
37 lines
1.0 KiB
YAML
37 lines
1.0 KiB
YAML
name: Deploy
|
|
|
|
on:
|
|
push:
|
|
branches: [master]
|
|
|
|
jobs:
|
|
deploy:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
- uses: actions/setup-go@v6
|
|
with:
|
|
go-version-file: go.mod
|
|
- name: Run tests
|
|
run: go test ./...
|
|
- name: Deploy to server
|
|
uses: appleboy/ssh-action@v1
|
|
with:
|
|
host: ${{ secrets.SERVER_HOST }}
|
|
username: ${{ secrets.SERVER_USER }}
|
|
key: ${{ secrets.SERVER_SSH_KEY }}
|
|
port: ${{ secrets.SERVER_PORT }}
|
|
script: |
|
|
set -euo pipefail
|
|
cd ~/terminalShop
|
|
git fetch origin master
|
|
git reset --hard origin/master
|
|
deployed=$(git rev-parse HEAD)
|
|
expected="${{ github.sha }}"
|
|
if [ "$deployed" != "$expected" ]; then
|
|
echo "::error::deploy HEAD mismatch: box=$deployed expected=$expected"
|
|
exit 1
|
|
fi
|
|
docker compose -f docker-compose.prod.yml up -d --build
|
|
echo "deploy verified: HEAD=$deployed"
|