build w\ Avalonia Android and Browser
This commit is contained in:
parent
0533de7750
commit
77b97aaa5e
5 changed files with 88 additions and 164 deletions
|
|
@ -1,65 +1,6 @@
|
||||||
|
**/bin/
|
||||||
private/
|
**/obj/
|
||||||
.git
|
**/.playwright/
|
||||||
bin/
|
.git/
|
||||||
obj/
|
|
||||||
out/
|
|
||||||
dist/
|
|
||||||
node_modules/
|
|
||||||
|
|
||||||
*.pfx
|
|
||||||
*.userprefs
|
|
||||||
*.Private.cs
|
|
||||||
*-secret.json
|
|
||||||
|
|
||||||
.gitignore
|
|
||||||
.paket/
|
|
||||||
.vs/
|
.vs/
|
||||||
.sass-cache/
|
.github/
|
||||||
.private/
|
|
||||||
|
|
||||||
/out
|
|
||||||
bin
|
|
||||||
obj
|
|
||||||
bower_components
|
|
||||||
node_modules/
|
|
||||||
private/
|
|
||||||
|
|
||||||
DataProtection-Keys/
|
|
||||||
RSA-Params.json
|
|
||||||
appsettings.*.json
|
|
||||||
omnisharp.json
|
|
||||||
|
|
||||||
DataProtection/
|
|
||||||
|
|
||||||
/packages/
|
|
||||||
/src/Yavsc/Avatars-*/
|
|
||||||
/src/Yavsc/Blog-*/
|
|
||||||
/src/Yavsc/Bills-*/
|
|
||||||
/src/Yavsc/AppData*/
|
|
||||||
/src/Yavsc/Temp-*/
|
|
||||||
/src/Yavsc/bower_components/
|
|
||||||
/src/Yavsc/Data-Dev/
|
|
||||||
/src/test/testingrepo/
|
|
||||||
connectionsettings.Development.json
|
|
||||||
appsettings.Development.json
|
|
||||||
/src/Yavsc/web.log
|
|
||||||
/yavscd
|
|
||||||
builds/
|
|
||||||
/test/yavscTests/test-results.xml
|
|
||||||
/test/yavscTests/test-results.html
|
|
||||||
yavsc-pre
|
|
||||||
|
|
||||||
*.env
|
|
||||||
generated/
|
|
||||||
*.lscache
|
|
||||||
*.Development.json
|
|
||||||
*.log
|
|
||||||
|
|
||||||
**/AppDataDevelopment/
|
|
||||||
binaries/
|
|
||||||
build/
|
|
||||||
src/*/Blog-Dev/
|
|
||||||
*.mp4
|
|
||||||
src/Yavsc.Org/data/
|
|
||||||
|
|
||||||
|
|
|
||||||
41
.github/workflows/docker-publish.yml
vendored
Normal file
41
.github/workflows/docker-publish.yml
vendored
Normal file
|
|
@ -0,0 +1,41 @@
|
||||||
|
name: Build and Push Yavsc Production Image
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
- master
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
production-deploy:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
# 1. Récupération du code
|
||||||
|
- name: Check out the repo
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
# 2. Configuration du moteur de Buildx
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: actions/setup-buildx-action@v3
|
||||||
|
|
||||||
|
# 3. Connexion sécurisée à Docker Hub
|
||||||
|
- name: Log in to Docker Hub
|
||||||
|
uses: docker/login-action@v3
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
|
||||||
|
# 4. Build et Push de l'image de production finale
|
||||||
|
- name: Build and push production image
|
||||||
|
uses: docker/build-push-action@v6
|
||||||
|
with:
|
||||||
|
context: .
|
||||||
|
file: ./Dockerfile.prod
|
||||||
|
push: true
|
||||||
|
tags: |
|
||||||
|
pazof/yavsc:latest
|
||||||
|
pazof/yavsc:${{ github.sha }}
|
||||||
|
cache-from: type=gha
|
||||||
|
cache-to: type=gha,mode=max
|
||||||
|
|
@ -1,65 +0,0 @@
|
||||||
<Project>
|
|
||||||
<PropertyGroup>
|
|
||||||
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageVersion Include="AsciiDocSharp" Version="0.2.0" />
|
|
||||||
<PackageVersion Include="AsciiDocSharp.Converters.Html" Version="0.2.0" />
|
|
||||||
<PackageVersion Include="bootstrap" Version="5.3.8" />
|
|
||||||
<PackageVersion Include="coverlet.collector" Version="10.0.1" />
|
|
||||||
<PackageVersion Include="Google.Apis.Calendar.v3" Version="1.74.0.4154" />
|
|
||||||
<PackageVersion Include="Google.Apis.Compute.v1" Version="1.74.0.4138" />
|
|
||||||
<PackageVersion Include="HigginsSoft.IdentityServer8" Version="8.0.5-preview-net9" />
|
|
||||||
<PackageVersion Include="HigginsSoft.IdentityServer8.AspNetIdentity" Version="8.0.5-preview-net9" />
|
|
||||||
<PackageVersion Include="HigginsSoft.IdentityServer8.EntityFramework" Version="8.0.5-preview-net9" />
|
|
||||||
<PackageVersion Include="HigginsSoft.IdentityServer8.EntityFramework.Storage" Version="8.0.5-preview-net9" />
|
|
||||||
<PackageVersion Include="HigginsSoft.IdentityServer8.Security" Version="8.0.5-preview-net9" />
|
|
||||||
<PackageVersion Include="HigginsSoft.IdentityServer8.Storage" Version="8.0.5-preview-net9" />
|
|
||||||
<PackageVersion Include="IdentityModel.AspNetCore" Version="4.3.0" />
|
|
||||||
<PackageVersion Include="IdentityModel.OidcClient" Version="6.0.0" />
|
|
||||||
<PackageVersion Include="MailKit" Version="4.17.0" />
|
|
||||||
<PackageVersion Include="Microsoft.AspNetCore.Antiforgery" Version="2.3.10" />
|
|
||||||
<PackageVersion Include="Microsoft.AspNetCore.Authentication.Google" Version="10.0.8" />
|
|
||||||
<PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="10.0.8" />
|
|
||||||
<PackageVersion Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="10.0.8" />
|
|
||||||
<PackageVersion Include="Microsoft.AspNetCore.Hosting" Version="2.3.10" />
|
|
||||||
<PackageVersion Include="Microsoft.AspNetCore.Http.Features" Version="5.0.17" />
|
|
||||||
<PackageVersion Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="10.0.8" />
|
|
||||||
<PackageVersion Include="Microsoft.AspNetCore.Identity.UI" Version="10.0.8" />
|
|
||||||
<PackageVersion Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="10.0.8" />
|
|
||||||
<PackageVersion Include="Microsoft.AspNetCore.Razor" Version="2.3.0" />
|
|
||||||
<PackageVersion Include="Microsoft.AspNetCore.Razor.Language" Version="6.0.36" />
|
|
||||||
<PackageVersion Include="Microsoft.AspNetCore.SignalR" Version="1.2.10" />
|
|
||||||
<PackageVersion Include="Microsoft.AspNetCore.StaticFiles" Version="2.3.10" />
|
|
||||||
<PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="10.0.8" />
|
|
||||||
<PackageVersion Include="Microsoft.EntityFrameworkCore.InMemory" Version="10.0.8" />
|
|
||||||
<PackageVersion Include="Microsoft.EntityFrameworkCore.SqlServer" Version="10.0.8" />
|
|
||||||
<PackageVersion Include="Microsoft.EntityFrameworkCore.Tools" Version="10.0.8" />
|
|
||||||
<PackageVersion Include="Microsoft.Extensions.Caching.Memory" Version="10.0.8" />
|
|
||||||
<PackageVersion Include="Microsoft.Extensions.CommandLineUtils" Version="1.1.1" />
|
|
||||||
<PackageVersion Include="Microsoft.Extensions.Configuration" Version="10.0.8" />
|
|
||||||
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="10.0.8" />
|
|
||||||
<PackageVersion Include="Microsoft.Extensions.Logging" Version="10.0.8" />
|
|
||||||
<PackageVersion Include="Microsoft.Extensions.Options" Version="10.0.8" />
|
|
||||||
<PackageVersion Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="10.0.6" />
|
|
||||||
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.5.1" />
|
|
||||||
<PackageVersion Include="Microsoft.Playwright" Version="1.60.0" />
|
|
||||||
<PackageVersion Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="10.0.2" />
|
|
||||||
<PackageVersion Include="MimeKit" Version="4.16.0" />
|
|
||||||
<PackageVersion Include="Newtonsoft.Json" Version="13.0.4" />
|
|
||||||
<PackageVersion Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="10.0.1" />
|
|
||||||
<PackageVersion Include="PayPalMerchantSDK" Version="2.16.250" />
|
|
||||||
<PackageVersion Include="pazof.rules" Version="1.1.3" />
|
|
||||||
<PackageVersion Include="popper.js" Version="1.16.1" />
|
|
||||||
<PackageVersion Include="RazorEngine.NetCore" Version="3.1.1" />
|
|
||||||
<PackageVersion Include="Selenium.WebDriver" Version="4.44.0" />
|
|
||||||
<PackageVersion Include="Serilog.AspNetCore" Version="10.0.0" />
|
|
||||||
<PackageVersion Include="Swashbuckle.AspNetCore" Version="10.1.7" />
|
|
||||||
<PackageVersion Include="System.Security.Cryptography.Pkcs" Version="10.0.8" />
|
|
||||||
<PackageVersion Include="xunit" Version="2.9.3" />
|
|
||||||
<PackageVersion Include="xunit.runner.visualstudio" Version="3.1.5" />
|
|
||||||
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="10.0.8" />
|
|
||||||
<PackageVersion Include="Microsoft.EntityFrameworkCore.InMemory" Version="10.0.8" />
|
|
||||||
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
||||||
|
|
@ -11,7 +11,9 @@
|
||||||
<PackageVersion Include="Avalonia.Desktop" Version="12.0.4" />
|
<PackageVersion Include="Avalonia.Desktop" Version="12.0.4" />
|
||||||
<PackageVersion Include="Avalonia.Fonts.Inter" Version="12.0.4" />
|
<PackageVersion Include="Avalonia.Fonts.Inter" Version="12.0.4" />
|
||||||
<PackageVersion Include="Avalonia.Themes.Fluent" Version="12.0.4" />
|
<PackageVersion Include="Avalonia.Themes.Fluent" Version="12.0.4" />
|
||||||
<PackageVersion Include="AvaloniaUI.DiagnosticsSupport" Version="2.2.1" />
|
<PackageVersion Include="Avalonia.Browser" Version="12.0.4" />
|
||||||
|
<PackageVersion Include="Avalonia.Android" Version="12.0.4" />
|
||||||
|
<PackageVersion Include="AvaloniaUI.DiagnosticsSupport" Version="2.2.2" />
|
||||||
<PackageVersion Include="bootstrap" Version="5.3.8" />
|
<PackageVersion Include="bootstrap" Version="5.3.8" />
|
||||||
<PackageVersion Include="coverlet.collector" Version="10.0.1" />
|
<PackageVersion Include="coverlet.collector" Version="10.0.1" />
|
||||||
<PackageVersion Include="Google.Apis.Calendar.v3" Version="1.74.0.4154" />
|
<PackageVersion Include="Google.Apis.Calendar.v3" Version="1.74.0.4154" />
|
||||||
|
|
@ -24,7 +26,7 @@
|
||||||
<PackageVersion Include="HigginsSoft.IdentityServer8.Storage" Version="8.0.5-preview-net9" />
|
<PackageVersion Include="HigginsSoft.IdentityServer8.Storage" Version="8.0.5-preview-net9" />
|
||||||
<PackageVersion Include="IdentityModel.AspNetCore" Version="4.3.0" />
|
<PackageVersion Include="IdentityModel.AspNetCore" Version="4.3.0" />
|
||||||
<PackageVersion Include="IdentityModel.OidcClient" Version="6.0.0" />
|
<PackageVersion Include="IdentityModel.OidcClient" Version="6.0.0" />
|
||||||
<PackageVersion Include="Magick.NET-Q8-AnyCPU" Version="14.13.1" />
|
<PackageVersion Include="Magick.NET-Q8-AnyCPU" Version="14.14.0" />
|
||||||
<PackageVersion Include="MailKit" Version="4.17.0" />
|
<PackageVersion Include="MailKit" Version="4.17.0" />
|
||||||
<PackageVersion Include="Microsoft.AspNetCore.Antiforgery" Version="2.3.10" />
|
<PackageVersion Include="Microsoft.AspNetCore.Antiforgery" Version="2.3.10" />
|
||||||
<PackageVersion Include="Microsoft.AspNetCore.Authentication.Google" Version="10.0.8" />
|
<PackageVersion Include="Microsoft.AspNetCore.Authentication.Google" Version="10.0.8" />
|
||||||
|
|
@ -64,7 +66,7 @@
|
||||||
<PackageVersion Include="Selenium.WebDriver" Version="4.44.0" />
|
<PackageVersion Include="Selenium.WebDriver" Version="4.44.0" />
|
||||||
<PackageVersion Include="Serilog.AspNetCore" Version="10.0.0" />
|
<PackageVersion Include="Serilog.AspNetCore" Version="10.0.0" />
|
||||||
<PackageVersion Include="SixLabors.ImageSharp" Version="4.0.0" />
|
<PackageVersion Include="SixLabors.ImageSharp" Version="4.0.0" />
|
||||||
<PackageVersion Include="Swashbuckle.AspNetCore" Version="10.2.0" />
|
<PackageVersion Include="Swashbuckle.AspNetCore" Version="10.2.1" />
|
||||||
<PackageVersion Include="System.Security.Cryptography.Pkcs" Version="10.0.8" />
|
<PackageVersion Include="System.Security.Cryptography.Pkcs" Version="10.0.8" />
|
||||||
<PackageVersion Include="xunit" Version="2.9.3" />
|
<PackageVersion Include="xunit" Version="2.9.3" />
|
||||||
<PackageVersion Include="xunit.runner.visualstudio" Version="3.1.5" />
|
<PackageVersion Include="xunit.runner.visualstudio" Version="3.1.5" />
|
||||||
|
|
|
||||||
61
Dockerfile
61
Dockerfile
|
|
@ -1,33 +1,38 @@
|
||||||
# Build stage
|
# Utilisation de votre image globale pour le build et l'exécution
|
||||||
FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
|
FROM pazof/yavsc-build-env:latest AS build-env
|
||||||
WORKDIR /src
|
WORKDIR /src
|
||||||
COPY . .
|
|
||||||
RUN dotnet workload install android --skip-manifest-update
|
|
||||||
RUN dotnet workload restore
|
# 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.Web/*.csproj ./src/Yavsc.Web/
|
||||||
|
COPY src/Yavsc.Api/*.csproj ./src/Yavsc.Api/
|
||||||
|
COPY src/Yavsc.Blogs/*.csproj ./src/Yavsc.Blogs/
|
||||||
|
COPY src/cli/*.csproj ./src/cli/
|
||||||
|
COPY test/yavscTests/*.csproj ./test/yavscTests/
|
||||||
|
|
||||||
|
# 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/
|
||||||
|
|
||||||
|
# 3. Restauration des dépendances avec vos workloads actifs
|
||||||
RUN dotnet nuget add source https://isn.pschneider.fr/v3/index.json --allow-insecure-connections
|
RUN dotnet nuget add source https://isn.pschneider.fr/v3/index.json --allow-insecure-connections
|
||||||
RUN dotnet publish src/Yavsc.Org/Yavsc.Org.csproj -c Release -o /app/publish
|
RUN dotnet restore
|
||||||
|
|
||||||
# Runtime stage
|
# 4. Copie du reste du code source (filtré par votre .dockerignore)
|
||||||
FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS runtime
|
COPY . .
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
# Variables d'environnement avec valeurs par défaut
|
# 5. Compilation globale de la solution
|
||||||
ARG POSTGRES_HOST=localhost
|
RUN dotnet build -c Release
|
||||||
ARG POSTGRES_PORT=5432
|
|
||||||
ARG POSTGRES_DB=yavsc
|
|
||||||
ARG POSTGRES_USER=yavsc
|
|
||||||
ARG POSTGRES_PASSWORD
|
|
||||||
|
|
||||||
ENV POSTGRES_HOST=${POSTGRES_HOST}
|
# L'image finale reste sur votre environnement complet
|
||||||
ENV POSTGRES_PORT=${POSTGRES_PORT}
|
EXPOSE 8080
|
||||||
ENV POSTGRES_DB=${POSTGRES_DB}
|
CMD ["bash"]
|
||||||
ENV POSTGRES_USER=${POSTGRES_USER}
|
|
||||||
ENV POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
|
||||||
|
|
||||||
# Chaîne de connexion construite depuis les variables
|
|
||||||
ENV ConnectionStrings__DefaultConnection=\
|
|
||||||
"Host=${POSTGRES_HOST};Port=${POSTGRES_PORT};Database=${POSTGRES_DB};Username=${POSTGRES_USER};Password=${POSTGRES_PASSWORD}"
|
|
||||||
|
|
||||||
COPY --from=build /app/publish .
|
|
||||||
EXPOSE 5000
|
|
||||||
ENTRYPOINT ["dotnet", "Yavsc.Org.dll"]
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue