Syncs Travis settings and .travis.yml
across a large number of repositories
Sets Travis settings for only building when there's a .travis.yml
and optionally sets cron and secret environment variables (adds or updates). Also builds and pushes a .travis.yml
with optionally an encrypted Slack notification.
Built to support both both Travis .org and .com, but only tested with .com.
npm install -g @hdsydsvenskan/travis-env-sync
travis-env-sync config.yml
Or:
cat config.yml | travis-env-sync
--keychain
/-k
– use Keychain to store secrets (or non-Mac equivalent supported by keytar)--reset
/-r
– reset the data in the Keychain, so new data can be defined--help
--version
Example:
repos:
- 'example/example'
cron: 'weekly'
slack: 'slackorganization'
private_travis: true
secret_env_vars:
- 'NPM_TOKEN'
travis:
language: node_js
node_js:
- '8'
- '6'
sudo: false
before_install:
- echo "//registry.npmjs.org/:_authToken=\${NPM_TOKEN}" > .npmrc
- repos – a list of all the repos to update
- travis – the actual Travis configuration
- [cron] – optional – set to
weekly
,daily
ormonthly
to set up a cron job to run formaster
if it hasn't recently built - [private_travis] – optional – set to
true
if your targeting private repos (you can't target both private and public repos at once as Travis runs the two at two different API:s) - [secret_env_vars] – optional – secret environment variables that should be saved to Travis and, if chosen, saved to Keychain. Value will be prompted for.
- [slack] – optional – the name of the Slack account to send notifications to