netcore c# gitlab gitlab-ci

netcore - gitlab ci cd c#



Usando GitLabCI con C# (4)

Las otras respuestas son buenas. Pero me gustaría explicar cómo instalar un corredor además. Uso mi propio sistema local (Windows), así que elegí ejecutar shell. Pero podría usar una imagen de acoplador si lo desea.

cd C:/Multi-Runner gitlab-ci-multi-runner register Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com ) https://gitlab.com Please enter the gitlab-ci token for this runner xxx Please enter the gitlab-ci description for this runner my-runner INFO[0034] fcf5c619 Registering runner... succeeded Please enter the executor: shell, docker, docker-ssh, ssh? shell INFO[0037] Runner registered successfully. Feel free to start it, but if it''s running already the config should be automatically reloaded!

Fuente: gitlab.com/gitlab-org/gitlab-ci-multi-runner/blob/master/docs/…

Después, puede usar un archivo yml como este:

stages: - build job: stage: build script: ''"C:/Windows/Microsoft.NET/Framework64/v4.0.30319/msbuild.exe" "something.sln"''

He estado trabajando en una aplicación de C # y quería probar el CI de GitLab. Todo lo que puedo ver es Ruby y no puedo encontrar ninguna información sobre cómo crear una aplicación C # usándolo.

Cuando ejecuto la configuración de prueba, realizo la confirmación, pero no tengo mi compilación.

¿Cómo debería hacer una compilación simple? ¿Qué comando podría usar para eso? No me molesta si obtengo una compilación fallada (pero una compilación).


Llegué tarde a esto, lo sé, pero quería expandirme aún más.

Instalar el corrector de compilación en una máquina de Windows ayuda mucho, @ prasanth-louis tiene un gran ejemplo de cómo hacerlo.

En cuanto al .gitlab-ci.yml , puedes simplificarlo aún más usando Cake Build

stages: - build build: stage: build script: - ./build.ps1 -Target Build tags: - windows

Y su archivo build.cake puede verse así (basado en el repositorio de ejemplo ):

#tool nuget:?package=NUnit.ConsoleRunner&version=3.4.0 var target = Argument("target", "Default"); var configuration = Argument("configuration", "Release"); var solution = "./example-project.sln"; var buildDir = Directory("./example-project/bin"); Task("Default") .IsDependentOn("Unit-Tests") .Does(() => { Information("Running Default task!"); }); Task("Clean") .Does(() => { CleanDirectory(buildDir); }); Task("PackageRestore") .IsDependentOn("Clean") .Does(() => { Information("Restoring nuget packages for {0}", solution); NuGetRestore(solution); }); Task("Build") .IsDependentOn("PackageRestore") .Does(() => { Information("Restoring nuget packages for {0}", solution); MSBuild(solution, settings => settings.SetConfiguration(configuration)); }); Task("Unit-Tests") .IsDependentOn("Build") .Does(() => { NUnit3("./example-project.Tests/**/bin/" + configuration + "/*.Tests.dll"); }); Task("Publish") .Does(() => { }); RunTarget(target);


Para construir una aplicación C #, debe tener un Windows Runner (con ejecutable de shell) configurado para un proyecto en Gitlab CI.

Su archivo .gitlab-ci.yml debería tener un aspecto similar al siguiente:

stages: - build job: stage: build script: - echo "Restoring NuGet Packages..." - ''"c:/nuget/nuget.exe" restore "MySolution.sln"'' - '''' - echo "Release build..." - C:/Windows/Microsoft.NET/Framework64/v4.0.30319/msbuild.exe /consoleloggerparameters:ErrorsOnly /maxcpucount /nologo /property:Configuration=Release /verbosity:quiet "MySolution.sln" tags: except: - tags

En la máquina con Windows necesita las siguientes herramientas:

  • corredor instalado
  • git, agregado a PATH
  • último nuget.exe en c: / nuget (o en otro lugar, simplemente asegúrate de tener la ruta correcta en el archivo .gitlab-ci.yml)

Solo quería compartir mi .gitlab-ci.yml completo con pruebas unitarias. Tendrás que ajustar tu nuget y posiblemente otros caminos. Esto es para un solo proyecto en una solución del mismo nombre.

variables: PROJECT_NAME: "ProjectNameGoesHere" before_script: - echo "starting build for %PROJECT_NAME%" - echo "Restoring NuGet Packages..." - d:/tools/nuget restore "%PROJECT_NAME%.sln" stages: - build - test build: stage: build script: - echo "Release build..." - ''"C:/Windows/Microsoft.NET/Framework64/v4.0.30319/msbuild.exe" /consoleloggerparameters:ErrorsOnly /maxcpucount /nologo /property:Configuration=Release /verbosity:quiet "%PROJECT_NAME%.sln"'' artifacts: untracked: true test: stage: test script: - echo "starting tests" - cd %PROJECT_NAME%Tests/bin/Release - ''"C:/Program Files (x86)/Microsoft Visual Studio 14.0/Common7/IDE/MSTest.exe" /testcontainer:%PROJECT_NAME%Tests.dll'' dependencies: - build