@hdsydsvenskan/travis-env-sync

Syncs Travis settings and .travis.yml across a large number of repositories

Usage no npm install needed!

<script type="module">
  import hdsydsvenskanTravisEnvSync from 'https://cdn.skypack.dev/@hdsydsvenskan/travis-env-sync';
</script>

README

Travis-Env-Sync

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.

js-semistandard-style

Install

npm install -g @hdsydsvenskan/travis-env-sync

Syntax

travis-env-sync config.yml

Or:

cat config.yml | travis-env-sync

Flags

  • --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

Config file

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

Config keys

  • repos – a list of all the repos to update
  • travis – the actual Travis configuration
  • [cron]optional – set to weekly, daily or monthly to set up a cron job to run for master 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