OpenGeekBrains / SciMaterials

Хранилище учебных материалов
MIT License
0 stars 14 forks source link

Требуется настройка CI/CD автоматизации сборки проекта и запуска модульных тестов #9

Closed Infarh closed 1 year ago

Infarh commented 1 year ago

Требуется сконфигурировать сценарий автоматизации компиляции и запуска модульных тестов на GitHub

Infarh commented 1 year ago

Примерный алгоритм: image Выбрать обычный .NET проект image

Пока нет WPF-проекта, можно обойтись простым скриптом image

nickchuchunov commented 1 year ago

name: merge_test

on: push: branches: [ "dev" ]

jobs: build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3 
#извлечение репозиторя в бегун
- name: Setup .NET
  uses: actions/setup-dotnet@v3 
  with:
    dotnet-version: 6.0.x 
    #Загрузка среды Dotnet 6
- name: Restore dependencies
  run: dotnet restore
  #Восстановление зависимостей для проекта 
- name: Build
  run: dotnet build 
  # Сборка проекта и все его зависимости (отключенние воостановление зависимостей проекта --no-restore)
- name: Test
# Запуск стандартных модульных тестов для всего проекта
  run: dotnet test --no-build --verbosity normal
  #Запуск тестов из проекта (Test папка в проекте)
- name: TestSciMaterials
  run: dotnet test Tests -c Release --nologo --no-build
nickchuchunov commented 1 year ago

SciMaterials/.github/workflows/dotnet.yml

Для автоматизации сборки в git !

Понятно что проект будет собиратся при merge в ветку dev .

Но как будут проводится тесты описанные в проекте - не понятно.

nickchuchunov commented 1 year ago

name: merge_test

on: push: branches: [ "dev" ]

jobs: build:

тип бегуна

runs-on: windows-latest

steps:
- uses: actions/checkout@v3 
#извлечение репозиторя в бегун
- name: Setup .NET
  uses: actions/setup-dotnet@v3 
  with:
    dotnet-version: 6.0.x 
    #Загрузка среды Dotnet 6
- name: Restore dependencies
  run: dotnet restore
  # загрузка nuget пакетов 
  - name: Install dependencies
  - run: dotnet add package AutoMapper --version 12.0.0 
  - run: dotnet add package Microsoft.Extensions.DependencyInjection --version 12.0.0
  - run: dotnet add package Blazored.LocalStorage --version 4.2.0
  - run: dotnet add package bunit --version 1.10.14
  - run: dotnet add package coverlet.collector --version 3.1.2
  - run: dotnet add package Microsoft.AspNetCore.Authentication.JwtBearer --version 6.0.9
  - run: dotnet add package Microsoft.AspNetCore.Components.WebAssembly --version 6.0.9
  - run: dotnet add package Microsoft.AspNetCore.Components.WebAssembly.Authentication --version 6.0.9
  - run: dotnet add package Microsoft.AspNetCore.Components.WebAssembly.DevServer --version 6.0.9
  - run: dotnet add package Microsoft.AspNetCore.Components.WebAssembly.Server --version 6.0.9
  - run: dotnet add package Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore --version 6.0.9
  - run: dotnet add package Microsoft.AspNetCore.Identity.EntityFrameworkCore --version 6.0.9
  - run: dotnet add package Microsoft.AspNetCore.Identity.UI --version 6.0.9
  - run: dotnet add package Microsoft.AspNetCore.Mvc.Testing --version 6.0.9
  - run: dotnet add package Microsoft.EntityFrameworkCore --version 6.9.0
  - run: dotnet add package Microsoft.EntityFrameworkCore.Design --version 6.0.9
  - run: dotnet add package Microsoft.EntityFrameworkCore.InMemory --version 6.0.9
  - run: dotnet add package Microsoft.EntityFrameworkCore.Sqlite --version 6.0.9
  - run: dotnet add package Microsoft.EntityFrameworkCore.SqlServer --version 6.0.9
  - run: dotnet add package Microsoft.EntityFrameworkCore.Tools --version 6.0.9
  - run: dotnet add package Microsoft.Extensions.Configuration.UserSecrets --version 6.0.1
  - run: dotnet add package Microsoft.Extensions.DependencyInjection --version 6.0.0
  - run: dotnet add package Microsoft.Extensions.Hosting --version 6.0.1
  - run: dotnet add Microsoft.Extensions.Http --version 6.0.0
  - run: dotnet add Microsoft.Extensions.Logging.Abstractions --version 6.0.2
  - run: dotnet add Microsoft.NET.Test.Sdk --version 17.3.2
  - run: dotnet add Moq --version 4.18.2
  - run: dotnet add MudBlazor --version 6.0.17
  - run: dotnet add Newtonsoft.Json --version 13.0.1
  - run: dotnet add NLog --version 5.0.4
  - run: dotnet add Npgsql.EntityFrameworkCore.PostgreSQL --version 6.0.7
  - run: dotnet add Pomelo.EntityFrameworkCore.MySql --version 6.0.2
  - run: dotnet add Swashbuckle.AspNetCore --version 6.4.0
  - run: dotnet add System.IdentityModel.Tokens.Jwt --version 6.23.1
  - run: dotnet add System.Net.Http.Json --version 6.0.0
  - run: dotnet add xunit --version 2.4.2
  - run: dotnet add xunit.runner.visualstudio --version 2.4.5
  #Восстановление зависимостей для проекта 
- name: Build
  run: dotnet build 
  # Сборка проекта и все его зависимости (отключенние воостановление зависимостей проекта --no-restore)
- name: Test
# Запуск стандартных модульных тестов для всего проекта
  run: dotnet test --no-build --verbosity normal
  #Запуск тестов из проекта (Test папка в проекте)
- name: TestSciMaterials
  run: dotnet test Tests -c Release --nologo --no-build
Infarh commented 1 year ago

Автоматизация запуска компиляции и модульного тестирования работает.