diff --git a/dotnet-pipeline.yml b/dotnet-pipeline.yml index 4413123..ad83967 100644 --- a/dotnet-pipeline.yml +++ b/dotnet-pipeline.yml @@ -23,7 +23,7 @@ steps: - | set -euf cd "${CI_WORKSPACE}" - echo "Aktualna ścieżka: $(pwd)" + echo "Aktualna ścieżka do pliku: $(pwd)" echo "=== Restore wszystkich projektów ===" find . -name "*.csproj" -type f -exec dotnet restore "{}" \; test: @@ -86,21 +86,32 @@ steps: set -euf cd "${CI_WORKSPACE}" mkdir -p linux-apps + + echo "=== Konfiguracja NuGet sources ===" + cat < NuGet.Config + + + + + + + + + EOF 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 + --self-contained false fi done @@ -156,7 +167,7 @@ steps: find . -name "*.csproj" -type f | while read csproj; do 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" ] || [ "$PROJECT_TYPE" = "LinuxLocal" ]; then PROJECT_DIR=$(dirname "$csproj") echo "→ Dodaję $PROJECT_NAME (typ: $PROJECT_TYPE)" @@ -217,20 +228,20 @@ steps: cat projects-to-build.txt | while IFS='|' read -r PDIR PNAME; do PDIR=$(echo "$PDIR" | xargs) PNAME=$(echo "$PNAME" | xargs) - + echo "=== DEBUG: PDIR='$PDIR' PNAME='$PNAME' ===" - + test -z "$PNAME" && continue test ! -d "$PDIR" && continue - + echo -n "git.modwad.pl/fa/" > /tmp/tag.txt echo "$PNAME" | tr 'A-Z' 'a-z' | tr -d '\n' >> /tmp/tag.txt - + echo "=== DEBUG: Generated tag: $(cat /tmp/tag.txt) ===" - + echo "$PNAME" > /tmp/pname.txt echo "$PDIR" | sed 's|^\./||' > /tmp/pdir.txt - + cat > "Dockerfile.temp" <<'ENDOFDOCKERFILE' FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base WORKDIR /app @@ -246,11 +257,11 @@ steps: ENV ASPNETCORE_URLS=http://+:8080 ENTRYPOINT ["dotnet", "%%PROJECTNAME%%.dll"] ENDOFDOCKERFILE - + REAL_PNAME=$(cat /tmp/pname.txt) REAL_PDIR=$(cat /tmp/pdir.txt) sed "s|%%PROJECTNAME%%|$REAL_PNAME|g; s|%%PROJECTDIR%%|$REAL_PDIR|g" "Dockerfile.temp" > "Dockerfile.final" - + echo "=== Budowanie obrazu ===" DOCKER_BUILDKIT=0 docker build \ --network=host \ @@ -258,15 +269,15 @@ steps: -t "$(cat /tmp/tag.txt):latest" \ -f "Dockerfile.final" \ . - + echo "=== Pushing SHA tag ===" docker push "$(cat /tmp/tag.txt):${CI_COMMIT_SHA}" - + echo "=== Pushing latest tag ===" docker push "$(cat /tmp/tag.txt):latest" - + echo "=== SUCCESS: $(cat /tmp/tag.txt) ===" - + rm -f "Dockerfile.temp" "Dockerfile.final" done @@ -277,30 +288,47 @@ steps: 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" + echo "=== Sprawdzanie aplikacji LinuxLocal ===" + if [ ! -d "./linux-apps" ]; then + echo "Folder ./linux-apps nie istnieje" exit 0 fi + echo "=== DEBUG: Zawartość ./linux-apps/ ===" + ls -la ./linux-apps/ + 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" + cd ./linux-apps + + for app in *; do + echo "→ DEBUG: Sprawdzam $app" - rm -rf "/opt/fa-apps/$APP_NAME" - cp -r "$app" "/opt/fa-apps/$APP_NAME" + if [ ! -d "$app" ]; then + echo " → $app nie jest folderem, pomijam" + continue + fi - chmod +x "/opt/fa-apps/$APP_NAME/$APP_NAME" + echo " → Kopiuję $app" + echo " → Zawartość:" + ls -la "$app/" + + rm -rf "/opt/fa-apps/$app" + cp -r "$app" "/opt/fa-apps/$app" + + find "/opt/fa-apps/$app" -type f -executable -exec chmod +x {} \; + + echo " → Skopiowano!" done + cd "${CI_WORKSPACE}" + echo "" echo "=== Wdrożone aplikacje ===" - ls -la /opt/fa-apps/ + ls -laR /opt/fa-apps/ depends_on: [publish-linux-local, containerize-apps] cleanup-docker: @@ -335,3 +363,4 @@ steps: depends_on: [deploy-linux-local] when: status: [success, failure] +