在FAKE中有多种构建文件结构的方法吗?

 郭亭婷892 发布于 2023-02-13 15:15
  • php
  • 1 个回答
    • 在Build.Tools中,我们最终将不同脚本文件中的各种目标的代码作为普通的F#函数,然后在Core.fsx中组合目标,以设置目标及其依赖项.

      我的低优先级待办事项列表中的一个实际上是将Core分成两个文件 - 一个用于构建配置和目标定义,另一个用于设置依赖项和调用Run.这样,您可以重新使用所有基础目标,同时定义不必包含完整默认依赖关系树的不同运行程序.

      目前的情况Core.fsx如下:

      #r    "./fake/fakelib.dll"
      #load "./Utils.fsx"
      #load "./Packaging.fsx"
      #load "./Versioning.fsx"
      #load "./Solution.fsx"
      #load "./Test.fsx"
      #load "./Specflow.fsx"
      
      open System.IO
      open Fake
      
      let config = 
          Map.ofList [
              "build:configuration", environVarOrDefault "configuration"         "Release"
              "build:solution",      environVar          "solution"
              "core:tools",          environVar          "tools"
              "packaging:output",    environVarOrDefault "output"                (sprintf "%s\output" (Path.GetFullPath(".")))
              "packaging:updateid",  environVarOrDefault "updateid"              ""
              "packaging:pushurl",   environVarOrDefault "pushurl"               ""
              "packaging:apikey",    environVarOrDefault "apikey"                ""
              "packaging:packages",  environVarOrDefault "packages"              ""
              "versioning:build",    environVarOrDefault "build_number"          "0"
              "versioning:branch",   match environVar "teamcity_build_branch" with
                                         | "<default>" -> environVar "vcsroot_branch"
                                         | _ -> environVar "teamcity_build_branch"
          ]
      
      Target "Default"           <| DoNothing
      Target "Packaging:Package" <| Packaging.package config
      Target "Packaging:Restore" <| Packaging.restore config
      Target "Packaging:Update"  <| Packaging.update config
      Target "Packaging:Push"    <| Packaging.push config
      Target "Solution:Build"    <| Solution.build config
      Target "Solution:Clean"    <| Solution.clean config
      Target "Versioning:Update" <| Versioning.update config
      Target "Test:Run"          <| Test.run config
      Target "SpecFlow:Run"      <| Specflow.run config
      
      "Solution:Clean"
          ==> "Packaging:Restore"
          ==> "Versioning:Update"
          ==> "Solution:Build"
          ==> "Packaging:Package"
          ==> "SpecFlow:Run"
          ==> "Test:Run"
          =?> ("Packaging:Push", not isLocalBuild)
          ==> "Default"
      
      RunParameterTargetOrDefault "target" "Default"
      

      2023-02-13 15:17 回答
    撰写答案
    今天,你开发时遇到什么问题呢?
    立即提问
    热门标签
    PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有