1.2.0 • Published 4 years ago

shipit-mono v1.2.0

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

##shipit-mono

Build Status npm

deploy mono web/asp.net application base on Shipit-deploy

Install

npm install shipit-mono

Usage

Example shipitfile.js

module.exports = function (shipit) {
  require('shipit-mono')(shipit);

  shipit.initConfig({
    default: {
      workspace: '/tmp/github-monitor',
      deployTo: '/tmp/deploy_to',
      repositoryUrl: 'https://github.com/user/repo.git',
      ignores: ['.git', 'node_modules'],
      keepReleases: 2,
      xdt:'Release'
      shallowClone: false,
      xbuild:{
                solutionPath:'./src/Kings.sln',
                target:'Kings.Web',
                properties:{
                    Configuration:'Release'
                }
            }
    },
    staging: {
      servers: 'user@myserver.com'
    }
  });
};

To deploy on staging, you must use the following command :

shipit staging deploy

You can rollback to the previous releases with the command :

shipit staging rollback

Options

workspace

Type: String

Define a path to an empty directory where Shipit builds it's syncing source. Beware to not set this path to the root of your repository as shipit-deploy cleans the directory at the given path as a first step.

dirToCopy

Type: String Default: same as workspace

Define directory within the workspace which should be deployed.

deployTo

Type: String

Define the remote path where the project will be deployed. A directory releases is automatically created. A symlink current is linked to the current release.

repositoryUrl

Type: String

Git URL of the project repository.

branch

Type: String

Tag, branch or commit to deploy.

ignores

Type: Array<String>

An array of paths that match ignored files. These paths are used in the rsync command.

deleteOnRollback

Type: Boolean

Whether or not to delete the old release when rolling back to a previous release.

key

Type: String

Path to SSH key

keepReleases

Type: Number

Number of releases to keep on the remote server.

xdt

Type: String

transform Web.config using xdt(Microsoft Xml Document Transformation). Default: ''

Example:

xdt = Release

 Web.config + Web.Release.config  -> Web.config  
 

shallowClone

Type: Boolean

Perform a shallow clone. Default: false.

###updateSubmodules

Type: Boolean

Update submodules. Default: false.

gitLogFormat

Type: String

Log format to pass to git log. Used to display revision diffs in pending task. Default: %h: %s - %an.

copy

Type: String

Parameter to pass to cp to copy the previous release. Non NTFS filesystems support -r. Default: -a

Variables

Several variables are attached during the deploy and the rollback process:

shipit.config.*

All options described in the config sections are available in the shipit.config object.

shipit.repository

Attached during deploy:fetch task.

You can manipulate the repository using git command, the API is describe in gift.

shipit.releaseDirname

Attached during deploy:update and rollback:init task.

The current release dirname of the project, the format used is "YYYYMMDDHHmmss" (moment format).

shipit.releasesPath

Attached during deploy:init, rollback:init, and pending:log tasks.

The remote releases path.

shipit.releasePath

Attached during deploy:update and rollback:init task.

The complete release path : path.join(shipit.releasesPath, shipit.releaseDirname).

shipit.currentPath

Attached during deploy:init, rollback:init, and pending:log tasks.

The current symlink path : path.join(shipit.config.deployTo, 'current').

###xbuild

####buildTool Type:String Attached during deploy:build task. default msbuild

options: msbuild or xbuild

####solutionDir

Type: String

Attached during deploy:build task.

solution(*.sln) directory within the workspace

####framework

Type: String

Attached during deploy:build task.

.net framework version.

####configuration

Type: String

Attached during deploy:build task.

xbuild configuration

####csprojPath

Type: String

Attached during deploy:build task.

web.csproj within the workspace which should be deployed.

####properties Type:Object

extra properties

Workflow tasks

the same with shipit-deploy

  • deploy
    • deploy:init
      • Emit event "deploy".
    • deploy:fetch
      • Create workspace.
      • Initialize repository.
      • Add remote.
      • Fetch repository.
      • Checkout commit-ish.
      • Merge remote branch in local branch.
      • Emit event "fetched".
    • deploy:build
      • nuget restore.
      • xbuild csproj.
      • cp release contents & bin.
      • Emit event "builded".
    • deploy:update
      • Create and define release path.
      • Remote copy project.
      • Emit event "updated".
    • deploy:publish
      • Update symlink.
      • Emit event "published".
    • deploy:clean
      • Remove old releases.
      • Emit event "cleaned".
    • deploy:finish
      • Emit event "deployed".
  • rollback
    • rollback:init
      • Define release path.
      • Emit event "rollback".
    • deploy:publish
      • Update symlink.
      • Emit event "published".
    • deploy:clean
      • Remove old releases.
      • Emit event "cleaned".
    • rollback:finish
      • Emit event "rollbacked".
  • pending
    • pending:log
      • Log pending commits (diff between HEAD and currently deployed revision) to console.

Dependencies

Local

  • git 1.7.8+
  • rsync 3+
  • OpenSSH 5+
  • mono
  • xamarin studio

License

MIT

1.2.0

4 years ago

1.1.4

5 years ago

1.1.3

5 years ago

1.1.2

5 years ago

1.1.1

5 years ago

1.0.0

5 years ago

0.3.0

5 years ago

0.2.0

5 years ago

0.1.4

6 years ago

0.1.3

6 years ago

0.1.2

6 years ago

0.1.1

6 years ago

0.1.0

6 years ago