diff --git a/.woodpecker.yml b/.woodpecker.yml index 0cd7e74..dec625c 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -115,16 +115,27 @@ steps: set -euf cd "${CI_WORKSPACE}" > projects-to-build.txt + + echo "=== DEBUG: Szukam plików .csproj ===" + find . -name "*.csproj" -type f + find . -name "*.csproj" -type f | while read csproj; do + echo "→ Sprawdzam: $csproj" PROJECT_TYPE=$(dotnet msbuild "$csproj" -getProperty:ProjectType -noLogo 2>/dev/null || echo "Unknown") + echo " ProjectType = $PROJECT_TYPE" + if [[ "$PROJECT_TYPE" == "Unknown" || "$PROJECT_TYPE" == "DataModel" || "$PROJECT_TYPE" == "LinuxLocal" ]]; then - : + echo " → Pomijam (typ: $PROJECT_TYPE)" else PROJECT_NAME=$(basename "$csproj" .csproj) PROJECT_DIR=$(dirname "$csproj") echo "$PROJECT_DIR|$PROJECT_NAME" >> projects-to-build.txt + echo " → Dodaję: $PROJECT_DIR|$PROJECT_NAME" fi done + + echo "=== DEBUG: Zawartość projects-to-build.txt ===" + cat projects-to-build.txt depends_on: [publish-datamodels-to-baget] containerize-apps: image: woodpeckerci/plugin-docker-buildx:latest @@ -137,27 +148,40 @@ steps: - | set -euf cd "${CI_WORKSPACE}" - echo "DEBUG: envir DOCKER_HOST = ${DOCKER_HOST:-}" - echo "DEBUG: docker version:" - docker version || echo "docker version FAIL" - echo "DEBUG: ls /var/run:" - ls -l /var/run || true - echo "DEBUG: ls /var/run/docker.sock:" - ls -l /var/run/docker.sock || echo "brak socketu" - echo "DEBUG: DOCKER_HOST = $DOCKER_HOST" - echo "DEBUG: ls /var/run/docker.sock:" - ls -l /var/run/docker.sock || echo "Socket NIE widoczny" - echo "DEBUG: Użytkownik = '$GITEA_USER'" - echo "DEBUG: Token (pierwsze 4 znaki) = $GITEA_TOKEN..." + + echo "=== DEBUG: Zawartość projects-to-build.txt ===" + cat projects-to-build.txt || echo "Plik nie istnieje!" + echo "$GITEA_TOKEN" | docker login git.modwad.pl -u "$GITEA_USER" --password-stdin + if [ ! -s projects-to-build.txt ]; then echo "Brak projektów do zbudowania" exit 0 fi + while IFS='|' read -r PROJECT_DIR PROJECT_NAME; do - if [ -z "$PROJECT_NAME" ]; then continue; fi + # Wyczyść whitespace i pomiń puste linie + PROJECT_DIR=$(echo "$PROJECT_DIR" | xargs) + PROJECT_NAME=$(echo "$PROJECT_NAME" | xargs) + + if [ -z "$PROJECT_NAME" ]; then + echo "OSTRZEŻENIE: Pusta nazwa projektu, pomijam" + continue + fi + + echo "=== DEBUG: PROJECT_DIR='$PROJECT_DIR' PROJECT_NAME='$PROJECT_NAME' ===" + IMAGE_NAME="trent/${PROJECT_NAME,,}" FULL_IMAGE="git.modwad.pl/${IMAGE_NAME}" + + echo "=== DEBUG: IMAGE_NAME='$IMAGE_NAME' FULL_IMAGE='$FULL_IMAGE' ===" + + # Sprawdź czy PROJECT_DIR istnieje + if [ ! -d "$PROJECT_DIR" ]; then + echo "ERROR: Katalog $PROJECT_DIR nie istnieje!" + continue + fi + cat > "${PROJECT_DIR}/Dockerfile.temp" <<-EOF FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base WORKDIR /app @@ -173,15 +197,18 @@ steps: ENV ASPNETCORE_URLS=http://+:8080 ENTRYPOINT ["dotnet", "${PROJECT_NAME}.dll"] EOF + echo "Buduję → ${FULL_IMAGE}:${CI_COMMIT_SHA}" docker buildx build --platform linux/amd64 \ -t "${FULL_IMAGE}:${CI_COMMIT_SHA}" \ -t "${FULL_IMAGE}:latest" \ -f "${PROJECT_DIR}/Dockerfile.temp" \ "${PROJECT_DIR}" + docker push "${FULL_IMAGE}:${CI_COMMIT_SHA}" docker push "${FULL_IMAGE}:latest" + rm -f "${PROJECT_DIR}/Dockerfile.temp" echo "Opublikowano: ${FULL_IMAGE}:latest" done < projects-to-build.txt - depends_on: [select-projects-for-container] \ No newline at end of file + depends_on: [select-projects-for-container]