diff --git a/Gitlab-CI.md b/Gitlab-CI.md new file mode 100644 index 0000000..5684cca --- /dev/null +++ b/Gitlab-CI.md @@ -0,0 +1,47 @@ +# 安裝 Gitlab Runner +# 安裝 IIS,建立應用程式集{pool_name},建立應用程式站台{site_name} + +```yaml +variables: + # 拉取子模組 + GIT_SUBMODULE_STRATEGY: recursive + GIT_SUBMODULE_FORCE_HTTPS: "true" + # 拉取第一層子模組 + GIT_SUBMODULE_DEPTH: 1 + +stages: + - build + - deploy + +build: + stage: build + script: + - dotnet restore + - dotnet publish -c [Debug or Release] -o ..\Build\{project_name} + only: + - master + tag: + - windows + - [development or production] + +deploy: + stage: deploy + script: + - $NOW=Get-Date -Format "yyyy.MM.dd.HH.mm.ss" + # 停止服務 + - C:\Windows\System32\inetsrv\appcmd.exe stop site "{site_name}" + - C:\Windows\System32\inetsrv\appcmd.exe stop apppool /apppool.name:"{pool_name}" + # 第一次部屬過後,這段才能執行,將應用程式移動到備份資料夾 + - mv "C:\inetpub\wwwroot\{project_name}" "..\Backup\{project_name}.$NOW" -Recurse + # 將編譯後的應用程式複製到部屬資料夾 + - cp "..\Build\{project_name}" "C:\inetpub\wwwroot\{project_name}" -Recurse + # 啟動服務 + - C:\Windows\System32\inetsrv\appcmd.exe start apppool /apppool.name:"{pool_name}" + - C:\Windows\System32\inetsrv\appcmd.exe start site "{site_name}" + only: + - master + tag: + - windows + - [development or production] + +``` \ No newline at end of file