Compare commits
3 Commits
e79ec360ea
...
90b4662dda
Author | SHA1 | Date | |
---|---|---|---|
90b4662dda | |||
e7edc79ebc | |||
aabeed0aa5 |
@ -1,29 +0,0 @@
|
|||||||
name: .NET Test Pipeline
|
|
||||||
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
[master, 'release/*']
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build-and-test:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Set up .NET Core
|
|
||||||
uses: actions/setup-dotnet@v4
|
|
||||||
with:
|
|
||||||
dotnet-version: '8.0.x'
|
|
||||||
|
|
||||||
- name: Restore dependencies
|
|
||||||
run: dotnet restore
|
|
||||||
|
|
||||||
- name: Build the solution
|
|
||||||
run: dotnet build --configuration Release
|
|
||||||
|
|
||||||
- name: Run tests
|
|
||||||
run: dotnet test --configuration Release --no-build --no-restore --verbosity normal
|
|
30
.github/workflows/code-analyze.yaml
vendored
Normal file
30
.github/workflows/code-analyze.yaml
vendored
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
name: .NET Test Pipeline
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
pull_request:
|
||||||
|
types: [opened, synchronize, reopened]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checking out
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: SonarScanner for .NET 8 with pull request decoration support
|
||||||
|
uses: highbyte/sonarscan-dotnet@v2.3.3
|
||||||
|
with:
|
||||||
|
sonarProjectKey: $(echo "${{ github.repository }}" | cut -d'/' -f2)
|
||||||
|
sonarProjectName: $(echo "${{ github.repository }}" | cut -d'/' -f2)
|
||||||
|
sonarHostname: ${{ secrets.SONAR_HOST_URL }}
|
||||||
|
dotnetPreBuildCmd: dotnet nuget add source --name="Winsomnia" --username ${secrets.NUGET_USERNAME} --password ${{ secrets.NUGET_PASSWORD }} --store-password-in-clear-text ${secrets.NUGET_ADDRESS} && dotnet format --verify-no-changes --diagnostics -v diag --severity warn
|
||||||
|
dotnetTestArguments: --logger trx --collect:"XPlat Code Coverage" -- DataCollectionRunSettings.DataCollectors.DataCollector.Configuration.Format=opencover
|
||||||
|
sonarBeginArguments: /d:sonar.cs.opencover.reportsPaths="**/TestResults/**/coverage.opencover.xml" -d:sonar.cs.vstest.reportsPaths="**/TestResults/*.trx"
|
||||||
|
env:
|
||||||
|
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|
@ -3,7 +3,7 @@
|
|||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
[master, 'release/*']
|
[master]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-and-deploy:
|
build-and-deploy:
|
||||||
@ -24,7 +24,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Build and push Docker image
|
- name: Build and push Docker image
|
||||||
run: |
|
run: |
|
||||||
docker build --build-arg NUGET_USERNAME=${{ secrets.NUGET_USERNAME }} --build-arg NUGET_PASSWORD=${{ secrets.NUGET_PASSWORD }} -t ${{ secrets.DOCKER_USERNAME }}/mirea-backend:latest .
|
docker build --build-arg NUGET_USERNAME=${{ secrets.NUGET_USERNAME }} --build-arg NUGET_PASSWORD=${{ secrets.NUGET_PASSWORD }} --build-arg NUGET_ADDRESS=${{ secrets.NUGET_ADDRESS }} -t ${{ secrets.DOCKER_USERNAME }}/mirea-backend:latest .
|
||||||
docker push ${{ secrets.DOCKER_USERNAME }}/mirea-backend:latest
|
docker push ${{ secrets.DOCKER_USERNAME }}/mirea-backend:latest
|
||||||
|
|
||||||
- name: Start ssh-agent
|
- name: Start ssh-agent
|
@ -12,11 +12,11 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Elements of the solution",
|
|||||||
.env = .env
|
.env = .env
|
||||||
.gitattributes = .gitattributes
|
.gitattributes = .gitattributes
|
||||||
.gitignore = .gitignore
|
.gitignore = .gitignore
|
||||||
.gitea\workflows\deploy-stage.yaml = .gitea\workflows\deploy-stage.yaml
|
.github\workflows\code-analyze.yaml = .github\workflows\code-analyze.yaml
|
||||||
Dockerfile = Dockerfile
|
Dockerfile = Dockerfile
|
||||||
LICENSE.txt = LICENSE.txt
|
LICENSE.txt = LICENSE.txt
|
||||||
README.md = README.md
|
README.md = README.md
|
||||||
.gitea\workflows\test.yaml = .gitea\workflows\test.yaml
|
.github\workflows\release-version.yml = .github\workflows\release-version.yml
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ApiDto", "ApiDto\ApiDto.csproj", "{0335FA36-E137-453F-853B-916674C168FE}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ApiDto", "ApiDto\ApiDto.csproj", "{0335FA36-E137-453F-853B-916674C168FE}"
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
|
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
|
||||||
LABEL company="Winsomnia"
|
LABEL company="Winsomnia"
|
||||||
LABEL maintainer.name="Wesser" maintainer.email="support@winsomnia.net"
|
LABEL maintainer.name="Wesser" maintainer.email="support@winsomnia.net"
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
@ -13,10 +13,14 @@ COPY . .
|
|||||||
|
|
||||||
ARG NUGET_USERNAME
|
ARG NUGET_USERNAME
|
||||||
ARG NUGET_PASSWORD
|
ARG NUGET_PASSWORD
|
||||||
|
ARG NUGET_ADDRESS
|
||||||
|
|
||||||
ENV NUGET_USERNAME=$NUGET_USERNAME
|
ENV NUGET_USERNAME=$NUGET_USERNAME
|
||||||
ENV NUGET_PASSWORD=$NUGET_PASSWORD
|
ENV NUGET_PASSWORD=$NUGET_PASSWORD
|
||||||
|
ENV NUGET_ADDRESS=$NUGET_ADDRESS
|
||||||
|
|
||||||
RUN dotnet restore ./Backend.sln --configfile nuget.config
|
RUN dotnet nuget add source --name="Winsomnia" --username ${NUGET_USERNAME} --store-password-in-clear-text --password ${NUGET_PASSWORD} ${NUGET_ADDRESS}
|
||||||
|
RUN dotnet restore ./Backend.sln
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
WORKDIR /src
|
WORKDIR /src
|
||||||
RUN dotnet publish ./Endpoint/Endpoint.csproj -c Release --self-contained false -p:PublishSingleFile=false -o /app
|
RUN dotnet publish ./Endpoint/Endpoint.csproj -c Release --self-contained false -p:PublishSingleFile=false -o /app
|
||||||
|
@ -4,6 +4,8 @@ using Microsoft.Extensions.Options;
|
|||||||
using Microsoft.OpenApi.Models;
|
using Microsoft.OpenApi.Models;
|
||||||
using Swashbuckle.AspNetCore.SwaggerGen;
|
using Swashbuckle.AspNetCore.SwaggerGen;
|
||||||
using System;
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
namespace Mirea.Api.Endpoint.Configuration.SwaggerOptions;
|
namespace Mirea.Api.Endpoint.Configuration.SwaggerOptions;
|
||||||
|
|
||||||
@ -19,7 +21,7 @@ public class ConfigureSwaggerOptions(IApiVersionDescriptionProvider provider) :
|
|||||||
{
|
{
|
||||||
var info = new OpenApiInfo()
|
var info = new OpenApiInfo()
|
||||||
{
|
{
|
||||||
Title = "MIREA Schedule Web API",
|
Title = $"MIREA Schedule Web API ({FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location).ProductVersion})",
|
||||||
Version = description.ApiVersion.ToString(),
|
Version = description.ApiVersion.ToString(),
|
||||||
Description = "This API provides a convenient interface for retrieving data stored in the database. " +
|
Description = "This API provides a convenient interface for retrieving data stored in the database. " +
|
||||||
"Special attention was paid to the lightweight and easy transfer of all necessary data. Made by the Winsomnia team.",
|
"Special attention was paid to the lightweight and easy transfer of all necessary data. Made by the Winsomnia team.",
|
||||||
|
@ -5,20 +5,17 @@
|
|||||||
<ImplicitUsings>disable</ImplicitUsings>
|
<ImplicitUsings>disable</ImplicitUsings>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
<Company>Winsomnia</Company>
|
<Company>Winsomnia</Company>
|
||||||
<Version>1.0-rc7</Version>
|
<Version>1.0.0</Version>
|
||||||
<AssemblyVersion>1.0.2.7</AssemblyVersion>
|
<AssemblyVersion>1.0.3.0</AssemblyVersion>
|
||||||
<FileVersion>1.0.2.7</FileVersion>
|
<FileVersion>1.0.3.0</FileVersion>
|
||||||
<AssemblyName>Mirea.Api.Endpoint</AssemblyName>
|
<AssemblyName>Mirea.Api.Endpoint</AssemblyName>
|
||||||
<RootNamespace>$(AssemblyName)</RootNamespace>
|
<RootNamespace>$(AssemblyName)</RootNamespace>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<InvariantGlobalization>false</InvariantGlobalization>
|
<InvariantGlobalization>false</InvariantGlobalization>
|
||||||
<UserSecretsId>65cea060-88bf-4e35-9cfb-18fc996a8f05</UserSecretsId>
|
|
||||||
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
|
|
||||||
<DockerfileContext>.</DockerfileContext>
|
|
||||||
<SignAssembly>False</SignAssembly>
|
|
||||||
<GenerateDocumentationFile>True</GenerateDocumentationFile>
|
<GenerateDocumentationFile>True</GenerateDocumentationFile>
|
||||||
<DocumentationFile>docs.xml</DocumentationFile>
|
<DocumentationFile>docs.xml</DocumentationFile>
|
||||||
<NoWarn>$(NoWarn);1591</NoWarn>
|
<NoWarn>$(NoWarn);1591</NoWarn>
|
||||||
|
<IncludeSourceRevisionInInformationalVersion>false</IncludeSourceRevisionInInformationalVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@ -27,7 +24,7 @@
|
|||||||
<PackageReference Include="AspNetCore.HealthChecks.Redis" Version="9.0.0" />
|
<PackageReference Include="AspNetCore.HealthChecks.Redis" Version="9.0.0" />
|
||||||
<PackageReference Include="AspNetCore.HealthChecks.System" Version="9.0.0" />
|
<PackageReference Include="AspNetCore.HealthChecks.System" Version="9.0.0" />
|
||||||
<PackageReference Include="Cronos" Version="0.9.0" />
|
<PackageReference Include="Cronos" Version="0.9.0" />
|
||||||
<PackageReference Include="EPPlus" Version="7.5.3" />
|
<PackageReference Include="EPPlus" Version="7.6.0" />
|
||||||
<PackageReference Include="HtmlAgilityPack" Version="1.11.72" />
|
<PackageReference Include="HtmlAgilityPack" Version="1.11.72" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="8.0.12" />
|
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="8.0.12" />
|
||||||
<PackageReference Include="Microsoft.Build.Framework" Version="17.12.6" />
|
<PackageReference Include="Microsoft.Build.Framework" Version="17.12.6" />
|
||||||
@ -40,7 +37,7 @@
|
|||||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="9.0.1" />
|
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="9.0.1" />
|
||||||
<PackageReference Include="Microsoft.IdentityModel.Protocols.OpenIdConnect" Version="8.3.1" />
|
<PackageReference Include="Microsoft.IdentityModel.Protocols.OpenIdConnect" Version="8.4.0" />
|
||||||
<PackageReference Include="Mirea.Tools.Schedule.Parser" Version="1.2.5" />
|
<PackageReference Include="Mirea.Tools.Schedule.Parser" Version="1.2.5" />
|
||||||
<PackageReference Include="Mirea.Tools.Schedule.WebParser" Version="1.0.6" />
|
<PackageReference Include="Mirea.Tools.Schedule.WebParser" Version="1.0.6" />
|
||||||
<PackageReference Include="QRCoder" Version="1.6.0" />
|
<PackageReference Include="QRCoder" Version="1.6.0" />
|
||||||
@ -63,7 +60,7 @@
|
|||||||
<PackageReference Include="System.Composition.TypedParts" Version="9.0.1" />
|
<PackageReference Include="System.Composition.TypedParts" Version="9.0.1" />
|
||||||
<PackageReference Include="System.Configuration.ConfigurationManager" Version="9.0.1" />
|
<PackageReference Include="System.Configuration.ConfigurationManager" Version="9.0.1" />
|
||||||
<PackageReference Include="System.Drawing.Common" Version="9.0.1" />
|
<PackageReference Include="System.Drawing.Common" Version="9.0.1" />
|
||||||
<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="8.3.1" />
|
<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="8.4.0" />
|
||||||
<PackageReference Include="System.Security.Cryptography.Pkcs" Version="9.0.1" />
|
<PackageReference Include="System.Security.Cryptography.Pkcs" Version="9.0.1" />
|
||||||
<PackageReference Include="System.ServiceProcess.ServiceController" Version="9.0.1" />
|
<PackageReference Include="System.ServiceProcess.ServiceController" Version="9.0.1" />
|
||||||
<PackageReference Include="System.Text.Encoding.CodePages" Version="9.0.1" />
|
<PackageReference Include="System.Text.Encoding.CodePages" Version="9.0.1" />
|
||||||
|
@ -5,9 +5,9 @@
|
|||||||
<ImplicitUsings>disable</ImplicitUsings>
|
<ImplicitUsings>disable</ImplicitUsings>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
<Company>Winsomnia</Company>
|
<Company>Winsomnia</Company>
|
||||||
<Version>1.1.3</Version>
|
<Version>1.0.0</Version>
|
||||||
<AssemblyVersion>1.1.3.3</AssemblyVersion>
|
<AssemblyVersion>1.0.3.0</AssemblyVersion>
|
||||||
<FileVersion>1.1.3.3</FileVersion>
|
<FileVersion>1.0.3.0</FileVersion>
|
||||||
<AssemblyName>Mirea.Api.Security</AssemblyName>
|
<AssemblyName>Mirea.Api.Security</AssemblyName>
|
||||||
<RootNamespace>$(AssemblyName)</RootNamespace>
|
<RootNamespace>$(AssemblyName)</RootNamespace>
|
||||||
<OutputType>Library</OutputType>
|
<OutputType>Library</OutputType>
|
||||||
|
@ -5,9 +5,9 @@
|
|||||||
<ImplicitUsings>disable</ImplicitUsings>
|
<ImplicitUsings>disable</ImplicitUsings>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
<Company>Winsomnia</Company>
|
<Company>Winsomnia</Company>
|
||||||
<Version>1.0.3</Version>
|
<Version>1.0.0</Version>
|
||||||
<AssemblyVersion>1.0.3.3</AssemblyVersion>
|
<AssemblyVersion>1.0.3.0</AssemblyVersion>
|
||||||
<FileVersion>1.0.3.3</FileVersion>
|
<FileVersion>1.0.3.0</FileVersion>
|
||||||
<AssemblyName>Mirea.Api.DataAccess.Application</AssemblyName>
|
<AssemblyName>Mirea.Api.DataAccess.Application</AssemblyName>
|
||||||
<RootNamespace>$(AssemblyName)</RootNamespace>
|
<RootNamespace>$(AssemblyName)</RootNamespace>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
@ -5,9 +5,9 @@
|
|||||||
<ImplicitUsings>disable</ImplicitUsings>
|
<ImplicitUsings>disable</ImplicitUsings>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
<Company>Winsomnia</Company>
|
<Company>Winsomnia</Company>
|
||||||
<Version>1.0.1</Version>
|
<Version>1.0.0</Version>
|
||||||
<AssemblyVersion>1.0.3.1</AssemblyVersion>
|
<AssemblyVersion>1.0.3.0</AssemblyVersion>
|
||||||
<FileVersion>1.0.3.1</FileVersion>
|
<FileVersion>1.0.3.0</FileVersion>
|
||||||
<AssemblyName>Mirea.Api.DataAccess.Domain</AssemblyName>
|
<AssemblyName>Mirea.Api.DataAccess.Domain</AssemblyName>
|
||||||
<RootNamespace>$(AssemblyName)</RootNamespace>
|
<RootNamespace>$(AssemblyName)</RootNamespace>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
@ -5,9 +5,9 @@
|
|||||||
<ImplicitUsings>disable</ImplicitUsings>
|
<ImplicitUsings>disable</ImplicitUsings>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
<Company>Winsomnia</Company>
|
<Company>Winsomnia</Company>
|
||||||
<Version>1.0.3</Version>
|
<Version>1.0.0</Version>
|
||||||
<AssemblyVersion>1.0.3.3</AssemblyVersion>
|
<AssemblyVersion>1.0.3.0</AssemblyVersion>
|
||||||
<FileVersion>1.0.3.3</FileVersion>
|
<FileVersion>1.0.3.0</FileVersion>
|
||||||
<AssemblyName>Mirea.Api.DataAccess.Persistence</AssemblyName>
|
<AssemblyName>Mirea.Api.DataAccess.Persistence</AssemblyName>
|
||||||
<RootNamespace>$(AssemblyName)</RootNamespace>
|
<RootNamespace>$(AssemblyName)</RootNamespace>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
13
nuget.config
13
nuget.config
@ -1,13 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<configuration>
|
|
||||||
<packageSources>
|
|
||||||
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
|
|
||||||
<add key="winsomnia.net" value="https://git.winsomnia.net/api/packages/Winsomnia/nuget/index.json" />
|
|
||||||
</packageSources>
|
|
||||||
<packageSourceCredentials>
|
|
||||||
<winsomnia.net>
|
|
||||||
<add key="Username" value="%NUGET_USERNAME%" />
|
|
||||||
<add key="ClearTextPassword" value="%NUGET_PASSWORD%" />
|
|
||||||
</winsomnia.net>
|
|
||||||
</packageSourceCredentials>
|
|
||||||
</configuration>
|
|
Reference in New Issue
Block a user