Skip to content

forexample/github-binary-release

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Uploading release binaries

Linux, OS X: Build Status

Windows: Build status

Travis

Create token

Create GitHub token with name like "Token for Travis CI deployment" and select public_repo (or repo). Keep in mind that this token is a private sensitive data! See:

Encrypt token

Encrypt your token using Travis CLI:

> sudo gem install travis
> which travis
/usr/bin/travis
> sudo travis login --pro # required for a pro Travis CI account
> sudo travis encrypt -r username/reponame abc..YOUR.TOKEN.HERE...123

  secure: "...."

Add token

Copy secure: "..." string to .travis.yml:

before_deploy:
  - export FILE_TO_UPLOAD=$(ls _builds/*/Foo-*.tar.gz)

deploy:
  provider: releases
  api_key:
    - secure: "Encrypted GITHUB OAUTH TOKEN"
  file_glob: true
  file: "${FILE_TO_UPLOAD}"
  skip_cleanup: true
  on:
    tags: true

Enable Multi-OS

os:
  - linux
  - osx

AppVeyor

Create GitHub token with name like "Token for AppVeyor CI deployment" and select public_repo (or repo). Keep in mind that this token is a private sensitive data! See:

Encrypt token

Encrypt your token using form on appveyor.com.

Add token

Copy secure: "..." string to appveyor.yml:

artifacts:
  - path: _builds\*\Foo-*.tar.gz
    name: Releases

deploy:
  provider: GitHub
  auth_token:
    secure: "Encrypted GITHUB OAUTH TOKEN"
  artifact: /Foo-.*\.tar.gz/
  draft: false
  prerelease: false
  on:
    appveyor_repo_tag: true

Submodules

If your project uses submodules, you will have to tell Appveyor to initialize them, as described here. This can be done in the install section with the following git command:

install:
   - cmd: git submodule update --init --recursive

Deploy

> git tag vA.B.C
> git push --tags

Travis will deploy artifacts from Linux and OS X, AppVeyor will deploy artifacts from Windows.