GithubHelp home page GithubHelp logo

drose-d2l / frau-publisher Goto Github PK

View Code? Open in Web Editor NEW

This project forked from brightspace/frau-publisher

0.0 1.0 0.0 137 KB

A free-range-app utility for publishing to our CDN.

License: Apache License 2.0

JavaScript 63.20% CSS 0.06% HTML 36.74%

frau-publisher's Introduction

frau-publisher

NPM version Build status Coverage Status Dependency Status

A free-range-app utility for publishing to our CDN.

Installation

Install frau-publisher as a dev dependency:

npm install frau-publisher

Usage

From CLI

The FRAU publisher can be run either directly on the console CLI (assuming dependencies are installed), or specified as a script in package.json. Arguments may be passed directly on the CLI, or may be configured in package.json. In addition, the publish key secret, dev tag, and version can either be explicitly specified, or can be read from the build environmnt.

Typical configuration for running in TRAVIS:

frau-publisher --moduletype|-m app|lib 
               --targetdir|-t 'cdn directory' 
               --key|-k yourkey 
               --secretvar S3_SECRET 
               --devtagvar TRAVIS_COMMIT 
               --versionvar TRAVIS_TAG 
               --files|-f './dist/**'
"scripts": {
  "publish-release": "frau-publisher"
},
"config": {
  "frauPublisher": {
    "files": "./dist/**",
    "moduleType": "app|lib",
    "targetDirectory": "cdn directory",
    "creds": {
      "key": "your key",
      "secretVar": "S3_SECRET"
    },
    "devTagVar": "TRAVIS_COMMIT",
    "versionVar": "TRAVIS_TAG"
  }
}

Explicitly specifying credentials, dev tag, and/or version:

Note: never publish or commit unencrypted credentials.

frau-publisher --moduletype|-m app 
               --targetdir|-t 'cdn directory' 
               --key|-k yourkey 
               --secret|-s yoursecret 
               --devtag yourtag 
               --version|-v yourversion ex. 0.0.1 
               --files|-f './dist/**'
"scripts": {
  "publish-release": "frau-publisher"
},
"config": {
  "frauPublisher": {
    "files": "./dist/**",
    "moduleType": "app|lib",
    "targetDirectory": "cdn directory",
    "creds": {
      "key": "your key",
      "secret": "your secret"
    },
    "devTag": "your tag",
    "version": "0.0.1"
  }
}

From JavaScript/Gulp

To publish an app to the CDN:

var publisher = require('frau-publisher');

var options = {
	targetDirectory: 'cdn directory',
	creds: {
		"key": "your key",
		"secret": "your secret"
	},
	devTag: 'your tag'
};

var appPublisher = publisher.app( options );

gulp.src('./dist/**')
	.pipe(appPublisher.getStream());

To publish a library (e.g. jQuery, Angular, etc.) to the CDN:

var libPublisher = publisher.lib( options );

gulp.src('./lib/jquery/**')
	.pipe(libPublisher.getStream());

Publish to Production

To publish the released/production version of your app or library, you must change the devTag property to version and you must specify a valid version number that follows the guideline specified in Semantic Versioning.

In your options variable, set the version tag with a valid version:

var options = {
	targetDirectory: 'cdn directory',
	creds: {
		"key": "your key",
		"secret": "your secret"
	},
	version: '0.0.1'
};

Publishing Options

Property Description
targetDirectory Unique target directory where the app or library will be published.
creds Credentials key/secret for the specified app. Do not commit the secret to source control. Either load it from a file (which is excluded from source control) or use an environment or command-line variable.
devTag The development version of the app or library.
version The released/production version of the app or library. Unlike devTag, this property must follow the guidelines in Semantic Versioning.

Get Published Location

To get the final location of where the files are on the CDN:

var appPublisher = require('frau-publisher').app(options);

var location = appPublisher.getLocation();

Contributing

Contributions are welcome, please submit a pull request!

Code Style

This repository is configured with EditorConfig rules and contributions should make use of them.

frau-publisher's People

Contributors

cpacey avatar dbatiste avatar dlockhart avatar yujinred avatar yujinblue avatar omsmith avatar

Watchers

David Rose avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.