From 374de82379e61ae7359e69361c148f22665b91d5 Mon Sep 17 00:00:00 2001 From: trent Date: Thu, 15 Jan 2026 20:45:14 +0000 Subject: [PATCH] Update dotnet-pipeline.yml --- dotnet-pipeline.yml | 75 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 73 insertions(+), 2 deletions(-) diff --git a/dotnet-pipeline.yml b/dotnet-pipeline.yml index 373ea57..af5e18d 100644 --- a/dotnet-pipeline.yml +++ b/dotnet-pipeline.yml @@ -73,6 +73,42 @@ steps: echo "=== Spakowane pakiety ===" ls -la nupkg/ || echo "Brak spakowanych pakietów!" depends_on: [test] + + # NOWY KROK: Publish LinuxLocal apps + publish-linux-local: + image: mcr.microsoft.com/dotnet/sdk:latest + commands: + - | + set -euf + cd "${CI_WORKSPACE}" + mkdir -p linux-apps + + echo "=== Publikacja aplikacji LinuxLocal ===" + find . -name "*.csproj" -type f | while read csproj; do + PROJECT_TYPE=$(dotnet msbuild "$csproj" -getProperty:ProjectType -noLogo 2>/dev/null || echo "Unknown") + + if [ "$PROJECT_TYPE" = "LinuxLocal" ]; then + PROJECT_NAME=$(basename "$csproj" .csproj) + echo "→ Publishing $PROJECT_NAME" + + dotnet publish "$csproj" \ + --configuration Release \ + --output "./linux-apps/$PROJECT_NAME" \ + --runtime linux-x64 \ + --self-contained false \ + --no-restore + fi + done + + echo "" + if [ -d "./linux-apps" ] && [ "$(ls -A ./linux-apps)" ]; then + echo "Opublikowane aplikacje:" + ls -la linux-apps/ + else + echo "Brak aplikacji LinuxLocal do publikacji" + fi + depends_on: [restore] + publish-datamodels-to-baget: image: mcr.microsoft.com/dotnet/sdk:latest environment: @@ -103,6 +139,7 @@ steps: --skip-duplicate done depends_on: [pack-datamodels] + select-projects-for-container: image: mcr.microsoft.com/dotnet/sdk:latest commands: @@ -116,7 +153,7 @@ steps: PROJECT_NAME=$(basename "$csproj" .csproj) PROJECT_TYPE=$(dotnet msbuild "$csproj" -getProperty:ProjectType -noLogo 2>/dev/null || echo "Unknown") - if [ "$PROJECT_TYPE" = "Linux" ] || [ "$PROJECT_TYPE" = "Api" ] || [ "$PROJECT_TYPE" = "ServerProcess" ] || [ "$PROJECT_TYPE" = "Blazor" ]; then + if [ "$PROJECT_TYPE" = "Linux" ] || [ "$PROJECT_TYPE" = "Api" ] || [ "$PROJECT_TYPE" = "ServerProcess" ] || [ "$PROJECT_TYPE" = "Blazor" ] || [ "$PROJECT_TYPE" = "LinuxLocal" ]; then PROJECT_DIR=$(dirname "$csproj") echo "→ Dodaję $PROJECT_NAME (typ: $PROJECT_TYPE)" echo "$PROJECT_DIR|$PROJECT_NAME" >> projects-to-build.txt @@ -134,6 +171,7 @@ steps: echo "BRAK PROJEKTÓW DO BUDOWY!" fi depends_on: [publish-datamodels-to-baget] + containerize-apps: image: docker:27-cli environment: @@ -224,6 +262,39 @@ steps: echo "=== WSZYSTKIE PROJEKTY ZAKONCZONE ===" depends_on: [select-projects-for-container] + + # NOWY KROK: Deploy LinuxLocal na serwer + deploy-linux-local: + image: alpine:latest + commands: + - | + set -euf + cd "${CI_WORKSPACE}" + + if [ ! -d "./linux-apps" ] || [ ! "$(ls -A ./linux-apps)" ]; then + echo "Brak aplikacji LinuxLocal do wdrożenia" + exit 0 + fi + + echo "=== Wdrażanie aplikacji LinuxLocal do /opt/fa-apps/ ===" + mkdir -p /opt/fa-apps + + for app in ./linux-apps/*; do + APP_NAME=$(basename "$app") + echo "→ Kopiuję $APP_NAME" + + rm -rf "/opt/fa-apps/$APP_NAME" + cp -r "$app" "/opt/fa-apps/$APP_NAME" + + # Nadaj uprawnienia wykonywania + chmod +x "/opt/fa-apps/$APP_NAME/$APP_NAME" + done + + echo "" + echo "=== Wdrożone aplikacje ===" + ls -la /opt/fa-apps/ + depends_on: [publish-linux-local, containerize-apps] + cleanup-docker: image: docker:27-cli commands: @@ -253,6 +324,6 @@ steps: echo "" echo "=== Status po czyszczeniu ===" docker system df - depends_on: [containerize-apps] + depends_on: [deploy-linux-local] when: status: [success, failure]