如何从travis

时间:2018-03-05 21:29:35

标签: github travis-ci

我有一个带有electron-js项目的存储库。我正尝试从travis CI设置构建并部署到github版本。

我有下一个配置:

language: node_js

node_js:
  - "8"

before_install:
  - cd app

install:
  - npm install

os:
  - linux
  - osx

env:
  - TARGET_ARCH=x64

script:
  - npm run dist

branches:
  only:
    - master

deploy:
  provider: releases
  skip_cleanup: true
  api_key: $GH_TOKEN

Travis成功构建应用程序,但没有将工件上传到github版本。 据我了解documentation,它应该创建一个带有标记untagged-*的新版本并将文件上传到它。 现在我在构建日志中有这些消息:

  

跳过发布文件= Cromberg_1.2.1_amd64.deb reason =现有类型   与发布类型tag = v1.2.1 version = 1.2.1不兼容   existingType = release publishingType = draft

1.2.1是以前的标记。我做错了什么?

我希望在每次提交时使用master分支中的标记自动构建和创建包含工件的版本。但现在我只是尝试在任何事件上设置部署。

2 个答案:

答案 0 :(得分:2)

您需要在travis.yml中正确设置部署参数,请看:

language: go

go:
  - "1.10"

script:
  - CGO_ENABLED=0 go build
  - ls

deploy:
  provider: releases
  api_key: $TOKEN
  file: "test"
  skip_cleanup: true
  on:
    tags: false

如果您设置标记:false ,则travis将使用未标记的标记发布您的应用:

enter image description here

答案 1 :(得分:2)

要在标签上部署到github版本,你应该有这样的配置的一部分:

deploy:
  provider: releases
  skip_cleanup: true
  api_key: $GH_TOKEN
  file_glob: true
  file:
    - "dist/Cromberg-*-x86_64.AppImage"
    - "dist/Cromberg_*_amd64.deb"
    - "dist/Cromberg-*.dmg"
  on:
    tags: true

也不要在配置中设置分支,如下所示:

 branches:
  only:
  - master

因为它只会在这个分支上构建并且不使用标签(但在部署配置中我们设置标签:true)

因此,当您在master上使用某个标记进行提交时,它将构建您的应用程序两次:首先在master分支上构建,将跳过部署步骤。另一个构建标记,它将在此构建期间创建发布并上传文件以进行发布。