Files
greenlight/.gitea/workflows/deploy.yml
Maxime Delporte 72508f9bdb
All checks were successful
Deploy Greenlight API / deploy (push) Successful in 56s
Fix typo.
2025-10-31 12:07:27 +01:00

75 lines
2.5 KiB
YAML

name: Deploy Greenlight API
on:
push:
branches:
- master
jobs:
deploy:
runs-on: ubuntu-24.04
steps:
- name: Updating apt get
run: apt-get update -y
- name: Install rsync
run: apt-get install rsync -y
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: "1.23" # adapte selon ta version
- name: Add host key to known_hosts
run: |
echo "Creating access 🔐"
mkdir -p ~/.ssh
echo "${{ secrets.RUNNER_SSH_KEY }}" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-keyscan -p ${{ secrets.SERVER_PORT }} -H ${{ secrets.SERVER_IP }} >> ~/.ssh/known_hosts
echo "Access created ✅"
- name: Applying database migrations
run: |
echo "Creating migrations folder 📂"
ssh -p ${{ secrets.SERVER_PORT }} ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_IP }} "mkdir -p /var/www/greenlight/migrations"
echo "Folder created ✅"
echo "Copy migrations files 📑"
scp -r -P ${{ secrets.SERVER_PORT }} ./migrations/* ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_IP }}:/var/www/greenlight/migrations
echo "Files copied ✅"
ssh -p ${{ secrets.SERVER_PORT }} ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_IP }} "\
set -e
cd /var/www/greenlight
echo "Running migrations ⚙️"
migrate -path=./migrations -database=${{ secrets.GREENLIGHT_DB_DSN }} up
echo "Migrations done ✅"
"
- name: Build API
run: |
echo "Building API ⚙️"
go mod tidy
go build -o ./bin/greenlight-api ./cmd/api
echo "Build created ✅"
- name: Deploy to server
run: |
echo "Deployment ongoing 🔥"
ssh -p ${{ secrets.SERVER_PORT }} ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_IP }} "rm -rf /var/www/greenlight/*"
rsync -avz --delete -e "ssh -p ${{ secrets.SERVER_PORT }}" bin/ ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_IP }}:/var/www/greenlight
echo "App deployed ✅"
- name: Launch API
run: |
echo "Launching API 🚀"
ssh -p ${{ secrets.SERVER_PORT }} ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_IP }} "\
pkill greenlight-api || true; \
nohup /var/www/greenlight/greenlight-api > /var/www/greenlight/greenlight.log 2>&1 & \
"
echo "App launched 🎆"