From 69aaa4b14367b5a9522fe005b5f7066dde11be40 Mon Sep 17 00:00:00 2001 From: trent Date: Thu, 15 Jan 2026 07:38:14 +0000 Subject: [PATCH 1/2] Update .woodpecker.yml --- .woodpecker.yml | 87 ++++++++++++++++++++++++++----------------------- 1 file changed, 47 insertions(+), 40 deletions(-) diff --git a/.woodpecker.yml b/.woodpecker.yml index f7deadf..8d62793 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -117,41 +117,48 @@ steps: done depends_on: [pack-datamodels] - containerize-apps: - image: woodpeckerci/plugin-docker-buildx:latest - environment: - GITEA_USER: - from_secret: gitea_registry_user - GITEA_TOKEN: - from_secret: gitea_registry_token - commands: - - | - set -euf - cd "${CI_WORKSPACE}" + containerize-apps: + image: mcr.microsoft.com/dotnet/sdk:latest + volumes: + - /var/run/docker.sock:/var/run/docker.sock + environment: + GITEA_USER: + from_secret: gitea_registry_user + GITEA_TOKEN: + from_secret: gitea_registry_token + commands: + - | + set -euf + cd "${CI_WORKSPACE}" - echo "DEBUG: Użytkownik = '$GITEA_USER'" - echo "DEBUG: Token (pierwsze 4 znaki) = $GITEA_TOKEN..." + # Instalacja Docker CLI i buildx (potrzebne w kontenerze .NET) + apk update && apk add --no-cache docker docker-cli-buildx + # Uruchomienie dockerd jeśli potrzeba (nie zawsze wymagane przy sock) + # dockerd-entrypoint.sh & sleep 5 # opcjonalne, jeśli masz problemy z sock - echo "$GITEA_TOKEN" | docker login git.modwad.pl -u "$GITEA_USER" --password-stdin + echo "DEBUG: Użytkownik = '$GITEA_USER'" + echo "DEBUG: Token (pierwsze 4 znaki) = $GITEA_TOKEN:0:4..." - dotnet restore + echo "$GITEA_TOKEN" | docker login git.modwad.pl -u "$GITEA_USER" --password-stdin - find . -name "*.csproj" -type f | while read csproj; do - PROJECT_DIR=$(dirname "$csproj") - PROJECT_NAME=$(basename "$csproj" .csproj) + dotnet restore - 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") + find . -name "*.csproj" -type f | while read csproj; do + PROJECT_DIR=$(dirname "$csproj") + PROJECT_NAME=$(basename "$csproj" .csproj) - if [ "$DEPLOY_TO_CENTRAL" != "true" ] || [[ "$PROJECT_TYPE" == "Unknown" || "$PROJECT_TYPE" == "DataModel" || "$PROJECT_TYPE" == "LinuxLocal" ]]; then - echo "Pomijam $PROJECT_NAME ($PROJECT_TYPE)" - continue - fi + 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") - IMAGE_NAME="trent/${PROJECT_NAME,,}" - FULL_IMAGE="git.modwad.pl/${IMAGE_NAME}" + if [ "$DEPLOY_TO_CENTRAL" != "true" ] || [[ "$PROJECT_TYPE" == "Unknown" || "$PROJECT_TYPE" == "DataModel" || "$PROJECT_TYPE" == "LinuxLocal" ]]; then + echo "Pomijam $PROJECT_NAME ($PROJECT_TYPE)" + continue + fi - cat > "${PROJECT_DIR}/Dockerfile.temp" <<-EOF + IMAGE_NAME="trent/${PROJECT_NAME,,}" + FULL_IMAGE="git.modwad.pl/${IMAGE_NAME}" + + cat > "${PROJECT_DIR}/Dockerfile.temp" <<-EOF FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base WORKDIR /app EXPOSE 8080 @@ -167,20 +174,20 @@ steps: COPY --from=build /app/publish . ENV ASPNETCORE_URLS=http://+:8080 ENTRYPOINT ["dotnet", "${PROJECT_NAME}.dll"] - EOF + 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}" + 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" + docker push "${FULL_IMAGE}:${CI_COMMIT_SHA}" + docker push "${FULL_IMAGE}:latest" - rm -f "${PROJECT_DIR}/Dockerfile.temp" + rm -f "${PROJECT_DIR}/Dockerfile.temp" - echo "Opublikowano: ${FULL_IMAGE}:latest" - done - depends_on: [publish-datamodels-to-baget] \ No newline at end of file + echo "Opublikowano: ${FULL_IMAGE}:latest" + done + depends_on: [publish-datamodels-to-baget] \ No newline at end of file -- 2.49.1 From b3096691024607d885a0a9dea48572ed6277c9df Mon Sep 17 00:00:00 2001 From: trent Date: Thu, 15 Jan 2026 07:39:59 +0000 Subject: [PATCH 2/2] Update .woodpecker.yml --- .woodpecker.yml | 110 ++++++++++++++++++++---------------------------- 1 file changed, 45 insertions(+), 65 deletions(-) diff --git a/.woodpecker.yml b/.woodpecker.yml index 8d62793..43dde5f 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -11,14 +11,12 @@ steps: - pwd - ls -la - find /woodpecker -maxdepth 4 -type d 2>/dev/null - clone-manual: image: woodpeckerci/plugin-git settings: remote: http://gitea:3000/FA/FA_WEB.git branch: master depth: 1 - restore: image: mcr.microsoft.com/dotnet/sdk:latest commands: @@ -28,7 +26,6 @@ steps: echo "Aktualna ścieżka: $(pwd)" echo "=== Restore wszystkich projektów ===" find . -name "*.csproj" -type f -exec dotnet restore "{}" \; - test: image: mcr.microsoft.com/dotnet/sdk:latest commands: @@ -38,7 +35,6 @@ steps: echo "=== Uruchamianie testów ===" dotnet test --no-restore --configuration Release --logger "trx" depends_on: [restore] - pack-datamodels: image: mcr.microsoft.com/dotnet/sdk:latest commands: @@ -53,14 +49,11 @@ steps: --minimum-major-minor 2.0 \ --default-pre-release-identifiers alpha.0 \ --verbosity info) - echo "Wersja: $MINVER_VERSION" - mkdir -p nupkg echo "=== Pełniejsze fetch git (unshallow + tags) ===" git fetch --prune --unshallow || echo "Już full clone – OK" git fetch --tags - echo "=== Dostępne tagi ===" git tag -l echo "=== Aktualny commit i opis ===" @@ -85,7 +78,6 @@ steps: echo "=== Spakowane pakiety ===" ls -la nupkg/ || echo "Brak spakowanych pakietów!" depends_on: [test] - publish-datamodels-to-baget: image: mcr.microsoft.com/dotnet/sdk:latest environment: @@ -116,78 +108,66 @@ steps: --skip-duplicate done depends_on: [pack-datamodels] + containerize-apps: + image: mcr.microsoft.com/dotnet/sdk:latest + privileged: true + volumes: + - /var/run/docker.sock:/var/run/docker.sock + environment: + GITEA_USER: + from_secret: gitea_registry_user + GITEA_TOKEN: + from_secret: gitea_registry_token + commands: + - | + set -euf + cd "${CI_WORKSPACE}" - containerize-apps: - image: mcr.microsoft.com/dotnet/sdk:latest - volumes: - - /var/run/docker.sock:/var/run/docker.sock - environment: - GITEA_USER: - from_secret: gitea_registry_user - GITEA_TOKEN: - from_secret: gitea_registry_token - commands: - - | - set -euf - cd "${CI_WORKSPACE}" + # Instalacja narzędzi Docker w kontenerze .NET (Alpine-based) + apk update && apk add --no-cache docker docker-cli-buildx - # Instalacja Docker CLI i buildx (potrzebne w kontenerze .NET) - apk update && apk add --no-cache docker docker-cli-buildx - # Uruchomienie dockerd jeśli potrzeba (nie zawsze wymagane przy sock) - # dockerd-entrypoint.sh & sleep 5 # opcjonalne, jeśli masz problemy z sock + echo "DEBUG: Użytkownik = '$GITEA_USER'" + echo "DEBUG: Token (pierwsze 4 znaki) = $GITEA_TOKEN..." - echo "DEBUG: Użytkownik = '$GITEA_USER'" - echo "DEBUG: Token (pierwsze 4 znaki) = $GITEA_TOKEN:0:4..." + echo "$GITEA_TOKEN" | docker login git.modwad.pl -u "$GITEA_USER" --password-stdin - echo "$GITEA_TOKEN" | docker login git.modwad.pl -u "$GITEA_USER" --password-stdin + dotnet restore - dotnet restore - - 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 "Pomijam $PROJECT_NAME ($PROJECT_TYPE)" - continue - fi - - IMAGE_NAME="trent/${PROJECT_NAME,,}" - FULL_IMAGE="git.modwad.pl/${IMAGE_NAME}" - - cat > "${PROJECT_DIR}/Dockerfile.temp" <<-EOF + 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 "Pomijam $PROJECT_NAME ($PROJECT_TYPE)" + continue + fi + IMAGE_NAME="trent/${PROJECT_NAME,,}" + FULL_IMAGE="git.modwad.pl/${IMAGE_NAME}" + cat > "${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ę → ${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 - depends_on: [publish-datamodels-to-baget] \ No newline at end of file + 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 + depends_on: [publish-datamodels-to-baget] \ No newline at end of file -- 2.49.1