Permalink
Browse files

Documentation guides for the next crop of supported languages

  • Loading branch information...
1 parent 93812c8 commit 453864a9eabe369ef43cec9d9a3e37a9e08e1b0e @michaelklishin michaelklishin committed Jul 11, 2012
View
@@ -55,8 +55,11 @@ <h1 class="riddle"><a href="/" title="Travis">Travis CI</a></h1>
</ul>
<h2>Language-specific Guides</h2>
<ul>
+ <li><a href="/docs/user/languages/c/">C</a></li>
+ <li><a href="/docs/user/languages/cpp/">C++</a></li>
<li><a href="/docs/user/languages/clojure/">Clojure</a></li>
<li><a href="/docs/user/languages/erlang/">Erlang</a></li>
+ <li><a href="/docs/user/languages/go/">Go</a></li>
<li><a href="/docs/user/languages/groovy/">Groovy</a></li>
<li><a href="/docs/user/languages/haskell/">Haskell</a></li>
<li><a href="/docs/user/languages/java/">Java</a></li>
View
@@ -55,8 +55,11 @@ <h1 class="riddle"><a href="/" title="Travis">Travis CI</a></h1>
</ul>
<h2>Guías para lenguajes específicos</h2>
<ul>
+ <li><a href="/docs/user/languages/c/">C</a></li>
+ <li><a href="/docs/user/languages/cpp/">C++</a></li>
<li><a href="/docs/user/languages/clojure/">Clojure</a></li>
<li><a href="/docs/user/languages/erlang/">Erlang</a></li>
+ <li><a href="/docs/user/languages/go/">Go</a></li>
<li><a href="/docs/user/languages/groovy/">Groovy</a></li>
<li><a href="/docs/user/languages/haskell/">Haskell</a></li>
<li><a href="/docs/user/languages/java/">Java</a></li>
View
@@ -73,8 +73,11 @@ <h1 class="riddle"><a href="/" title="Travis">Travis CI</a></h1>
</ul>
<h2>Langages</h2>
<ul>
+ <li><a href="/docs/user/languages/c/">C *</a></li>
+ <li><a href="/docs/user/languages/cpp/">C++ *</a></li>
<li><a href="/fr/docs/user/languages/clojure/">Clojure</a></li>
<li><a href="/fr/docs/user/languages/erlang/">Erlang</a></li>
+ <li><a href="/docs/user/languages/go/">Go *</a></li>
<li><a href="/docs/user/languages/groovy/">Groovy *</a></li>
<li><a href="/docs/user/languages/haskell/">Haskell *</a></li>
<li><a href="/docs/user/languages/java/">Java *</a></li>
View
@@ -55,8 +55,11 @@ <h1 class="riddle"><a href="/" title="Travis">Travis CI</a></h1>
</ul>
<h2>Guias para linguagens específicas</h2>
<ul>
+ <li><a href="/docs/user/languages/c/">C</a></li>
+ <li><a href="/docs/user/languages/cpp/">C++</a></li>
<li><a href="/pt-BR/docs/user/languages/clojure/">Clojure</a></li>
<li><a href="/pt-BR/docs/user/languages/erlang/">Erlang</a></li>
+ <li><a href="/docs/user/languages/go/">Go</a></li>
<li><a href="/pt-BR/docs/user/languages/groovy/">Groovy</a></li>
<li><a href="/pt-BR/docs/user/languages/haskell/">Haskell</a></li>
<li><a href="/pt-BR/docs/user/languages/java/">Java</a></li>
@@ -30,14 +30,21 @@ Provisioning of VMs is automated using [OpsCode Chef](http://www.opscode.com/che
## Environment common to all VM images
-### Built toolchain
+### Compilers & Built toolchain
+
+GCC 4.6.x, Clang 3.1.x, make, autotools, cmake, scons.
-GCC 4.6.x, make, autotools, et cetera.
### Networking tools
curl, wget, OpenSSL, rsync
+
+### Go
+
+Go compiler/build tool 1.0.
+
+
### Runtimes
Every worker has at least one version of
@@ -46,6 +53,7 @@ Every worker has at least one version of
* OpenJDK
* Python
* Node.js
+* Go compiler/build tool
to accommodate projects that may need one of those runtimes during the build.
@@ -8,8 +8,11 @@ permalink: getting-started/
Travis CI is a hosted continuous integration service for the open source community. It is integrated with GitHub and offers first class support for:
+* [C](/docs/user/languages/c)
+* [C++](/docs/user/languages/cpp)
* [Clojure](/docs/user/languages/clojure)
* [Erlang](/docs/user/languages/erlang)
+* [Go](/docs/user/languages/go)
* [Groovy](/docs/user/languages/groovy)
* [Haskell](/docs/user/languages/haskell)
* [Java](/docs/user/languages/java)
@@ -24,6 +27,10 @@ Our CI environment provides multiple runtimes (e.g. Node.js or PHP versions), da
travis-ci.org originally started as a service for the Ruby community in early 2011 but has added support for many other technologies since then.
+As a free community service, Travis CI limits build duration to about 20 minutes. Because some larger codebases may take very long time to build,
+please take care to only use a reasonable amount of workers time.
+
+
### Step one: Sign in
To get started with Travis CI, sign in through Github OAuth. Go to [Travis CI](http://travis-ci.org) and follow the Sign In link at the top.
@@ -44,6 +51,31 @@ If `.travis.yml` is not in the repository, is misspelled or is not [valid YAML](
Here are some basic **.travis.yml** examples:
+
+#### C
+
+ language: c
+ compiler:
+ - gcc
+ - clang
+ # Change this to your needs
+ script: ./configure && make
+
+Learn more about [.travis.yml options for C projects](/docs/user/languages/c/)
+
+
+#### C++
+
+ language: cpp
+ compiler:
+ - gcc
+ - clang
+ # Change this to your needs
+ script: ./configure && make
+
+Learn more about [.travis.yml options for C++ projects](/docs/user/languages/cpp/)
+
+
#### Clojure
For projects using Leiningen 1:
@@ -83,6 +115,14 @@ Learn more about [.travis.yml options for Erlang projects](/docs/user/languages/
Learn more about [.travis.yml options for Haskell projects](/docs/user/languages/haskell/)
+#### Go
+
+ language: go
+
+Learn more about [.travis.yml options for Go projects](/docs/user/languages/go/)
+
+
+
#### Groovy
language: groovy
@@ -107,7 +147,6 @@ Learn more about [.travis.yml options for Java projects](/docs/user/languages/ja
language: node_js
node_js:
- - 0.4
- 0.6
- 0.8
@@ -0,0 +1,70 @@
+---
+title: Building a C Project
+layout: en
+permalink: c/
+---
+
+### What This Guide Covers
+
+This guide covers build environment and configuration topics specific to C projects. Please make sure to read our [Getting Started](/docs/user/getting-started/) and [general build configuration](/docs/user/build-configuration/) guides first.
+
+## CI environment for C Projects
+
+Travis VMs are 32 bit and currently provide
+
+ * gcc 4.6
+ * clang 3.1
+ * core GNU build toolchain (autotools, make), cmake, scons
+
+C projects on travis-ci.org assume you use Autotools and Make by default.
+
+As a free community service, Travis CI limits build duration to about 20 minutes. Because some large C codebases may take very long time to build,
+please take care to not take too much of workers time. If you project takes longer than 10-15, please contact us on the mailing nlist
+before you add your project to Travis.
+
+
+## Dependency Management
+
+Because there is no dominant convention in the community about dependency management, Travis CI skips dependency installation
+for C projects.
+
+If you need to perform special tasks before your tests can run, override the `install:` key in your `.travis.yml`:
+
+ install: make get-deps
+
+See [general build configuration guide](/docs/user/build-configuration/) to learn more.
+
+
+
+## Default Test Script
+
+Because C projects on travis-ci.org assume Autotools and Make by default, naturally, the default command Travis CI will use to
+run your project test suite is
+
+ ./configure && make && make test
+
+Projects that find this sufficient can use a very minimalistic .travis.yml file:
+
+ language: c
+
+This can be overriden as described in the [general build configuration](/docs/user/build-configuration/) guide. For example, to build
+by running Scons without arguments, override the `script:` key in `.travis.yml` like this:
+
+ script: scons
+
+
+## Choosing compilers to test against
+
+It is possible to test projects against either GCC or Clang, or both. To do so, specify the compiler to use using the `compiler:` key
+in `.travis.yml`. For example, to build with Clang:
+
+ compiler: clang
+
+or both GCC and Clang:
+
+ compiler:
+ - clang
+ - gcc
+
+Testing against two compilers will create (at least) 2 rows in your build matrix. For each row, Travis CI C builder will export the `CC`
+env variable to point to either `gcc` or `clang`.
@@ -0,0 +1,74 @@
+---
+title: Building a C Project
+layout: en
+permalink: cpp/
+---
+
+### What This Guide Covers
+
+This guide covers build environment and configuration topics specific to C++ projects. Please make sure to read our [Getting Started](/docs/user/getting-started/) and [general build configuration](/docs/user/build-configuration/) guides first.
+
+## CI environment for C Projects
+
+Travis VMs are 32 bit and currently provide
+
+ * gcc 4.6
+ * clang 3.1
+ * core GNU build toolchain (autotools, make), cmake, scons
+
+C++ projects on travis-ci.org assume you use Autotools and Make by default.
+
+As a free community service, Travis CI limits build duration to about 20 minutes. Because some large C++ codebases may take very long time to build,
+please take care to not take too much of workers time. If you project takes longer than 10-15, please contact us on the mailing list
+before you add your project to Travis.
+
+## Dependency Management
+
+Because there is no dominant convention in the community about dependency management, Travis CI skips dependency installation
+for C++ projects.
+
+If you need to perform special tasks before your tests can run, override the `install:` key in your `.travis.yml`:
+
+ install: make get-deps
+
+See [general build configuration guide](/docs/user/build-configuration/) to learn more.
+
+
+
+## Default Test Script
+
+Because C projects on travis-ci.org assume Autotools and Make by default, naturally, the default command Travis CI will use to
+run your project test suite is
+
+ ./configure && make && make test
+
+Projects that find this sufficient can use a very minimalistic .travis.yml file:
+
+ language: cpp
+
+This can be overriden as described in the [general build configuration](/docs/user/build-configuration/) guide. For example, to build
+by running Scons without arguments, override the `script:` key in `.travis.yml` like this:
+
+ script: scons
+
+
+## Choosing compilers to test against
+
+It is possible to test projects against either GCC or Clang, or both. To do so, specify the compiler to use using the `compiler:` key
+in `.travis.yml`. For example, to build with Clang:
+
+ compiler: clang
+
+or both GCC and Clang:
+
+ compiler:
+ - clang
+ - gcc
+
+Testing against two compilers will create (at least) 2 rows in your build matrix. For each row, Travis CI C builder will export the `CXX`
+env variable to point to either `g++` or `clang++` and `CC` to either `gcc` or `clang`.
+
+
+## Examples
+
+ * [Rubinius](https://github.com/rubinius/rubinius/blob/master/.travis.yml)
@@ -0,0 +1,74 @@
+---
+title: Building a Go Project
+layout: en
+permalink: go/
+---
+
+### What This Guide Covers
+
+This guide covers build environment and configuration topics specific to Go projects. Please make sure to read our [Getting Started](/docs/user/getting-started/) and [general build configuration](/docs/user/build-configuration/) guides first.
+
+## CI environment for Go Projects
+
+Travis VMs are 32 bit and currently provide
+
+ * go 1.0
+ * core GNU build toolchain (autotools, make), cmake, scons
+
+Go projects on travis-ci.org assume you use Make or straight Go build tool by default.
+
+As a free community service, Travis CI limits build duration to about 20 minutes.
+
+
+## Dependency Management
+
+Because there is no dominant [convention in the community about dependency management](https://groups.google.com/forum/?fromgroups#!topic/golang-nuts/t01qsI40ms4), Travis CI uses
+
+ go get -d -v && go build -v
+
+to build Go project's dependencies by default.
+
+If you need to perform special tasks before your tests can run, override the `install:` key in your `.travis.yml`:
+
+ install: make get-deps
+
+See [general build configuration guide](/docs/user/build-configuration/) to learn more.
+
+
+
+## Default Test Script
+
+Go projects on travis-ci.org assume that either Make or Go build tool are used by default. In case there is a Makefile in the repository root,
+the default command Travis CI will use to run your project test suite is
+
+ make
+
+In case there is no Makefile, it will be
+
+ go test -v
+
+instead.
+
+Projects that find this sufficient can use a very minimalistic .travis.yml file:
+
+ language: go
+
+This can be overriden as described in the [general build configuration](/docs/user/build-configuration/) guide. For example, to omit the `-v` flag,
+override the `script:` key in `.travis.yml` like this:
+
+ script: go test
+
+To build by running Scons without arguments, use this:
+
+ script: scons
+
+
+## Provided Go versions
+
+Travis CI currently only provides a single Go version, 1.0.
+
+
+## Examples
+
+ * [peterbourgon/diskv](https://github.com/peterbourgon/diskv/blob/master/.travis.yml)
+ * [Go AMQP client](https://github.com/streadway/amqp/blob/master/.travis.yml)
View
@@ -5,8 +5,11 @@ layout: en
Travis CI is a hosted continuous integration service for the open source community. It is integrated with GitHub and offers first class support for:
+* [C](/docs/user/languages/c)
+* [C++](/docs/user/languages/cpp)
* [Clojure](/docs/user/languages/clojure)
* [Erlang](/docs/user/languages/erlang)
+* [Go](/docs/user/languages/go)
* [Groovy](/docs/user/languages/groovy)
* [Haskell](/docs/user/languages/haskell)
* [Java](/docs/user/languages/java)

0 comments on commit 453864a

Please sign in to comment.