2017-06-06 200 views
1

我不想在AppVeyor上創建ZIP文件以GitHub作爲Release發佈它。在AppVeyor上創建ZIP文件並部署爲GitHub發佈版

目前,建立過程化妝步驟如下:

  • 安裝Node.js的v7
  • 啓動.\Build-All.bat

Bild.bat有以下步驟:

  • 創建TempBuild目錄
  • 移動SourceTemp
  • 安裝depencies與npm install
  • 開始electron-packager創建二進制文件(見/Build/目錄的目錄結構)

目錄結構:

/Source/ 
/Build/ 
    L /DSTEd-darwin-x64/ 
    L /DSTEd-linux-armv7l/ 
    L /DSTEd-linux-ia32/ 
    L /DSTEd-linux-x64/ 
    L /DSTEd-mas-x64/ 
    L /DSTEd-win32-ia32/ 
    L /DSTEd-win32-x64/ 
/Temp/ 
/Build.bat 

這裏是什麼,我想:

包每個版本目錄(樣品/Build/DSTEd-win32-x64/)到ZIP - 歸檔樣/Build/DSTEd-win32-x64.zip

將所有的ZIP檔案(/Build/DSTEd-*-*.zip),以釋放

我已經手動創建了GitHub的發佈樣本;也就是說,我想: https://github.com/DST-Tools/DSTEd/releases/tag/1.0.0

這裏是我的appveyor.yml

version: 1.0.0-{build} 

# Set the Node Version 
environment: 
    matrix: 
    - nodejs_version: "7" 

# Install scripts. (runs after repo cloning) 
install: 
    - ps: Install-Product node $env:nodejs_version 
    - npm -g install electron-packager 
    - .\Build-All.bat 

# Caching 
cache: 
    - node_modules 

# Deployment Options 
deploy: 
    tag: $(appveyor_build_version) 
    release: 'DSTEd v${appveyor_build_version} - Pre-Release (Preview)' 
    description: ' ![Preview](https://github.com/DST-Tools/DSTEd/raw/master/Screenshots/preview.png) ## Pre-Release v1.0.0 (Preview) Builded binarys for `Windows` (`32bit` & `64bit`), `Linux` (`32bit`, `64bit` & `armv7`) and `Mac OS X` (`darwin` & `mas`, only `64bit`).' 
    provider: GitHub 
    auth_token: 
    secure: b202f536350628ff69af69d08daee9f76a9cff20 
    artifact: '**\*.zip' 
    draft: false 
    prerelease: true 
    on: 
    branch: master 
    appveyor_repo_tag: true 

matrix: 
    fast_finish: true 

build: OFF 
test: OFF 

回答

1

錯過的部分是artifact packaging。你可以列出所有這些文件夾是工件,Appveyor會爲你壓縮它們。部署後將「看到」他們。

備註:您可能想要刪除on/branch:master部分,因爲在大多數情況下,標記名稱將替換傳入webhook中的分支名稱。更多細節是here。總的來說,我建議先從最簡單的部署配置開始,然後在基本配置工作後逐一添加設置。

0

packaging artifacts是非常複雜的。通過文檔,您可以定義過濾器不會正常工作。

我已經實現了自己的解決方案來觸發before_deploy。部署階段開始前,一個腳本包中的文件的ZIP和添加爲一個神器:

# Deployment Options 
before_deploy: 
    - node .\Tools\PackageBuild.js 
    - ps: Get-ChildItem .\Build\*.zip | % { Push-AppveyorArtifact $_.FullName -FileName $_.Name } 

在部署進程,我們添加所有可用的文物離開屬性爲空:

deploy: 
    [...] 
    artifact: #leave blank