gangvy 4 달 전
부모
커밋
f27cb9a9bf
1개의 변경된 파일60개의 추가작업 그리고 0개의 파일을 삭제
  1. 60 0
      deploy.ps1

+ 60 - 0
deploy.ps1

@@ -0,0 +1,60 @@
+# Deploy video-workflow to https://app.fmode.cn/dev/video-workflow/
+$ErrorActionPreference = "Stop"
+
+$PROJECT_NAME = "video-workflow"
+$BASE_PATH = "/dev/$PROJECT_NAME/"
+$OBS_PATH = "obs://nova-cloud/dev/$PROJECT_NAME"
+$CDN_URL = "https://app.fmode.cn$BASE_PATH"
+
+# Configure tool paths.
+$OBSUTIL = "E:\obsutil_windows_amd64_5.7.9\obsutil.exe"
+$HCLOUD = "E:\huaweicloud-cli-windows-amd64\hcloud.exe"
+
+# Credentials copied from the existing apig-pay deployment script.
+$OBS_ACCESS_KEY = "XSUWJSVMZNHLWFAINRZ1"
+$OBS_SECRET_KEY = "P4TyfwfDovVNqz08tI1IXoLWXyEOSTKJRVlsGcV6"
+$OBS_ENDPOINT = "obs.cn-south-1.myhuaweicloud.com"
+
+$CDN_ACCESS_KEY = "2BFF7JWXAIJ0UGNJ0OSB"
+$CDN_SECRET_KEY = "NaPCiJCGmD3nklCzX65s8mSK1Py13ueyhgepa0s1"
+$CDN_REGION = "cn-north-1"
+
+if (-not (Test-Path -LiteralPath $OBSUTIL)) {
+  throw "obsutil not found: $OBSUTIL"
+}
+
+if (-not (Test-Path -LiteralPath $HCLOUD)) {
+  throw "hcloud not found: $HCLOUD"
+}
+
+function Invoke-CheckedCommand {
+  param(
+    [Parameter(Mandatory = $true)]
+    [string] $FilePath,
+
+    [Parameter(ValueFromRemainingArguments = $true)]
+    [string[]] $Arguments
+  )
+
+  & $FilePath @Arguments
+  if ($LASTEXITCODE -ne 0) {
+    throw "Command failed with exit code ${LASTEXITCODE}: $FilePath $($Arguments -join ' ')"
+  }
+}
+
+Invoke-CheckedCommand "npx" "ng" "build" "--base-href=$BASE_PATH" "--output-path=dist/$PROJECT_NAME"
+
+Invoke-CheckedCommand $OBSUTIL "rm" $OBS_PATH "-r" "-f" "-i=$OBS_ACCESS_KEY" "-k=$OBS_SECRET_KEY" "-e=$OBS_ENDPOINT"
+
+Invoke-CheckedCommand $OBSUTIL "sync" "./dist/$PROJECT_NAME/browser" $OBS_PATH "-i=$OBS_ACCESS_KEY" "-k=$OBS_SECRET_KEY" "-e=$OBS_ENDPOINT" "-acl=public-read"
+
+Invoke-CheckedCommand $OBSUTIL "chattri" $OBS_PATH "-r" "-f" "-i=$OBS_ACCESS_KEY" "-k=$OBS_SECRET_KEY" "-e=$OBS_ENDPOINT" "-acl=public-read"
+
+Invoke-CheckedCommand $HCLOUD "CDN" "CreateRefreshTasks/v2" `
+  "--cli-region=$CDN_REGION" `
+  "--refresh_task.urls.1=$CDN_URL" `
+  "--refresh_task.type=directory" `
+  "--cli-access-key=$CDN_ACCESS_KEY" `
+  "--cli-secret-key=$CDN_SECRET_KEY"
+
+Write-Host "Deployed: $CDN_URL"