diff --git a/.github/workflows/docker-publish-backend.yml b/.github/workflows/docker-publish-backend.yml index 2d84b767f..29a378f61 100644 --- a/.github/workflows/docker-publish-backend.yml +++ b/.github/workflows/docker-publish-backend.yml @@ -9,6 +9,7 @@ on: jobs: production-deploy: runs-on: ubuntu-26.04 + steps: # 1. Récupération du code - name: Check out the repo @@ -31,17 +32,7 @@ jobs: - name: Workloads restore run: dotnet workload restore - name: Test - env: - TEST_FAILED: "" - run: make test || export TEST_FAILED=$? - - uses: actions/upload-artifact@v7 - with: - name: my-artifact - path: test-reports/**/* - - name: Fail if tests failed - if: ${{ env.TEST_FAILED != '' && env.TEST_FAILED != '0' }} - run: exit $TEST_FAILED - + run: dotnet test --report-xunit --report-xunit-html --results-directory "test-reports" # 4. Build et Push de l'image de production finale - name: Build and push production image uses: docker/build-push-action@v7 diff --git a/Dockerfile.backend b/Dockerfile.backend index 46c9a982e..a4e9a54a9 100644 --- a/Dockerfile.backend +++ b/Dockerfile.backend @@ -1,12 +1,36 @@ # Utilisation de l'image globale pour le build et l'exécution -FROM pazof/yavsc-build-env:debian13-dotnet10-android36-jdk21-v4 AS build-env +FROM pazof/yavsc-build-env:debian12-dotnet10-android36-v1 AS build-env WORKDIR /src + # 1. Copie de la solution +COPY *.sln ./ +COPY Directory.*.props ./ + +# 2. Copie de l'intégralité des fichiers de projets (.csproj) pour la restauration +COPY src/Yavsc.Org/*.csproj ./src/Yavsc.Org/ +COPY src/Yavsc.Abstract/*.csproj ./src/Yavsc.Abstract/ +COPY src/Yavsc.Server/*.csproj ./src/Yavsc.Server/ +COPY src/Yavsc.Api/*.csproj ./src/Yavsc.Api/ +COPY src/Yavsc.Blogs/*.csproj ./src/Yavsc.Blogs/ +COPY src/cli/*.csproj ./src/cli/ +COPY src/Yavsc.Org.Tests/*.csproj ./src/Yavsc.Org.Tests/ + +# Projets associés à PostIt +COPY src/PostIt/PostIt/*.csproj ./src/PostIt/PostIt/ +COPY src/PostIt/PostIt.Android/*.csproj ./src/PostIt/PostIt.Android/ +COPY src/PostIt/PostIt.Browser/*.csproj ./src/PostIt/PostIt.Browser/ +COPY src/PostIt/PostIt.Desktop/*.csproj ./src/PostIt/PostIt.Desktop/ + +# 4. Copie de l'intégralité du code source COPY . . -RUN dotnet workload restore + # 4. Restauration des dépendances pour tous les projets RUN dotnet restore + +# 5. Copie de la totalité du code source (filtrée par votre .dockerignore) +COPY . . + # 6. Compilation du serveur Web principal RUN dotnet build src/Yavsc.Org/Yavsc.Org.csproj -c Release --no-restore -clp:ErrorsOnly diff --git a/Makefile b/Makefile index 04efba0be..1893a910e 100644 --- a/Makefile +++ b/Makefile @@ -5,6 +5,8 @@ DESTDIR=/tmp/yavsc APP_PATH=srv/www/yavsc APP_FULL_PATH=$(DESTDIR)/$(APP_PATH) +include .env + all: dotnet build --nologo diff --git a/src/PostIt/PostIt/App.axaml.cs b/src/PostIt/PostIt/App.axaml.cs index b0f1c30cd..fca8e0313 100644 --- a/src/PostIt/PostIt/App.axaml.cs +++ b/src/PostIt/PostIt/App.axaml.cs @@ -44,6 +44,10 @@ public partial class App : Application, ILiveView, IVMPusherApp public override void Initialize() { AvaloniaXamlLoader.Load(this); + +#if DEBUG + this.AttachDeveloperTools(); +#endif } public override void OnFrameworkInitializationCompleted()