zoukankan      html  css  js  c++  java
  • 【补充】Gitlab 部署 CI 持续集成

    上一篇:《劈荆斩棘:Gitlab 部署 CI 持续集成

    上一篇所配置的.gitlab-ci.yml

    stages:
      - build
      - test
    
    before_script:
      - echo "Restoring NuGet Packages..."
      - C:NuGet
    uget.exe restore "srcCNBlogsCI-Sample.sln"
      only:
      - master
    
    build_job:
      stage: build
      script:
      - echo "Release build..."
      - C:WindowsMicrosoft.NETFramework64v4.0.30319msbuild.exe /consoleloggerparameters:ErrorsOnly /maxcpucount /nologo /property:Configuration=Release /verbosity:quiet "srcCNBlogsCI-Sample.sln"
      except:
      - tags
      only:
      - master
    
    test_job:
      stage: test
      script:
      - echo "Tests run..."
      - C:xunit.runner.console	oolsxunit.console.exe "srcClassLibrary2indebugClassLibrary2.dll"
      - C:xunit.runner.console	oolsxunit.console.exe "srcClassLibrary3indebugClassLibrary3.dll"
      only:
      - master
    

    有几个问题:

    • before_script要执行两次。
    • C:NuGet uget.exe写死路径的写法不可取。
    • test_job需要上传debug中的dll文件。

    对于上面的问题,完善如下:

    stages:
      - build
    
    build_job:
      stage: build
      script:
      - echo "Restoring NuGet Packages..."
      - nuget restore "srcCNBlogsCI-Sample.sln"
      - echo "Release build..."
      - msbuild /consoleloggerparameters:ErrorsOnly /maxcpucount /nologo /property:Configuration=Release /verbosity:quiet "srcCNBlogsCI-Sample.sln"
      - echo "Tests run..."
      - xunit.console "srcClassLibrary2indebugClassLibrary2.dll"
      - xunit.console "srcClassLibrary3indebugClassLibrary3.dll"
      except:
      - tags
      only:
      - master
    

    nugetmsbuildxunit.console命令都需要添加环境变量,为什么要去除before_scripttest_job?因为每执行一个jobgit都需要Fetching changes...,所以会清除不受git版本控制的文件。

    还有就是,对于上面的第三个问题,因为msbuildRelease模式生成,而我们testdebug dll,所以就必须上传文件,我们把test中的debug改为Release就可以了。

    我们可以把nugetmsbuildxunit.console独立出批命令实现。

    restore.cmd

    echo "NuGet Sources List..."
    nuget Sources List
    echo "Restoring NuGet Packages..."
    nuget restore "srcCNBlogsCI-Sample.sln"
    

    build.cmd

    echo "Release build..."
    msbuild /consoleloggerparameters:ErrorsOnly /maxcpucount /nologo /property:Configuration=Release /verbosity:quiet "srcCNBlogsCI-Sample.sln"
    

    test.cmd

    echo "Tests run..."
    xunit.console "srcClassLibrary2inReleaseClassLibrary2.dll"
    xunit.console "srcClassLibrary3inReleaseClassLibrary3.dll"
    

    .gitlab-ci.yml

    stages:
      - build
    
    build_job:
      stage: build
      script:
      - ./restore.cmd
      - ./build.cmd
      - ./test.cmd
      except:
      - tags
    

    script中的cmd命令之前需要添加./

  • 相关阅读:
    好用,Office超效率速成技
    Oracle 12c从入门到精通:视频教学超值版
    用Excel学数据分析
    VMware、Citrix和Microsoft虚拟化技术详解与应用实践
    中文版Dreamweaver CC+Flash CC+Photoshop CC网页设计基础培训教程(新编实战型全功能培训教材)
    1467.二叉排序树
    1177.查找
    1178.复数集合
    1165.字符串匹配
    1166.迭代求立方根
  • 原文地址:https://www.cnblogs.com/xishuai/p/gitlab-ci-yml.html
Copyright © 2011-2022 走看看