0.0.11 • Published 4 years ago

@robinherbots/grunt-cideploy v0.0.11

Weekly downloads
-
License
MIT
Repository
github
Last release
4 years ago

grunt-cideploy

Getting Started

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

npm install grunt-cideploy --save-dev

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('grunt-cideploy');

The "ci_deploy" task

Overview

In your project's Gruntfile, add a section named cideploy to the data object passed into grunt.initConfig().

grunt.initConfig({
  ci_deploy: {
        options: {
             before: function (grunt, options) { },
             msbuild: {},
             buildtasks: ["nugetrestore", "msbuild"],
             testtasks: ["eslint"],
             after: function (grunt, options) { },
             obtainProfile: function (tag) {
             	return  tag.indexOf("Production") !== -1 ? "Production" : "Staging";
             },
             origin: "",
             notifyInSharePoint: false,
             removeTagAfterDeploy: false,
             username: grunt.option("username"),
             password: grunt.option("password"),
             Project_x0020_NameId: 1,
             Application_x0020_NameId: 12,
             Title: 'Title'
        }
  });

Options

before

Default: function (grunt, options) { }

This is a callback which is called before the deployment task is run.
In here you can stop the apppool on IIS for example.

   before: function (grunt, options) {
                        generateConfig();
                        grunt.task.run("StopWebAppPool");
                        grunt.config('msbuild.target.options.buildParameters.DeployOnBuild', true);

                        console.log(JSON.stringify(grunt.config("msbuild")));
                    },

msbuild

Default: null

This is the msbuild definition. For more information see https://www.npmjs.com/package/grunt-msbuild

  msbuild: {
                        project: {
                            src: ['src/project/project.csproj'],
                            options: {
                                projectConfiguration: 'Release',
                                targets: ['Clean', 'Rebuild'],
                                buildParameters: {
                                    OutputPath: process.cwd() + sep + "build" + sep + "service",
                                    WarningLevel: 2,
                                    DeployOnBuild: grunt.option('deploy') || false,
                                    PublishProfile: grunt.option('profile') || "Staging",
                                    Password: grunt.option('password') || credentials.msbuild_deploy.password,
                                    PackageVersion: '<%= pkg.version %>',
                                    FileVersion: '<%= pkg.version %>',
                                    Version: '<%= pkg.version %>',
                                    AssemblyVersion: '<%= pkg.version %>'
                                },
                                verbosity: 'minimal'
                            }
                        }
            }

buildtasks

Default: []

Define the tasks to execute on build/deploy

buildtasks: ["clean", "nugetrestore", "msbuild"],

testtasks

Default: []

Define the tasks to execute on test

buildtasks: ["clean", "nugetrestore", "msbuild"],

after

Default: function (grunt, options) { }

This is a callback which is called before the deployment task is run.
In here you can start the apppool on IIS for example.

  after: function (grunt, options) {
                        grunt.task.run("StartWebAppPool");
                    },

obtainProfile

Default:

function (tag) { 
   return  tag.indexOf("Production") !== -1 ? "Production" : "Staging";
},

This callback is used to determine the publishprofile to use depending the incoming tag description.

origin

Default: ""

This is the project remote git url.
This is needed to allow the gitlabrunner to commit changes to gitlab.

 origin: "https://gitlab.com/project.git",

notifyInSharePoint

Default: false

Notify the publish in SharePoint.

removeTagAfterDeploy

Default: false

Delete the tag after deployment..

username

Default: grunt.option("username")

See https://www.npmjs.com/package/grunt-sharepoint-list

password

Default: grunt.option("password")

See https://www.npmjs.com/package/grunt-sharepoint-list

Project_x0020_NameId

Default: 1

See https://www.npmjs.com/package/grunt-sharepoint-list

Application_x0020_NameId

Default: 12

See https://www.npmjs.com/package/grunt-sharepoint-list

Title

Default: "Title"

See https://www.npmjs.com/package/grunt-sharepoint-list