diff --git a/.woodpecker.yml b/.woodpecker.yml index b48852d..5a878ff 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -108,27 +108,24 @@ steps: --skip-duplicate done depends_on: [pack-datamodels] - select-projects-for-docker: + select-projects-for-container: image: mcr.microsoft.com/dotnet/sdk:latest commands: - | set -euf cd "${CI_WORKSPACE}" - echo "" > projects-to-build.txt + > projects-to-build.txt find . -name "*.csproj" -type f | while read csproj; do - PROJECT_DIR=$(dirname "$csproj") - PROJECT_NAME=$(basename "$csproj" .csproj) PROJECT_TYPE=$(dotnet msbuild "$csproj" -getProperty:ProjectType -noLogo 2>/dev/null || echo "Unknown") DEPLOY_TO_CENTRAL=$(dotnet msbuild "$csproj" -getProperty:DeployToCentral -noLogo 2>/dev/null || echo "false") - if [ "$DEPLOY_TO_CENTRAL" = "true" ] && [ "$PROJECT_TYPE" != "Unknown" ] && [ "$PROJECT_TYPE" != "DataModel" ] && [ "$PROJECT_TYPE" != "LinuxLocal" ]; then - echo "$PROJECT_DIR|$PROJECT_NAME" >> projects-to-build.txt - echo "Wybrano do builda: $PROJECT_NAME ($PROJECT_TYPE, DeployToCentral=true)" + if [ "$DEPLOY_TO_CENTRAL" != "true" ] || [[ "$PROJECT_TYPE" == "Unknown" || "$PROJECT_TYPE" == "DataModel" || "$PROJECT_TYPE" == "LinuxLocal" ]]; then + : else - echo "Pomijam $PROJECT_NAME ($PROJECT_TYPE, DeployToCentral=$DEPLOY_TO_CENTRAL)" + PROJECT_NAME=$(basename "$csproj" .csproj) + PROJECT_DIR=$(dirname "$csproj") + echo "$PROJECT_DIR|$PROJECT_NAME" >> projects-to-build.txt fi done - echo "=== Lista wybranych projektów ===" - cat projects-to-build.txt || echo "Brak projektów do builda" depends_on: [publish-datamodels-to-baget] containerize-apps: image: woodpeckerci/plugin-docker-buildx:latest @@ -144,11 +141,11 @@ steps: echo "DEBUG: Użytkownik = '$GITEA_USER'" echo "DEBUG: Token (pierwsze 4 znaki) = $GITEA_TOKEN..." echo "$GITEA_TOKEN" | docker login git.modwad.pl -u "$GITEA_USER" --password-stdin - if [ ! -f projects-to-build.txt ]; then - echo "Brak pliku projects-to-build.txt – nic nie budujemy" + if [ ! -s projects-to-build.txt ]; then + echo "Brak projektów do zbudowania" exit 0 fi - cat projects-to-build.txt | while IFS='|' read PROJECT_DIR PROJECT_NAME; do + while IFS='|' read -r PROJECT_DIR PROJECT_NAME; do if [ -z "$PROJECT_NAME" ]; then continue; fi IMAGE_NAME="trent/${PROJECT_NAME,,}" FULL_IMAGE="git.modwad.pl/${IMAGE_NAME}" @@ -177,5 +174,5 @@ steps: docker push "${FULL_IMAGE}:latest" rm -f "${PROJECT_DIR}/Dockerfile.temp" echo "Opublikowano: ${FULL_IMAGE}:latest" - done - depends_on: [select-projects-for-docker] \ No newline at end of file + done < projects-to-build.txt + depends_on: [select-projects-for-container] \ No newline at end of file