From 3d59cb1b68b65f871ded569dffc8b71e52d309f1 Mon Sep 17 00:00:00 2001 From: trent Date: Thu, 15 Jan 2026 10:51:23 +0000 Subject: [PATCH] Update .woodpecker.yml --- .woodpecker.yml | 93 ++++++++++++++++++------------------------------- 1 file changed, 34 insertions(+), 59 deletions(-) diff --git a/.woodpecker.yml b/.woodpecker.yml index cf6ff8f..8e3ea68 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -116,26 +116,20 @@ steps: 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 + echo "Znaleziono projektow do budowy:" + wc -l < projects-to-build.txt depends_on: [publish-datamodels-to-baget] containerize-apps: image: docker:27-cli @@ -149,67 +143,48 @@ steps: set -euf cd "${CI_WORKSPACE}" - 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" + echo "Brak projektow" exit 0 fi - while IFS='|' read -r PROJECT_DIR PROJECT_NAME; do - PROJECT_DIR=$(echo "$PROJECT_DIR" | xargs) - PROJECT_NAME=$(echo "$PROJECT_NAME" | xargs) + cat projects-to-build.txt | while IFS='|' read -r PDIR PNAME; do + PDIR=$(echo "$PDIR" | xargs) + PNAME=$(echo "$PNAME" | xargs) - if [ -z "$PROJECT_NAME" ]; then - echo "OSTRZEŻENIE: Pusta nazwa projektu, pomijam" - continue - fi + test -z "$PNAME" && continue + test ! -d "$PDIR" && continue - PROJECT_NAME_LOWER=$(echo "$PROJECT_NAME" | tr '[:upper:]' '[:lower:]') + LOWER=$(echo "$PNAME" | tr 'A-Z' 'a-z') + TAG="git.modwad.pl/faapp/${LOWER}" - # Buduj string po kawałku, żeby uniknąć cenzurowania - ORG_NAME="faapp" - REGISTRY="git.modwad.pl" - FULL_IMAGE="${REGISTRY}/${ORG_NAME}/${PROJECT_NAME_LOWER}" + cat > "${PDIR}/Dockerfile.temp" < "${PROJECT_DIR}/Dockerfile.temp" <<-EOF - FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base - WORKDIR /app - EXPOSE 8080 - FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build - WORKDIR /src - COPY . . - RUN dotnet restore "${PROJECT_NAME}.csproj" - RUN dotnet publish "${PROJECT_NAME}.csproj" -c Release -o /app/publish /p:UseAppHost=false - FROM base AS final - WORKDIR /app - COPY --from=build /app/publish . - ENV ASPNETCORE_URLS=http://+:8080 - ENTRYPOINT ["dotnet", "${PROJECT_NAME}.dll"] - EOF - - echo "Buduję obraz..." docker buildx build --platform linux/amd64 \ - -t "${FULL_IMAGE}:${CI_COMMIT_SHA}" \ - -t "${FULL_IMAGE}:latest" \ - -f "${PROJECT_DIR}/Dockerfile.temp" \ - "${PROJECT_DIR}" + -t "${TAG}:${CI_COMMIT_SHA}" \ + -t "${TAG}:latest" \ + -f "${PDIR}/Dockerfile.temp" \ + "${PDIR}" 2>&1 | head -20 - docker push "${FULL_IMAGE}:${CI_COMMIT_SHA}" - docker push "${FULL_IMAGE}:latest" + docker push "${TAG}:${CI_COMMIT_SHA}" 2>&1 | head -10 + docker push "${TAG}:latest" 2>&1 | head -10 - rm -f "${PROJECT_DIR}/Dockerfile.temp" - echo "Opublikowano: ${FULL_IMAGE}:latest" - done < projects-to-build.txt + rm -f "${PDIR}/Dockerfile.temp" + done depends_on: [select-projects-for-container]