Compare commits
3 Commits
f98e1227e8
...
working-po
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d23320b218 | ||
|
|
4497891788 | ||
|
|
458e72d6aa |
9
.gitea/gitea-runner.yml
Normal file
9
.gitea/gitea-runner.yml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
services:
|
||||||
|
runner:
|
||||||
|
image: docker.io/gitea/act_runner:latest
|
||||||
|
environment:
|
||||||
|
GITEA_INSTANCE_URL: "http://192.168.0.25:3000"
|
||||||
|
GITEA_RUNNER_REGISTRATION_TOKEN: "IfowioCs4PedXyRJMnedDVCXkRHjyDrZv1sdvaif"
|
||||||
|
GITEA_RUNNER_NAME: "runner-1"
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
50
.gitea/workflows/build-and-deploy.yml
Normal file
50
.gitea/workflows/build-and-deploy.yml
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
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
|
||||||
15
Dockerfile-backend
Normal file
15
Dockerfile-backend
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
FROM gradle:8.12.1-jdk21 AS builder
|
||||||
|
COPY ./gradlew /app/
|
||||||
|
COPY ./build.gradle.kts /app/
|
||||||
|
COPY ./settings.gradle.kts /app/
|
||||||
|
COPY ./demo-application /app/demo-application
|
||||||
|
COPY ./demo-domain /app/demo-domain
|
||||||
|
COPY ./demo-exposition /app/demo-exposition
|
||||||
|
COPY ./demo-infrastructure /app/demo-infrastructure
|
||||||
|
COPY ./demo-launcher /app/demo-launcher
|
||||||
|
WORKDIR /app
|
||||||
|
RUN gradle build jar
|
||||||
|
|
||||||
|
FROM eclipse-temurin:21-jre-alpine AS final
|
||||||
|
COPY --from=builder /app/demo-launcher/build/libs/demo-launcher.jar /app/demo-launcher.jar
|
||||||
|
CMD ["java", "-jar", "/app/demo-launcher.jar"]
|
||||||
11
bruno-rest/GiteaActionsWorkshop/Debug.bru
Normal file
11
bruno-rest/GiteaActionsWorkshop/Debug.bru
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
meta {
|
||||||
|
name: Debug
|
||||||
|
type: http
|
||||||
|
seq: 3
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{url}}/api/debug/info
|
||||||
|
body: none
|
||||||
|
auth: none
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package com.example.demo.exposition.debug
|
||||||
|
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping
|
||||||
|
import org.springframework.web.bind.annotation.RestController
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/api/debug")
|
||||||
|
class DebugController {
|
||||||
|
@GetMapping("/info")
|
||||||
|
fun debug(): String = """
|
||||||
|
{
|
||||||
|
"message": "Hello world!"
|
||||||
|
}
|
||||||
|
""".trimIndent()
|
||||||
|
}
|
||||||
12
docker-compose.yml
Normal file
12
docker-compose.yml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
services:
|
||||||
|
backend:
|
||||||
|
image: gitea-workshop-app:latest
|
||||||
|
container_name: gitea-workshop-app-backend
|
||||||
|
ports:
|
||||||
|
- "50000:8080"
|
||||||
|
restart: always
|
||||||
|
networks:
|
||||||
|
- "gitea-workshop"
|
||||||
|
|
||||||
|
networks:
|
||||||
|
gitea-workshop:
|
||||||
Reference in New Issue
Block a user