deploy_dev.ps1 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. $OutputEncoding = [System.Text.Encoding]::UTF8
  2. function deploy {
  3. param(
  4. [string]$username_param,
  5. [string]$ip_address_param,
  6. [string]$folder_name_param,
  7. [string]$server_path_param,
  8. [string]$zip_filename_param
  9. )
  10. # 判断7z命令是否可用
  11. $7zPath = Get-Command 7z -ErrorAction SilentlyContinue | Select-Object -ExpandProperty Source
  12. if (-not $7zPath) {
  13. Write-Host "7z command is not available! Please run 'npm install -g 7zip' first."
  14. return
  15. }
  16. Write-Host "7z command is available at: $7zPath"
  17. # 压缩打包后的文件,可用`npm install -g 7zip`全局安装7z命令
  18. 7z a $zip_filename_param ./dist/*
  19. [System.Console]::InputEncoding = [System.Text.Encoding]::GetEncoding("GB18030")
  20. if ($LASTEXITCODE -eq 0) {
  21. Write-Host "Compressing files successful"
  22. # Write-Host "压缩打包成功"
  23. }
  24. else {
  25. Write-Host "Compressing files failed"
  26. # Write-Host "压缩打包失败"
  27. return 1
  28. }
  29. # 迁移压缩文件到服务器对应目录下
  30. $scpCommand = "scp ./${zip_filename_param} ${username_param}@${ip_address_param}:${server_path_param}"
  31. Invoke-CommandWithDebug -Command $scpCommand
  32. # Invoke-Expression $scpCommand
  33. if ($LASTEXITCODE -eq 0) {
  34. Write-Host "File transfer successful"
  35. # Write-Host "文件迁移成功"
  36. }
  37. else {
  38. Write-Host "File transfer failed"
  39. # Write-Host "文件迁移失败"
  40. return 1
  41. }
  42. # 删除上传后的压缩文件
  43. Remove-Item $zip_filename_param -Force
  44. # 在服务器上解压缩文件
  45. $sshCommand = "ssh $username_param@$ip_address_param `"cd $server_path_param && unzip -o $zip_filename_param -d $folder_name_param && chmod -R 775 $folder_name_param && rm $zip_filename_param`""
  46. Invoke-CommandWithDebug -Command $sshCommand
  47. # Invoke-Expression $sshCommand
  48. if ($LASTEXITCODE -eq 0) {
  49. Write-Host "Unzipping successful"
  50. # Write-Host "解压缩成功"
  51. }
  52. else {
  53. Write-Host "Unzipping failed"
  54. # Write-Host "解压缩失败"
  55. return 1
  56. }
  57. Write-Host "Congratulations: $folder_name_param deployment successful! "
  58. # Write-Host "恭喜:$folder_name_param 发布圆满成功!🎉🚀"
  59. return 0
  60. }
  61. function Invoke-CommandWithDebug {
  62. param (
  63. [string]$Command
  64. )
  65. Write-Host "Executing command: $Command"
  66. Invoke-Expression $Command
  67. }
  68. # 调用deploy函数,并传递配置项参数
  69. $username_param = "clear"
  70. $ip_address_param = "192.168.30.153" # 测试环境
  71. $folder_name_param = "selfMarketing"
  72. $server_path_param = "/home/clear/frontend/"
  73. $zip_filename_param = "build.zip"
  74. deploy -username_param $username_param -ip_address_param $ip_address_param -folder_name_param $folder_name_param -server_path_param $server_path_param -zip_filename_param $zip_filename_param
  75. #############################################
  76. # 中文乱码,暂时换成英文提示
  77. # npm run publish:dev
  78. # deploy_dev.sh需要git-bash,在Win下不太方便,
  79. # 故增加本等效的powershell部署脚本。
  80. #############################################