<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      基于DotNetty實現自動發布 - 項目的配置與發現

      前言

      上一篇,我們實現了基于 DotNetty 的通信基礎模塊的搭建,本篇,主要實現待發布 Web 項目的集成。

      創建待發布項目

      • 為了測試, 我創建了一個基于 .NET 4.8 的 Web 項目 OpenDeploy.TestWebProject
        image

        image

      • 我本機的代碼倉儲路徑是: D:\Projects\Back\dotnet\Study\OpenDeploy.TestWebProject
        image

      待發布項目集成 Git

      Git 是一個開源的分布式版本控制系統。我們使用它實現自動化檢測需要發布的文件。

      配置待發布項目

      • 先放一下實現的效果圖, 因為我對 WPF 也不是很精通,不足之處請大家見諒

      image
      image
      image

      • 客戶端基于 WPF 實現
      • 數據持久化使用的 SQLite
      • 增加了幾個常用的 Git 命令
      • 簡單貼點代碼,其他請大家看源碼吧,最下面有地址

      解決方案模型

      /// <summary> 解決方案領域模型 </summary>
      [Table("Solution")]
      public class Solution
      {
          [Key]
          public int Id { get; set; }
      
          /// <summary> 解決方案名稱 </summary>
          public string SolutionName { get; set; } = string.Empty;
      
          /// <summary> 解決方案Git倉儲路徑 </summary>
          public string GitRepositoryPath { get; set; } = string.Empty;
      }
      

      確定配置解決方案

      /// <summary> 確定配置解決方案 </summary>
      [RelayCommand]
      private void OkConfigSolution()
      {
          try
          {
              if (string.IsNullOrEmpty(ConfigSolution.SolutionName))
              {
                  throw new Exception("請填寫解決方案名稱");
              }
              if (!GitHelper.IsValidRepository(ConfigSolution.GitRepositoryPath))
              {
                  throw new Exception("非法的Git倉儲路徑");
              }
          }
          catch (Exception ex)
          {
              Growl.ClearGlobal();
              Growl.WarningGlobal(ex.Message);
              return;
          }
      
          //持久化到Sqlite
          solutionRepository.AddSolution(ConfigSolution.Map2Entity());
      
          Growl.SuccessGlobal("操作成功");
      
          //重新加載解決方案
          LoadSolutions();
      
          //關閉彈窗
          configSolutionDialog?.Close();
      }
      

      執行 Git 命令

          /// <summary> 執行git命令 </summary>
          private async Task RunGitCommand(string cmd)
          {
              var loading = Loading.Show();
              string output = string.Empty;
              LogText = string.Empty;
      
              await Task.Run(() =>
              {
                  var _process = new Process();
                  _process.StartInfo.WorkingDirectory = GitRepositoryPath;
                  _process.StartInfo.FileName = "cmd.exe";
                  _process.StartInfo.Arguments = "/C " + cmd;
                  _process.StartInfo.UseShellExecute = false;
                  _process.StartInfo.CreateNoWindow = true;
                  _process.StartInfo.RedirectStandardInput = true;
                  _process.StartInfo.RedirectStandardOutput = true;
                  _process.StartInfo.RedirectStandardError = true;
                  _process.Start();//啟動程序
      
                  output = _process.StandardOutput.ReadToEnd();
      
                  if (string.IsNullOrEmpty(output))
                  {
                      output = _process.StandardError.ReadToEnd();
                      if (string.IsNullOrEmpty(output))
                      {
                          output = "沒有返回值";
                      }
                  }
      
                  _process.WaitForExit();
                  _process.Close();
              });
      
              LogText = output;
              loading.Close();
          }
      

      總結

      至此,我們實現了待發布項目的配置與發現,簡單集成了常用的 Git 命令等

      代碼倉庫

      項目暫且就叫 OpenDeploy

      歡迎大家拍磚,Star

      下一步

      計劃下一步,實現一鍵發布,自動檢測到自上次發布以來的代碼變化,自動識別要發布的文件,一次性打包通過 DotNetty 發送到服務器

      posted @ 2023-12-06 11:54  Broadm  閱讀(623)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 五月天天天综合精品无码| 日韩精品中文字幕一线不卡| 欧洲lv尺码大精品久久久| 久久国产精品精品国产色| 汉寿县| 亚洲大尺度一区二区av| 亚洲真人无码永久在线| 久久精品波多野结衣| 办公室强奷漂亮少妇视频| 欧美深度肠交惨叫| 亚洲一区二区av偷偷| 国产熟睡乱子伦视频在线播放 | 日韩有码中文字幕av| 日日躁夜夜躁狠狠躁超碰97| 久久亚洲中文无码咪咪爱| 麻豆国产传媒精品视频| 建阳市| 久久无码中文字幕免费影院蜜桃| 成年女人碰碰碰视频播放| 曲沃县| 国内熟妇人妻色在线视频| 国产狂喷潮在线观看| 中文人妻av高清一区二区| 亚洲日韩AV秘 无码一区二区| 亚洲午夜无码久久久久蜜臀AV| 久久97超碰色中文字幕| 天堂一区二区三区av| 久热这里有精品视频在线| 在线中文字幕国产精品| 视频一区视频二区制服丝袜| 我国产码在线观看av哈哈哈网站| 国产片一区二区三区视频| 成人精品色一区二区三区| 狠狠综合久久综合88亚洲| 波多野42部无码喷潮| 99热门精品一区二区三区无码| 一出一进一爽一粗一大视频| 麻豆成人久久精品二区三| 欧美人妻在线一区二区| 蜜臀精品视频一区二区三区| 国产三级精品片|