Files
Encelado/TradingBot/TradingBot.csproj
T
Alby96 61f1e59964 Rimuovi cartella docs\deployment\ da TradingBot.csproj
Eliminata la voce relativa alla cartella docs\deployment\ dal file di progetto per semplificare la struttura e rimuovere riferimenti non più necessari alla documentazione di deployment.
2026-05-26 17:49:25 +02:00

137 lines
9.3 KiB
XML

<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<BlazorDisableThrowNavigationException>true</BlazorDisableThrowNavigationException>
<!-- Docker Publishing -->
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
<DockerfileContext>.</DockerfileContext>
<!--
Versioning - Semantic Versioning (https://semver.org/)
Format: MAJOR.MINOR.PATCH
- MAJOR: Breaking changes (incompatible API changes)
- MINOR: New features (backward-compatible)
- PATCH: Bug fixes (backward-compatible)
Esempio workflow:
- 1.0.0 -> 1.0.1 (bug fix)
- 1.0.1 -> 1.1.0 (new feature)
- 1.1.0 -> 2.0.0 (breaking change)
-->
<Version>1.5.2</Version>
<AssemblyVersion>1.5.2.0</AssemblyVersion>
<FileVersion>1.5.2.0</FileVersion>
<!-- Assembly Information -->
<Product>TradingBot</Product>
<Description>Automated Crypto Trading Bot with Blazor UI</Description>
<Copyright>Copyright © 2024 Alby96</Copyright>
<Company>Alby96</Company>
<Authors>Alby96</Authors>
<!-- Build Metadata -->
<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
<Deterministic>true</Deterministic>
<InformationalVersion>$(Version)+$(GITHUB_SHA)</InformationalVersion>
<!-- Gitea Registry -->
<ContainerRegistry>gitea.encke-hake.ts.net</ContainerRegistry>
<ContainerRepository>alby96/encelado/tradingbot</ContainerRepository>
</PropertyGroup>
<!-- Folders for organization -->
<ItemGroup>
<Folder Include="Properties\PublishProfiles\" />
</ItemGroup>
<!--
Post-Publish Target: Push to Gitea Container Registry
Crea automaticamente 3 tag per ogni publish:
1. latest - Sempre ultima versione
2. {Version} - Versione semantica (es. 1.3.0)
3. {Version}-{Date} - Versione + timestamp (es. 1.3.0-20241222)
Condizioni di attivazione:
- Configuration = Release
- Non dentro container Docker
- Profilo Docker in uso
- Docker daemon running (verifica disponibilità)
-->
<Target Name="PushToGiteaRegistry" AfterTargets="Publish" Condition="'$(Configuration)' == 'Release' And '$(DOTNET_RUNNING_IN_CONTAINER)' != 'true' And '$(DockerPublish)' == 'true'">
<PropertyGroup>
<GiteaImage>$(ContainerRegistry)/$(ContainerRepository)</GiteaImage>
<BuildDate>$([System.DateTime]::Now.ToString("yyyyMMdd"))</BuildDate>
<VersionedTag>$(Version)-$(BuildDate)</VersionedTag>
</PropertyGroup>
<!-- Check if Docker is available -->
<Exec Command="docker version" ContinueOnError="true" IgnoreExitCode="true">
<Output TaskParameter="ExitCode" PropertyName="DockerExitCode" />
</Exec>
<!-- Only proceed if Docker is available -->
<PropertyGroup>
<DockerAvailable Condition="'$(DockerExitCode)' == '0'">true</DockerAvailable>
<DockerAvailable Condition="'$(DockerExitCode)' != '0'">false</DockerAvailable>
</PropertyGroup>
<Message Condition="'$(DockerAvailable)' != 'true'" Importance="high" Text="" />
<Message Condition="'$(DockerAvailable)' != 'true'" Importance="high" Text="========================================" />
<Message Condition="'$(DockerAvailable)' != 'true'" Importance="high" Text="⚠️ Docker Not Available" />
<Message Condition="'$(DockerAvailable)' != 'true'" Importance="high" Text="========================================" />
<Message Condition="'$(DockerAvailable)' != 'true'" Importance="high" Text="" />
<Message Condition="'$(DockerAvailable)' != 'true'" Importance="high" Text="Docker daemon is not running or Docker Desktop is not started." />
<Message Condition="'$(DockerAvailable)' != 'true'" Importance="high" Text="" />
<Message Condition="'$(DockerAvailable)' != 'true'" Importance="high" Text="📋 To enable Gitea Registry push:" />
<Message Condition="'$(DockerAvailable)' != 'true'" Importance="high" Text=" 1. Start Docker Desktop" />
<Message Condition="'$(DockerAvailable)' != 'true'" Importance="high" Text=" 2. Wait for Docker to be ready" />
<Message Condition="'$(DockerAvailable)' != 'true'" Importance="high" Text=" 3. Run Publish again" />
<Message Condition="'$(DockerAvailable)' != 'true'" Importance="high" Text="" />
<Message Condition="'$(DockerAvailable)' != 'true'" Importance="high" Text="✅ Compilation successful - application ready to run locally" />
<Message Condition="'$(DockerAvailable)' != 'true'" Importance="high" Text="⏭️ Skipping Gitea Registry push" />
<Message Condition="'$(DockerAvailable)' != 'true'" Importance="high" Text="" />
<!-- Only execute Docker commands if Docker is available -->
<CallTarget Condition="'$(DockerAvailable)' == 'true'" Targets="ExecuteGiteaPush" />
</Target>
<Target Name="ExecuteGiteaPush">
<PropertyGroup>
<GiteaImage>$(ContainerRegistry)/$(ContainerRepository)</GiteaImage>
<BuildDate>$([System.DateTime]::Now.ToString("yyyyMMdd"))</BuildDate>
<VersionedTag>$(Version)-$(BuildDate)</VersionedTag>
</PropertyGroup>
<Message Importance="high" Text="" />
<Message Importance="high" Text="========================================" />
<Message Importance="high" Text="🐳 Gitea Container Registry Push" />
<Message Importance="high" Text="========================================" />
<Message Importance="high" Text="" />
<Message Importance="high" Text="📦 Version: $(Version)" />
<Message Importance="high" Text="📅 Build Date: $(BuildDate)" />
<Message Importance="high" Text="" />
<Message Importance="high" Text="🏷️ Creating tags..." />
<!-- Tag 1: latest -->
<Exec Command="docker tag tradingbot:latest $(GiteaImage):latest" />
<Message Importance="high" Text=" ✅ latest" />
<!-- Tag 2: Version (semantic) -->
<Exec Command="docker tag tradingbot:latest $(GiteaImage):$(Version)" />
<Message Importance="high" Text=" ✅ $(Version)" />
<!-- Tag 3: Version-Date -->
<Exec Command="docker tag tradingbot:latest $(GiteaImage):$(VersionedTag)" />
<Message Importance="high" Text=" ✅ $(VersionedTag)" />
<Message Importance="high" Text="" />
<Message Importance="high" Text="🚀 Pushing to $(ContainerRegistry)..." />
<!-- Push all tags -->
<Exec Command="docker push $(GiteaImage):latest" />
<Message Importance="high" Text=" ✅ Pushed: latest" />
<Exec Command="docker push $(GiteaImage):$(Version)" />
<Message Importance="high" Text=" ✅ Pushed: $(Version)" />
<Exec Command="docker push $(GiteaImage):$(VersionedTag)" />
<Message Importance="high" Text=" ✅ Pushed: $(VersionedTag)" />
<Message Importance="high" Text="" />
<Message Importance="high" Text="========================================" />
<Message Importance="high" Text="✅ Successfully pushed to Gitea Registry!" />
<Message Importance="high" Text="========================================" />
<Message Importance="high" Text="" />
<Message Importance="high" Text="📦 Published images:" />
<Message Importance="high" Text=" - $(GiteaImage):latest" />
<Message Importance="high" Text=" - $(GiteaImage):$(Version)" />
<Message Importance="high" Text=" - $(GiteaImage):$(VersionedTag)" />
<Message Importance="high" Text="" />
<Message Importance="high" Text="🔗 Verify at:" />
<Message Importance="high" Text=" https://$(ContainerRegistry)/Alby96/Encelado/-/packages" />
<Message Importance="high" Text="" />
</Target>
</Project>