48 lines
1.4 KiB
YAML
48 lines
1.4 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: Build API
|
|
run: |
|
|
go mod tidy
|
|
go build -o ./bin/greenlight-api ./cmd/api
|
|
|
|
- name: Add host key to known_hosts
|
|
run: |
|
|
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
|
|
|
|
- name: Deploy to server
|
|
run: |
|
|
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
|
|
|
|
- name: Launch API
|
|
run: |
|
|
ssh -p ${{ secrets.SERVER_PORT }} ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_IP }} "\
|
|
pkill greenlight-api || true; \
|
|
nohup /var/www/greenlight/greenlight-api \
|
|
" |