Git Product home page Git Product logo

crane's People

Contributors

cranebuild avatar ewilde avatar gitter-badger avatar kevholditch avatar mrdavidlaing avatar waffle-iron avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

crane's Issues

crane plugin: plugin support for templates

Perhaps we can use nuget packages as a way of installing available templates

crane plugin Crane.CityCorp -source http://internal/api/v2

This would download the Crane.CityCorp package from the http://internal/api/v2 nuget server and install their build templates

look at using visual studio templates for templating rather than handrolling our own

Visual Studio has built in templating so we could just tap into that:
http://msdn.microsoft.com/en-us/library/cc175307%28v=vs.90%29.aspx

That means that crane could then gen out a project based on any template the user has installed on their machine e.g. MVC Application.

Crane could read templates from the visual studio location (c:/program files/microsoft visual studio/etc etc) and combine those with its own when deciding which template to use. That way out of the box all of the templates on your machine would be used.

powershell api

Place holder, needs completing

Powershell cmdlets to do useful things:

Crane find type IFoo
Crane build
Crane depend {ProjName}
etc.....

Create azure vm with latest teamcity

  • Create azure vm with latest teamcity (ver 9 for git storage?)
  • build all branches & pull requests
  • version.txt (lets use semver)
  • master build should publish to chocolatey
  • store build config in git
  • buy cranebuild.com
  • point teamcity.cranebuild.com

[build template] nuget publish target

crane template build should have a target to pack and publish the nuget package that is created from the nuget

If nuspec file found that matches project name and they provide their api key and nuget url then we auto pack and publish to nuget

For our integration tests spin up a self hosted nuget server to test that we actually published the package successfully

[build template] convention tests, add to unit test project

In keeping with being opinionated:

I think it's nice to have tests that make sure the structure of code is adhered to:

i.e. (but do this in xbehave)

 [Test]
        public void debug_configurations_should_have_debug_type_pdb_only()
        {
            Convention.Is(new ConfigurationHasSpecificValue(ConfigurationType.Debug, "DebugType", "full"), new ProjectPropertyGroups(typeof(DomainClass).Assembly, projectProvider, projectLocator));
        }

        [Test]
        public void debug_configurations_should_have_optimize_false()
        {
            Convention.Is(new ConfigurationHasSpecificValue(ConfigurationType.Debug, "Optimize", "false"), new ProjectPropertyGroups(typeof(DomainClass).Assembly, projectProvider, projectLocator));
        }

        [Test]
        public void release_configurations_should_have_debug_type_pdb_only()
        {
            Convention.Is(new ConfigurationHasSpecificValue(ConfigurationType.Release, "DebugType", "pdbonly"), new ProjectPropertyGroups(typeof(DomainClass).Assembly, projectProvider, projectLocator));
        }

        [Test]
        public void release_configurations_should_have_optimize_true()
        {
            Convention.Is(new ConfigurationHasSpecificValue(ConfigurationType.Release, "Optimize", "true"), new ProjectPropertyGroups(typeof(DomainClass).Assembly, projectProvider, projectLocator));
        }

Investigate why ncrunch does not work with solution

Look into why ncrunch does not work with crane solution. Short answer is that ncrunch does not support xbehave out of the box but there may be somethings we can do to get this working. Worth looking in to.

Marketing

  • Investigate how to get the word out about crane, e.g. crane twitter account (tweet upon successful build)
  • Prepare talk and give to .net user group (Cambridge & London)
  • Give a talk here at City Index (Tech talk series)

Config

Allow crane to be configured at the global and project level in the same way that git is.

User integration tests folder

When running the commandline integration test, move the runner to temp folder

This will enable parallel tests runs

Implement crane assemble

crane assemble foldername

by default ->
* find solution file inside that folder (if more than one use one with foldername case insensitve)
* create build for that solution - build context object for the foldername and then call existing code

Documentation

I think that good documentation will increase the chance of people using crane. So just wanted to put a marker in here for that until we get a chance to break this up into smaller tasks:

Examples of some code documentation

[build template] Create Team City build template

  • Create TeamCity build template
  • Look at how you configure which build to assemble e.g. additive, selective by configuration or by passing args
  • Create as a plugin and publish on nuget.org
  • Create separate github repo for project
  • Create build using crane

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.