deploy.ps1 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. # Deploy video-workflow to https://app.fmode.cn/dev/video-workflow/
  2. $ErrorActionPreference = "Stop"
  3. $PROJECT_NAME = "video-workflow"
  4. $BASE_PATH = "/dev/$PROJECT_NAME/"
  5. $OBS_PATH = "obs://nova-cloud/dev/$PROJECT_NAME"
  6. $CDN_URL = "https://app.fmode.cn$BASE_PATH"
  7. # Configure tool paths.
  8. $OBSUTIL = "E:\obsutil_windows_amd64_5.7.9\obsutil.exe"
  9. $HCLOUD = "E:\huaweicloud-cli-windows-amd64\hcloud.exe"
  10. # Credentials copied from the existing apig-pay deployment script.
  11. $OBS_ACCESS_KEY = "XSUWJSVMZNHLWFAINRZ1"
  12. $OBS_SECRET_KEY = "P4TyfwfDovVNqz08tI1IXoLWXyEOSTKJRVlsGcV6"
  13. $OBS_ENDPOINT = "obs.cn-south-1.myhuaweicloud.com"
  14. $CDN_ACCESS_KEY = "2BFF7JWXAIJ0UGNJ0OSB"
  15. $CDN_SECRET_KEY = "NaPCiJCGmD3nklCzX65s8mSK1Py13ueyhgepa0s1"
  16. $CDN_REGION = "cn-north-1"
  17. if (-not (Test-Path -LiteralPath $OBSUTIL)) {
  18. throw "obsutil not found: $OBSUTIL"
  19. }
  20. if (-not (Test-Path -LiteralPath $HCLOUD)) {
  21. throw "hcloud not found: $HCLOUD"
  22. }
  23. function Invoke-CheckedCommand {
  24. param(
  25. [Parameter(Mandatory = $true)]
  26. [string] $FilePath,
  27. [Parameter(ValueFromRemainingArguments = $true)]
  28. [string[]] $Arguments
  29. )
  30. & $FilePath @Arguments
  31. if ($LASTEXITCODE -ne 0) {
  32. throw "Command failed with exit code ${LASTEXITCODE}: $FilePath $($Arguments -join ' ')"
  33. }
  34. }
  35. Invoke-CheckedCommand "npx" "ng" "build" "--base-href=$BASE_PATH" "--output-path=dist/$PROJECT_NAME"
  36. Invoke-CheckedCommand $OBSUTIL "rm" $OBS_PATH "-r" "-f" "-i=$OBS_ACCESS_KEY" "-k=$OBS_SECRET_KEY" "-e=$OBS_ENDPOINT"
  37. Invoke-CheckedCommand $OBSUTIL "sync" "./dist/$PROJECT_NAME/browser" $OBS_PATH "-i=$OBS_ACCESS_KEY" "-k=$OBS_SECRET_KEY" "-e=$OBS_ENDPOINT" "-acl=public-read"
  38. Invoke-CheckedCommand $OBSUTIL "chattri" $OBS_PATH "-r" "-f" "-i=$OBS_ACCESS_KEY" "-k=$OBS_SECRET_KEY" "-e=$OBS_ENDPOINT" "-acl=public-read"
  39. Invoke-CheckedCommand $HCLOUD "CDN" "CreateRefreshTasks/v2" `
  40. "--cli-region=$CDN_REGION" `
  41. "--refresh_task.urls.1=$CDN_URL" `
  42. "--refresh_task.type=directory" `
  43. "--cli-access-key=$CDN_ACCESS_KEY" `
  44. "--cli-secret-key=$CDN_SECRET_KEY"
  45. Write-Host "Deployed: $CDN_URL"