Lightweight Developer Provisioning with Gradle

What is SEU-as-code?

SEU-as-code is a lightweight approach and tool based on Gradle that helps to alleviate and automate the provisioning of developers and their local development environments. The idea is simple: describe and implement the development environment as a Gradle build file. Required software packages become dependencies. Shell scripts are implemented as Gradle tasks or in Groovy.

Designed for developers

Describe your development environment as Gradle build file. Implement required scripts in Groovy or Gradle tasks. Have full IDE support.

Time saver

Get up and running and bootstrap a new development environment for a project in under 15 minutes. Software updates are only a matter of minutes now.

Team centered

Distribute and use the same homogene development environment across the whole team. The setup of new team members becomes a breeze.

Lightweight packaging

Packages are build with Gradle from standard distributions. Packages can be handled by Maven repository managers or stored local to the SEU directory.

Easy to customise

The SEU layout can be customised to suite your preferences. Have the full potential and power of Gradle at your disposal to add custom functionality.

Version controlled

Keep track of changes to the development environment throughout the whole life time of a project. Easily revert to previous versions in case if bug fixes.

Features

Get Started

So you have decided to build your next development environment using SEU-as-code. Follow these five basic steps to get started.

  1. Download the latest SEU-as-code archetype distribution from either Bintray or GitHub.
  2. Extract the archive to a VHD or sparse image disk.
  3. Customize the build.gradle file and adjust the seuAsCode{} configuration section with your SEU name and root directory path. Also adjust the home and software dependencies you require. For a complete list of packages have a look at the available packages.
  4. Version control the SEU-as-code files in a Git or SVN repository.
  5. Bootstrap the SEU image by calling `gradlew bootstrapSeu` in a console window.
plugins {
    id 'de.qaware.seu.as.code.base' version '2.4.0'
}

seuAsCode {
    seuHome = 'Q:'
    projectName = 'SEU-as-code Quickstart'
}

repositories {
	maven {
		url 'https://dl.bintray.com/seu-as-code/maven'
	}
}

dependencies {
    seuac 'org.codehaus.groovy.modules.scriptom:scriptom:1.6.0'
    seuac 'com.h2database:h2:1.4.188'

    home 'de.qaware.seu.as.code:seuac-home:2.4.0'
    software 'de.qaware.seu.as.code:seuac-environment:2.4.0'
}                     

Gradle Summit 2016 Presentation

This video is the screen cast of the SEU-as-code presentation at the Gradle Summit 2016 in Palo Alto. It will show some of the usage details as well as a 15 minutes live demo.

Full Documentation

The complete documentation of all plugins, packages, features and usage scenarios (including FAQ etc) can be found on GitHub. Also there is a dedicated SEU-as-code online documentation repository.


More on GitHub

User's Guide

The user's guide for SEU-as-code as online book. Available as HTML, as ePub and Mobi format and PDF.


More on GitBooks

License

Copyright (C) 2015 QAware GmbH

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.


The Jekyll theme of this webpage has been created by UX designer Xiaoying Riley at 3rd Wave Media.

Contact

Feel free to get in touch, preferrably via GitHub, if you have any questions or suggestions.

Want to get involved?

As with any open source project, your help is highly welcome. Have you built a new software package? Or is there a certain plugin functionality missing that you require in your daily work as a developer?

Then don't hesitate to share your ideas or contribute your work. We are happy to accept your pull requests on GitHub.

M.-Leander Reimer
Chief Technologist

Get Connected