📌  相关文章
📜  在GitLab上使用Shell Executor在.NET应用程序中实现CI CD(1)

📅  最后修改于: 2023-12-03 14:51:16.075000             🧑  作者: Mango

在GitLab上使用Shell Executor在.NET应用程序中实现CI/CD

GitLab是一款流行的开源代码托管平台,能够实现DevOps实践中的CI/CD流程。Shell Executor是GitLab CI/CD的一种类型,能够自定义Shell脚本,通过执行这些脚本来实现自动化构建、测试和部署等操作。

本文将介绍如何使用Shell Executor在.NET应用程序中实现CI/CD。我们将使用.NET Core作为示例。

准备工作

在开始之前,请确保您已拥有GitLab账户,并且已经创建了一个.NET Core项目(请参考官方文档)。

创建Shell脚本

我们将使用以下Shell脚本来自动化构建、测试和部署:

#!/bin/sh

set -e

# 安装依赖
dotnet restore

# 运行测试
dotnet test

# 发布应用程序
dotnet publish -c Release -o ./publish

# 部署应用程序
ssh user@your-server "cd /path/to/app && git pull && dotnet stop && dotnet start"

以上脚本的作用分别是:

  1. 安装依赖;
  2. 运行测试;
  3. 发布应用程序;
  4. 部署应用程序。

请注意,这里的部署流程仅仅是一个简单的示例,您需要根据实际情况修改和优化。

配置GitLab CI/CD

我们需要编辑项目根目录下的.gitlab-ci.yml文件。在该文件中,我们需要添加以下内容:

image: microsoft/dotnet:2.2-sdk

stages:
  - build
  - test
  - deploy

build:
  stage: build
  script:
    - chmod +x ./build.sh
    - ./build.sh

test:
  stage: test
  script:
    - dotnet test

deploy:
  stage: deploy
  script:
    - ssh-keyscan $SERVER_IP >> ~/.ssh/known_hosts
    - ssh -i $SSH_PRIVATE_KEY user@your-server "cd /path/to/app && git pull && dotnet stop && dotnet start"
  only:
    - master

上述.gitlab-ci.yml文件中的作用如下:

  1. 指定使用的Docker镜像(这里我们使用了.NET Core 2.2);
  2. 定义了几个流程阶段(构建、测试、部署);
  3. 在构建阶段执行Shell脚本build.sh
  4. 在测试阶段执行dotnet test命令;
  5. 在部署阶段通过SSH部署应用程序;
  6. deploy阶段只会触发一次,当分支是master分支时触发;
结束语

以上就是在GitLab上使用Shell Executor在.NET应用程序中实现CI/CD的教程。希望这篇文章对您有所帮助。