8 Commits

Author SHA1 Message Date
f207440ae6 added swagger for automatic API Documentation 2025-10-10 18:00:41 +02:00
ef187f8750 Basic Structure of new Background Service SystemManagement 2025-10-09 20:27:37 +02:00
570b5abfa0 Merge pull request 'pipeline job umbenannt' (#29) from bugix/pipeline into staging
All checks were successful
Gitea CI/CD / dotnet-build-and-test (push) Successful in 55s
Gitea CI/CD / Set Tag Name (push) Successful in 5s
Gitea CI/CD / docker-build-and-push (push) Successful in 6m17s
Gitea CI/CD / Create Tag (push) Successful in 5s
Reviewed-on: #29
2025-10-04 19:08:22 +02:00
8f938f999e pipeline job umbenannt 2025-10-04 19:07:49 +02:00
2249d1a776 adde debugging to build.yml
All checks were successful
Gitea CI/CD / build-and-test (push) Successful in 48s
Gitea CI/CD / Set Tag Name (push) Successful in 4s
Gitea CI/CD / docker-build-and-push (push) Successful in 6m12s
Gitea CI/CD / Create Tag (push) Successful in 5s
2025-10-04 14:43:02 +02:00
37de21f06b testing tagging
All checks were successful
Gitea CI/CD / build-and-test (push) Successful in 46s
Gitea CI/CD / Set Tag Name (push) Successful in 5s
Gitea CI/CD / docker-build-and-push (push) Successful in 6m15s
Gitea CI/CD / Create Tag (push) Successful in 5s
2025-10-04 14:32:04 +02:00
b9d5ade0f1 l
All checks were successful
Gitea CI/CD / build-and-test (push) Successful in 55s
Gitea CI/CD / Set Tag Name (push) Successful in 5s
Gitea CI/CD / docker-build-and-push (push) Successful in 6m0s
Gitea CI/CD / Create Tag (push) Successful in 5s
2025-10-04 14:19:06 +02:00
921b4a9664 added conditions to tag 2025-10-04 14:02:12 +02:00
6 changed files with 84 additions and 4 deletions

View File

@@ -8,7 +8,7 @@ on:
env:
DOTNET_VERSION: '8.0.x'
DOCKER_IMAGE_NAME: watcher
DOCKER_IMAGE_NAME: watcher-server
REGISTRY_URL: git.triggermeelmo.com
DOCKER_PLATFORMS: 'linux/amd64,linux/arm64'
@@ -17,7 +17,7 @@ concurrency:
cancel-in-progress: true
jobs:
build-and-test:
dotnet-build-and-test:
runs-on: ubuntu-latest
steps:
- name: Checkout code
@@ -43,7 +43,7 @@ jobs:
set-tag:
name: Set Tag Name
needs: [build-and-test]
needs: [dotnet-build-and-test]
#if: ${{ !failure() && !cancelled() && github.event_name != 'pull_request' }}
runs-on: ubuntu-latest
outputs:
@@ -95,7 +95,7 @@ jobs:
docker-build-and-push:
runs-on: ubuntu-latest
needs: [build-and-test, set-tag]
needs: [dotnet-build-and-test, set-tag]
if: |
needs.set-tag.outputs.should_tag == 'true' &&
github.event_name != 'pull_request'
@@ -123,6 +123,9 @@ jobs:
tag:
name: Create Tag
needs: [docker-build-and-push, set-tag]
if: |
needs.set-tag.outputs.should_tag == 'true' &&
github.event_name != 'pull_request'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

View File

@@ -1,5 +1,6 @@
using Microsoft.AspNetCore.Authentication.OpenIdConnect;
using Microsoft.EntityFrameworkCore;
using Microsoft.OpenApi.Models;
using Serilog;
@@ -36,11 +37,17 @@ builder.Services.AddHttpContextAccessor();
// Storage Singleton
builder.Services.AddSingleton<IDashboardStore, DashboardStore>();
builder.Services.AddSingleton<ISystemStore, SystemStore>();
// Background Services
builder.Services.AddHostedService<NetworkCheck>();
builder.Services.AddHostedService<DatabaseCheck>();
// Swagger API-Dokumentation
builder.Services.AddSwaggerGen(options =>
{
options.SwaggerDoc("v1", new OpenApiInfo { Title = "Watcher-Server API", Version = "v1" });
});
// ---------- Konfiguration ----------
DotNetEnv.Env.Load();
@@ -212,6 +219,8 @@ if (!app.Environment.IsDevelopment())
app.UseHttpsRedirection();
app.UseRouting();
app.UseSwagger();
app.UseAuthentication();
app.UseAuthorization();
@@ -222,4 +231,11 @@ app.MapControllerRoute(
pattern: "{controller=Home}/{action=Index}/{id?}"
);
app.MapSwagger();
app.UseSwaggerUI(options =>
{
options.SwaggerEndpoint("v1/swagger.json", "Watcher-Server API v1");
});
app.Run();

View File

@@ -0,0 +1,9 @@
namespace Watcher.Services;
public interface ISystemStore
{
Boolean NewVersionAvailable { get; set; }
Double DatabaseSize { get; set; }
}

View File

@@ -0,0 +1,42 @@
using System.Net.Http;
namespace Watcher.Services;
public class SystemManagement : BackgroundService
{
private readonly ILogger<NetworkCheck> _logger;
private ISystemStore _SystemStore;
public SystemManagement(ILogger<NetworkCheck> logger, ISystemStore SystemStore)
{
_logger = logger;
_SystemStore = SystemStore;
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
// Todo: Umstellen auf einmal alle 24h
var timer = new PeriodicTimer(TimeSpan.FromSeconds(30));
while (await timer.WaitForNextTickAsync(stoppingToken))
{
// Hintergrundprozess abwarten
await checkForNewDockerImageVersion();
// 5 Sekdunden Offset
await Task.Delay(TimeSpan.FromSeconds(5), stoppingToken);
}
}
public Task checkForNewDockerImageVersion()
{
return Task.CompletedTask;
}
public Task createDailySqliteBackup()
{
return Task.CompletedTask;
}
}

View File

@@ -0,0 +1,9 @@
namespace Watcher.Services;
public class SystemStore: ISystemStore
{
public Boolean NewVersionAvailable { get; set; }
public Double DatabaseSize { get; set; }
}

View File

@@ -23,6 +23,7 @@
<PackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="8.0.6" />
<PackageReference Include="Serilog.AspNetCore" Version="9.0.0" />
<PackageReference Include="Serilog.Sinks.File" Version="7.0.0" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="9.0.6" />
</ItemGroup>
</Project>