Example #1
0
  it( 'should create a default commit message if no version is passed', () => {
    util.git.commit();

    expect( execStub ).toBeCalledWith(
      'git commit -am "Auto-incrementing version"'
    );
  } );
Example #2
0
                function(fn){
                    utils.git.delete_tag(language.version.new, function(err){
                        if(_.isNull(err))
                            logger.warn(["Successfully deleted git tag", language.version.new].join(" "));

                        return fn();
                    });
                },
Example #3
0
 commit: function(fn){
     utils.git.commit(language.version.new, function(err){
         if(err)
             return fn(err);
         else{
             logger.info("Committed changes!");
             return fn();
         }
     });
 },
Example #4
0
 tag: function(fn){
     if(options.tag){
         utils.git.tag(language.version.new, function(err){
             if(err)
                 return fn(err);
             else{
                 logger.info(["Created git tag", language.version.new].join(" "));
                 return fn();
             }
         });
     }
     else{
         return fn();
     }
 },
Example #5
0
 it( 'pushes the commits and tags to the remote branch', () => {
   const repoURL = 'git+ssh://git@github.com/cfpb/capital-framework.git';
   return util.git.push( repoURL ).then( () => {
     expect( execStub ).toHaveBeenCalledTimes( 3 );
     expect( execStub.mock.calls[0][0] ).toBe(
       'git push git+ssh://git@github.com/cfpb/capital-framework.git master'
     );
     expect( execStub.mock.calls[1][0] ).toBe(
       'git push git+ssh://git@github.com/cfpb/capital-framework.git ' +
       'master:canary'
     );
     expect( execStub.mock.calls[2][0] ).toBe(
       'git push git+ssh://git@github.com/cfpb/capital-framework.git --tags'
     );
   } );
 } );
Example #6
0
utils.detect_language(function(language){
    if(_.isUndefined(language)){
        logger.error("Unable to detect language ... exiting!");
        process.exit(1);
    }

    var options = nomnom.script(pkg.name).options(_.merge({
        level: {
            position: 0,
            help: "Level to bump version [major | minor | patch | pre]",
            choices: ["major", "minor", "patch", "pre"],
            default: "patch"
        },

        "prerelease-identifier": {
            help: "Identifier appened to version for prerelase builds",
            choices: ["alpha", "beta", "rc"],
            default: "rc"
        },

        "tag": {
            help: "Create a git tag for this release",
            flag: true,
            default: true
        }
    }, language.options)).parse();

    language.configuration = options;

    utils.git.initialize();

    async.series({
        update_version: function(fn){
            language.update_version(function(err){
                if(err)
                    return fn(err);
                else{
                    logger.info(["Updated to version", language.version.new].join(" "));
                    return fn();
                }

            });
        },

        post_update: function(fn){
            language.post_update(function(err, messages){
                if(err)
                    return fn(err);
                else{
                    _.each(messages, function(message){
                        logger.info(message);
                    });
                    return fn();
                }
            });
        },

        commit: function(fn){
            utils.git.commit(language.version.new, function(err){
                if(err)
                    return fn(err);
                else{
                    logger.info("Committed changes!");
                    return fn();
                }
            });
        },

        post_commit: function(fn){
            language.post_commit(function(err, messages){
                if(err)
                    return fn(err);
                else{
                    _.each(messages, function(message){
                        logger.info(message);
                    });
                    return fn();
                }
            });
        },

        tag: function(fn){
            if(options.tag){
                utils.git.tag(language.version.new, function(err){
                    if(err)
                        return fn(err);
                    else{
                        logger.info(["Created git tag", language.version.new].join(" "));
                        return fn();
                    }
                });
            }
            else{
                return fn();
            }
        },

        post_tag: function(fn){
            language.post_tag(function(err, messages){
                if(err)
                    return fn(err);
                else{
                    _.each(messages, function(message){
                        logger.info(message);
                    });
                    return fn();
                }
            });
        }
    }, function(err){
        if(err){
            logger.error(err.message);

            async.series([
                function(fn){
                    utils.git.delete_tag(language.version.new, function(err){
                        if(_.isNull(err))
                            logger.warn(["Successfully deleted git tag", language.version.new].join(" "));

                        return fn();
                    });
                },

                function(fn){
                    language.restore_version(function(err){
                        if(err)
                            logger.error(["Error rolling back to version", language.version.original].join(" "));
                        else
                            logger.warn(["Successfully rolled back to version", language.version.original].join(" "));

                        return fn();
                    });
                }
            ], function(){
                logger.error(["Failed to update to version", language.version.new].join(" "));
                process.exit(1);
            });
        }
        else{
            logger.info(["Successfully updated to version", language.version.new].join(" "));
        }
    });

});
Example #7
0
  it( 'should tag the corresponding commit with the passed version', () => {
    util.git.tag( '1.0.0' );

    expect( execStub ).toBeCalledWith( 'git tag -a 1.0.0 -m "1.0.0"' );
  } );
Example #8
0
  it( 'should create a commit message using the passed version', () => {
    util.git.commit( '1.0.0' );

    expect( execStub ).toBeCalledWith( 'git commit -am "1.0.0"' );
  } );
Example #9
0
  it( 'should create a commit message using the passed version', () => {
    util.git.checkBranch();

    expect( execStub ).toBeCalledWith( 'git rev-parse --abbrev-ref HEAD' );
  } );
Example #10
0
  it( 'should checkout the `master` branch', () => {
    util.git.checkoutMaster();

    expect( execStub ).toBeCalledWith( 'git checkout master' );
  } );