Skip to content
This repository has been archived by the owner on Feb 12, 2022. It is now read-only.

Commit

Permalink
documents saucelabs and travis-ci things a bit better. Consolidate an…
Browse files Browse the repository at this point in the history
…d use env vars for saucelabs
  • Loading branch information
Christopher McCulloh committed Sep 23, 2016
1 parent 8de4146 commit a6b27e1
Show file tree
Hide file tree
Showing 5 changed files with 32 additions and 34 deletions.
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,4 @@ env:
sHZL3GDo5ujm/pPvrKv41BGi81rPPLMnQyGdmTDRgW5/F5BaKbKoOvK8opuP
+M1cvJ2Cq14pEK6y2OMAooY2TY4p8MynxsqoKUGOYjmKXsLp1ZE=
matrix:
fast_finish: true
fast_finish: true
13 changes: 5 additions & 8 deletions Gruntfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ module.exports = function (grunt) {

/*
* Welcome to our GruntFile.js!
* Configuration tasks (initConfig) are external JS modules that can be found in
* `./grunt/config`. Additional custom tasks can be found in `./grunt/task`.
* The "shared variables" belowcannot use grunt.config(),
* Configuration tasks (initConfig) are external JS modules that can be found in
* `./grunt/config`. Additional custom tasks can be found in `./grunt/task`.
* The "shared variables" belowcannot use grunt.config(),
* since it has not been initialized yet, until grunt.initConfig() is executed.
*/

Expand Down Expand Up @@ -37,7 +37,7 @@ module.exports = function (grunt) {
scope: 'devDependencies'
},
data: {
// Variables shared across configuration tasks, use templates, <%= %>, to access
// Variables shared across configuration tasks, use templates, <%= %>, to access
// within configuration tasks
bannerRelease: '/*!\n' +
' * Fuel UX v<%= pkg.version %> \n' +
Expand All @@ -54,11 +54,8 @@ module.exports = function (grunt) {
bootstrapCheck: 'if (typeof jQuery.fn.dropdown === \'undefined\' || typeof jQuery.fn.collapse === \'undefined\') ' +
'{ throw new Error(\'Fuel UX\\\'s JavaScript requires Bootstrap\') }\n\n',
pkg: getPackage(),
// Try ENV variables (export SAUCE_ACCESS_KEY=XXXX), if key doesn't exist, try key file
sauceLoginFile: grunt.file.exists('SAUCE_API_KEY.yml') ? grunt.file.readYAML('SAUCE_API_KEY.yml') : undefined,
cdnLoginFile: grunt.file.exists('FUEL_CDN.yml') ? grunt.file.readYAML('FUEL_CDN.yml') : undefined,
sauceUser: process.env.SAUCE_USERNAME || 'fuelux',
sauceKey: process.env.SAUCE_ACCESS_KEY ? process.env.SAUCE_ACCESS_KEY : '<%= sauceLoginFile.key %>',
// TEST URLS
allTestUrls: ['2.1.0', '1.11.0', '1.9.1', 'browserGlobals', 'noMoment', 'codeCoverage' ].map(function (type) {
if (type === 'browserGlobals') {
Expand All @@ -84,5 +81,5 @@ module.exports = function (grunt) {

// load custom build, release, serve, and test tasks from the folder specified
grunt.loadTasks('./grunt/tasks');

};
23 changes: 13 additions & 10 deletions RELEASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ You will need to authorize your machine to do npm publishing using `npm adduser`
- [ ] `npm install`
- [ ] `grunt test`
- [ ] `grunt saucelabs` Best to find out if they pass or not now as opposed to in the middle of a release.
* **WILL NOT WORK ON VPN**
* If some environments fail, you can comment out the passing environments temporarily in `sauce_browsers.yml` while you debug
* If some environments fail, start your server with `grunt servefast` and use Browserstack to investigate.
- [ ] Generate test distribution package for use on the Fuel UX Site
Expand All @@ -41,7 +42,9 @@ You will need to authorize your machine to do npm publishing using `npm adduser`
- [ ] 1b. Assign any remaining open tickets to the milestone you just created (or, if appropriate, assign them to the backlog).
- [ ] 1c. Mark the current release milestone as closed.

- [ ] 2. `grunt release`
- [ ] 2. Log off of VPN (or saucelabs will probably fail)

- [ ] 3. `grunt release`
This grunt task:
* Creates a new release branch from remote master.
* Builds dist.
Expand All @@ -55,21 +58,21 @@ You will need to authorize your machine to do npm publishing using `npm adduser`
* Pushes 3.x to master if nothing new has been merged in.
* Runs `npm publish` using the fuelux profile
* (with prompt) Runs Ruby Gem described below for Release Notes.
- [ ] 3. Create Release Notes for release and publish
- [ ] 4. Create Release Notes for release and publish
![Draft release, copy/paste output from Ruby Gem, Publish](http://i.imgur.com/WQHN3Y6.gif)
- [ ] 4. Update getfuelux.com
- [ ] 5. Update getfuelux.com
- [ ] 4a. Checkout the `gh-pages` branch.
- [ ] 4b. Run `bower update`.
- [ ] 4c. Commit
- [ ] 4d. Push to `upstream`.

- [ ] 5. Update Fuel UX Site
- [ ] 6. [Update MC Theme] (https://github.com/ExactTarget/fuelux-mctheme/wiki/How-to-release-a-new-version)
- [ ] 7. Update Rucksack
- [ ] 8. Update Fusion
- [ ] 9. Announce
- [ ] 9a. Tweet via @FuelUX account
- [ ] 9b. Post to Chatter in the Fuel UX Group
- [ ] 6. Update Fuel UX Site
- [ ] 7. [Update MC Theme] (https://github.com/ExactTarget/fuelux-mctheme/wiki/How-to-release-a-new-version)
- [ ] 8. Update Rucksack
- [ ] 9. Update Fusion
- [ ] 10. Announce
- [ ] 10a. Tweet via @FuelUX account
- [ ] 10b. Post to Chatter in the Fuel UX Group

## Generate Release Notes

Expand Down
5 changes: 4 additions & 1 deletion grunt/config/saucelabs-qunit.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,12 @@ module.exports = function (grunt) {
return grunt.file.readJSON('./package.json');
}

// Try ENV variables (export SAUCE_ACCESS_KEY=XXXX), if key doesn't exist, try key file
var sauceKey = process.env.SAUCE_ACCESS_KEY ? process.env.SAUCE_ACCESS_KEY : grunt.file.exists('SAUCE_API_KEY.yml') ? grunt.file.readYAML('SAUCE_API_KEY.yml').key : undefined;

// https://github.com/axemclion/grunt-saucelabs/issues/215
var getSaucekey = function getSaucekey () {
return grunt.file.readYAML('SAUCE_API_KEY.yml').key;
return sauceKey;
};

return {
Expand Down
23 changes: 9 additions & 14 deletions grunt/tasks/test.js
Original file line number Diff line number Diff line change
@@ -1,37 +1,32 @@
module.exports = function(grunt) {

/* -------------
TESTS
------------- */

module.exports = function test (grunt) {
// to be run prior to submitting a PR
grunt.registerTask('test', 'run jshint, qunit source w/ coverage, and validate HTML',
['jshint', 'connect:testServer', 'blanket_qunit:source', 'qunit:noMoment', 'qunit:globals', 'htmllint']);

//If qunit:source is working but qunit:full is breaking, check to see if the dist broke the code. This would be especially useful if we start mangling our code, but, is 99.99% unlikely right now
// If qunit:source is working but qunit:full is breaking, check to see if the dist broke the code. This would be especially useful if we start mangling our code, but, is 99.99% unlikely right now
grunt.registerTask('validate-dist', 'run qunit:source, dist, and then qunit:full',
['connect:testServer', 'qunit:source', 'dist', 'browserify:commonjs', 'qunit:dist']);

// multiple jQuery versions, then run SauceLabs VMs
grunt.registerTask('releasetest', 'run jshint, build dist, all source tests, validation, and qunit on SauceLabs',
['test', 'dist', 'browserify:commonjs', 'qunit:dist', 'saucelabs-qunit:defaultBrowsers']);

// can be run locally instead of through TravisCI, but requires the Fuel UX Saucelabs API key file which is not public at this time.
// Due to TravisCI security concerns, Saucelabs can not be run for PRs from forks. Therefore, it can not become part of our PR process.
// https://docs.travis-ci.com/user/pull-requests/#Pull-Requests-and-Security-Restrictions
// can be run locally instead. Requires the Fuel UX Saucelabs API key file.
grunt.registerTask('saucelabs', 'run jshint, and qunit on saucelabs',
['connect:testServer', 'jshint', 'saucelabs-qunit:defaultBrowsers']);

// Travis CI task. This task no longer uses SauceLabs. Please run 'grunt saucelabs' manually.
grunt.registerTask('travisci', 'Tests to run when in Travis CI environment',
['test', 'dist', 'browserify:commonjs', 'qunit:dist']);

// if you've already accidentally added your files for commit, this will at least unstage them. If you haven't, this will wipe them out.
grunt.registerTask('resetdist', 'resets changes to dist to keep them from being checked in', function () {
//default resetdist to true... basically.
if (typeof grunt.option('resetdist') === "undefined" || grunt.option('resetdist')) {
grunt.registerTask('resetdist', 'resets changes to dist to keep them from being checked in', function resetdist () {
// default resetdist to true... basically.
if (typeof grunt.option('resetdist') === 'undefined' || grunt.option('resetdist')) {
var exec = require('child_process').exec;
exec('git reset HEAD dist/*');
exec('git checkout -- dist/*');
}
});

};
};

0 comments on commit a6b27e1

Please sign in to comment.