Files
gitea-workshop-thomas/.gitea/workflows/build-and-deploy.yml
Florian THIERRY 98dcd987a8
Some checks failed
Build and Deploy Kotlin gradle Application / build-and-deploy (push) Has been cancelled
Edit gitea action workflow to build and deploy kotlin app on production server.
2025-05-11 17:18:28 +02:00

50 lines
1.9 KiB
YAML

name: Build and Deploy Kotlin gradle Application
on:
push:
branches:
- working-poc
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Build backend docker image
run: |
sudo /usr/bin/docker build -t gitea-workshop-app -f ./Dockerfile-backend . --no-cache
- name: Extract backend docker image into archive
run: |
sudo /usr/bin/docker save gitea-workshop-app:latest -o ./gitea-workshop-app.tar
- name: Transfer artifacts to remote server
env:
SSH_PRIVATE_KEY: ${{ secrets.PROD_SSH_PRIVATE_KEY }}
REMOTE_HOST: ${{ secrets.PROD_REMOTE_HOST }}
REMOTE_USER: ${{ secrets.PROD_REMOTE_USER }}
REMOTE_PORT: ${{ secrets.PROD_REMOTE_PORT }}
REMOTE_PATH: ${{ secrets.PROD_REMOTE_PATH }}
run: |
mkdir -p ~/.ssh
echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa
chmod 400 ~/.ssh/id_rsa
scp -o StrictHostKeyChecking=no -P $REMOTE_PORT ./gitea-workshop-app.tar $REMOTE_USER@$REMOTE_HOST:$REMOTE_PATH
scp -o StrictHostKeyChecking=no -P $REMOTE_PORT ./docker-compose.yml $REMOTE_USER@$REMOTE_HOST:$REMOTE_PATH
- name: Launch application onto remote server
env:
SSH_PRIVATE_KEY: ${{ secrets.PROD_SSH_PRIVATE_KEY }}
REMOTE_HOST: ${{ secrets.PROD_REMOTE_HOST }}
REMOTE_USER: ${{ secrets.PROD_REMOTE_USER }}
REMOTE_PORT: ${{ secrets.PROD_REMOTE_PORT }}
REMOTE_PATH: ${{ secrets.PROD_REMOTE_PATH }}
run: |
ssh -o StrictHostKeyChecking=no $REMOTE_HOST -l £REMOTE_USER -p $REMOTE_PORT << EOC
cd $REMOTE_PATH
sudo /usr/bin/docker load < $REMOTE_PATH/gitea-workshop-app.tar
sudo /usr/bin/docker compose down
sudo /usr/bin/docker compose up --detach
EOC