From 70f825d820863c2c89fbe50b5633773695672b5a Mon Sep 17 00:00:00 2001 From: Florian THIERRY Date: Sun, 11 May 2025 16:48:57 +0200 Subject: [PATCH] Edit gitea action workflow to build and deploy kotlin app on production server. --- .gitea/workflows/build-and-deploy.yml | 41 +++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/build-and-deploy.yml b/.gitea/workflows/build-and-deploy.yml index 534ed11..bb52f55 100644 --- a/.gitea/workflows/build-and-deploy.yml +++ b/.gitea/workflows/build-and-deploy.yml @@ -9,7 +9,42 @@ jobs: build-and-deploy: runs-on: ubuntu-latest steps: - - name: Hello world + - name: Checkout code + uses: actions/checkout@v4 + + - name: Build backend docker image run: | - echo 'Hello world' - echo 'Done' \ No newline at end of file + 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 -P $REMOTE_PORT ./gitea-workshop-app.tar $REMOVE_USER@$REMOTE_HOST:$REMOTE_PATH + scp -P $REMOTE_PORT ./docker-compose.yml $REMOVE_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 $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 \ No newline at end of file