我是 Windows 開發的新手,我正在嘗試使用 github 操作進行構建/部署。在構建步驟中,我壓縮我的專案并上傳它
jobs:
build:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- name: Set up Node.js version
uses: actions/setup-node@v1
with:
node-version: '16.x'
- name: npm install, build, and test
run: |
npm install
npm run build --if-present
npm run test --if-present
- name: Zip contents for upload
shell: powershell
run: |
Compress-Archive -Path . -DestinationPath nextjs-app.zip
- name: Upload artifact for deployment job
uses: actions/upload-artifact@v2
with:
name: nextjs-app
path: nextjs-app.7z
然后在我的部署步驟中,我下載它,展開它,然后部署它。
deploy:
runs-on: windows-latest
needs: build
environment:
name: 'Production'
url: ${{ steps.deploy-to-webapp.outputs.webapp-url }}
steps:
- name: Download artifact from build job
uses: actions/download-artifact@v2
with:
name: nextjs-app
- name: Unzip archive file
shell: powershell
run: |
Expand-Archive nextjs-app.zip -DestinationPath .
問題是進行壓縮/擴展需要花費大量時間。我以前在 linux 上做過這個,壓縮/擴展大約需要 2 分鐘,但使用 powershell 大約需要 15 分鐘壓縮和 12 分鐘擴展。為什么壓縮/擴展命令運行如此緩慢?難道我做錯了什么?展開后的檔案夾大小約為 200MB
uj5u.com熱心網友回復:
您可以試驗壓縮引數,例如-CompressionLevel Fastest。
或者,正如Santiago Squarzon建議的那樣,直接使用.NET API。這需要PowerShell (Core) 7 :
[IO.Compression.ZipFile]::CreateFromDirectory( $sourceDirectory, $zipFileName, 'Fastest', $false )
請注意,.NET API 的當前目錄與 PowerShell 不同,因此最佳做法是僅將絕對路徑傳遞給 .NET API。執行此操作的最簡單方法是將$PWD(PowerShell 的當前目錄)添加到任何路徑,例如"$PWD\SomeFile.xyz".
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/507623.html
