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

updating travis-ci scripts and node requirements #1873

Merged
merged 5 commits into from
Sep 23, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 2 additions & 6 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,8 @@ language: node_js
node_js:
- 5.8
sudo: false
before_install:
- time wget http://fuelux-edge.herokuapp.com/dev/node_modules.tar.gz
- time tar -zxf node_modules.tar.gz
- chmod +x ./node_modules
install:
- time npm update
- time npm install
- time ./node_modules/bower/bin/bower update
env:
global:
Expand All @@ -20,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/*');
}
});

};
};
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@
"serve-static": "1.11.1"
},
"engines": {
"node": "4.4.x"
"node": "5.8.x"
},
"homepage": "https://github.com/ExactTarget/fuelux",
"keywords": [
Expand Down
10 changes: 3 additions & 7 deletions sauce_browsers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,13 @@

# If you are having trouble with a particular test, you can comment the others out to test just it

{
browserName: "safari",
platform: "OS X 10.9"
},
{
browserName: "chrome",
platform: "OS X 10.9"
platform: "OS X 10.11"
},
{
browserName: "firefox",
platform: "OS X 10.9"
platform: "OS X 10.11"
},

# Mac Opera not currently supported by Sauce Labs
Expand Down Expand Up @@ -49,7 +45,7 @@

{
browserName: "iphone",
platform: "OS X 10.9",
platform: "OS X 10.11",
version: "7.1"
},

Expand Down