我正在使用open-source Github Electron app来转录视频。我希望我的应用程序是多平台的,因此我对MacOS和Linux(Ubuntu)使用开源travis-ci.org到build it,然后将二进制文件发布到Github版本。
Travis同时为OSX和Linux构建。
使用我目前的YAML配置,Travis测试和构建串行:它首先使linux版本成为Linux版本,然后仅在Linux版本完成之后才成为mac版本。 (我相信它按照这个顺序构建,因为它是我在YAML中指定操作系统的顺序)。以下是serial build behavior
的示例下面是我的.travis.yml
,不包括我的Github访问令牌:
language: node_js
node_js:
- '8'
matrix:
include:
- os: linux
dist: xenial
sudo: required
- os: osx
cache:
yarn: true
notifications:
email: false
script:
- yarn dist
deploy:
provider: releases
api_key: $ENCRYPTED_GITHUB_TOKEN
skip_cleanup: true
on:
tags: true
我在build matrices和build matrix expansion上阅读并重新阅读了Travis-CI的文档。我还阅读了有关Travis的beta build stages功能的文档。但是,我不认为我完全理解如何定义构建矩阵,然后让所有扩展配置经历一个阶段。在这种情况下,定义两个操作系统,但只需要使用相同的命令编写一个阶段:yarn dist
以使可分发。 (默认情况下,该命令将为主机操作系统构建二进制文件。)
我的猜测是其中一个(或多个)是真的:
我希望我更了解特拉维斯,感谢您的耐心和帮助。
答案 0 :(得分:3)
您的设置对于您想要实现的目标是正确的。如果两个建设者没有并行运行,那么就会发生以下两件事之一: