1

我不想创建 ZIP 文件AppVeyor以将其发布GitHubRelease.

目前,构建过程执行以下步骤:

  • 安装 Node.jsv7
  • 启动.\Build-All.bat

Bild.bat以下步骤:

  • 创建TempBuild目录
  • 移至Source_Temp
  • 安装依赖项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-Directory (for sample /Build/DSTEd-win32-x64/) 打包到一个 ZIP-Archive 中,例如/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
4

2 回答 2

1

遗漏的部分是神器包装。您可以列出所有这些文件夹都是工件,Appveyor 会为您压缩它们。之后部署将“看到”它们。

旁注:您可能想要删除on/branch:master部分,因为在大多数情况下,标签名称会替换传入 webhook 中的分支名称。更多细节在这里。一般来说,我建议从最简单的部署配置开始,并在基本的一项工作之后一一添加设置。

于 2017-06-06T19:01:02.467 回答
0

打包工件非常复杂。通过文档,您可以定义无法正常工作的过滤器。

我已经实现了自己的解决方案来触发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
于 2017-06-07T04:56:02.853 回答