-## Beta opt-in +## The opt-in option You can opt in using the repository setting "Build config validation" in the Travis CI UI, or by specifying the `version` in your `.travis.yml` file: @@ -20,7 +20,7 @@ version: ~> 1.0 ``` {: data-file=".travis.yml"} -## Build config validation +## Build Config Validation When active the [build config validation](https://github.com/travis-ci/travis-yml) feature will validate and normalize any incoming build config sources (e.g. @@ -52,7 +52,7 @@ The messages have 4 severity levels: * `warn` - The build config contains mistakes that our system can repair. It is safe to ignore these messages. * `info` - The build config parser has made changes to the config that you might want to be informed of. It is safe to ignore these messages. -## Validation message types +## Types of Validation messages This table lists build config validation message types, and explains how to respond to these messages. From 1609fc069f49eb5206a1a3b1f19c5ea7cd0f838c Mon Sep 17 00:00:00 2001 From: nrios14 <44674816+nrios14@users.noreply.github.com> Date: Fri, 8 Nov 2024 16:51:25 -0400 Subject: [PATCH 112/178] Update cron-jobs.md --- user/cron-jobs.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/user/cron-jobs.md b/user/cron-jobs.md index 5715d952f57..e26e725b517 100644 --- a/user/cron-jobs.md +++ b/user/cron-jobs.md @@ -15,7 +15,7 @@ Configure cron jobs from the "Cron Jobs" settings tab on your Travis CI page. {{ site.data.snippets.ghlimit }} -## Adding Cron Jobs +## Add Cron Jobs Select the branch to run the build on, how often to run the build, and whether to run the build if there was a build in the last 24 hours, then click "Add": @@ -25,17 +25,17 @@ Confirm that the cron job is displayed in your settings tab: ![cron job created](/images/cron-created.png "cron job created") -## Skipping Cron Jobs +## Skip Cron Jobs Please note that cron jobs will run regardless and cannot be skipped even with [ci skip] in the latest commit message. -## Deleting Cron Jobs +## Delete Cron Jobs -Click the small trash icon on the right hand side of the page: +Click the small trash icon on the right-hand side of the page: ![deleting a cron job](/images/cron-deleting.png "deleting a cron job") -## Detecting Builds Triggered by Cron +## Detect Builds Triggered by Cron To check whether a build was triggered by cron, examine the `TRAVIS_EVENT_TYPE` environment variable to see if it has the value `cron`. From ac96fbb0f827137d3bc5d1beb8338a1294bac489 Mon Sep 17 00:00:00 2001 From: nrios14 <44674816+nrios14@users.noreply.github.com> Date: Fri, 8 Nov 2024 16:53:06 -0400 Subject: [PATCH 113/178] Update docker.md --- user/docker.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/user/docker.md b/user/docker.md index dd05e731e99..0671e6fa270 100644 --- a/user/docker.md +++ b/user/docker.md @@ -1,5 +1,5 @@ --- -title: Using Docker in Builds +title: Use Docker in Builds layout: en --- @@ -24,9 +24,9 @@ examples. > We do not currently support use of Docker on macOS. -> For information on how to use Docker on Travis CI Enterprise check out [Enabling Docker Builds](/user/enterprise/build-images/#enabling-docker-builds). +> For information on how to use Docker on Travis CI Enterprise, check out [Enabling Docker Builds](/user/enterprise/build-images/#enabling-docker-builds). -## Using a Docker Image from a Repository in a Build +## Use a Docker Image from a Repository This [example repository](https://github.com/travis-ci/docker-sinatra) runs two Docker containers built from the same image: @@ -84,7 +84,7 @@ Finished in 0.022952763 seconds. 43.57 tests/s, 43.57 assertions/s ``` -## Building a Docker Image from a Dockerfile +## Build a Docker Image from a Dockerfile Instead of downloading the Docker image from [carlad/sinatra](https://registry.hub.docker.com/u/carlad/sinatra/) you can @@ -117,7 +117,7 @@ script: ``` {: data-file=".travis.yml"} -## Pushing a Docker Image to a Registry +## Push a Docker Image to a Registry To push an image to a Docker registry, one must first authenticate via `docker login`. The email, username, and password used for login should be stored in @@ -139,7 +139,7 @@ Within your `.travis.yml` prior to attempting a `docker push` or perhaps before echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin ``` -### Branch Based Registry Pushes +### Branch-Based Registry Pushes To push a particular branch of your repository to a remote registry, use the custom deploy section of your `.travis.yml`: @@ -172,7 +172,7 @@ When pushing to a private registry, be sure to specify the hostname in the echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin registry.example.com ``` -## Using Docker Compose +## Use the Docker Compose The [Docker Compose](https://docs.docker.com/compose/) tool is also [installed in the Docker enabled environment](/user/reference/trusty/#docker). @@ -191,7 +191,7 @@ before_install: ``` {: data-file=".travis.yml"} -## Installing a newer Docker version +## Install a newer Docker version You can upgrade to the latest version and use any new Docker features by manually updating it in the `before_install` step of your `.travis.yml`: From f5b07abf4fdd43eaa66bcad55154868ee69c9096 Mon Sep 17 00:00:00 2001 From: nrios14 <44674816+nrios14@users.noreply.github.com> Date: Fri, 8 Nov 2024 17:01:02 -0400 Subject: [PATCH 114/178] Update pull-requests.md --- user/pull-requests.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/user/pull-requests.md b/user/pull-requests.md index a58045f518e..ef7694389d6 100644 --- a/user/pull-requests.md +++ b/user/pull-requests.md @@ -1,5 +1,5 @@ --- -title: Building Pull Requests +title: Build Pull Requests layout: en --- @@ -36,7 +36,7 @@ Travis CI makes encrypted variables and data available only to pull requests com Pull requests sent from forked repositories do not have access to encrypted variables or data even if these are defined in the fork source project unless certain repository settings in Travis CI aren't set. -### Repository settings - forks +### Fork Repository settings {{ site.data.snippets.git_repository_settings_forks_general }} @@ -58,7 +58,7 @@ script: ``` {: data-file=".travis.yml"} -## My Pull Request isn't being built +## Pull Request does not build If a pull request isn't built or doesn't show up in Travis CI's user interface, that usually means that it can't be merged. We rely on the merge commit that GitHub transparently creates between the changes in the source branch and the upstream branch the pull request is sent against. @@ -78,13 +78,13 @@ The command "eval git fetch origin +refs/pull/994/merge: " failed Restoring the branch of a merged pull request will not trigger a build, nor will pushing a new commit to a branch that has already been merged. -## 'Double builds' on pull requests +## Double builds on pull requests If you see two build status icons on your GitHub pull request, it means there is one build for the branch, and one build for the pull request itself (actually the build for the merge of the head branch with the base branch specified in the pull request). [Build pushed branches](/user/web-ui/#build-pushed-branches) and [Build pushed pull requests](/user/web-ui/#build-pushed-pull-requests) control this behaviour. -## See Also +## Further Reading * [Building only the latest commit](/user/customizing-the-build/#building-only-the-latest-commit) * [Building specific branches](/user/customizing-the-build/#building-specific-branches) From 2c34ab85da62961514c32afeb3025a92f9da6bad Mon Sep 17 00:00:00 2001 From: nrios14 <44674816+nrios14@users.noreply.github.com> Date: Fri, 8 Nov 2024 17:21:43 -0400 Subject: [PATCH 115/178] Update common-build-problems.md --- user/common-build-problems.md | 74 ++++++++++++++++++----------------- 1 file changed, 38 insertions(+), 36 deletions(-) diff --git a/user/common-build-problems.md b/user/common-build-problems.md index 59b8b6e6c26..9c890bc75ab 100644 --- a/user/common-build-problems.md +++ b/user/common-build-problems.md @@ -9,7 +9,7 @@ redirect_from: -## My tests broke but were working yesterday +## Broken Tests that previously worked A very common cause when a test is suddenly breaking without any major code changes involved is a change in upstream dependencies. @@ -33,9 +33,9 @@ version. * Additionally, we update our build environment regularly, which brings in newer versions of languages and the running services. -## My build script is killed without any error +## The build script is killed without any errors -Sometimes, you'll see a build script causing an error and the message in +Sometimes, you'll see a build script causing an error, and the message in the log will be something like `Killed`. This is usually caused by the script or one of the programs it runs exhausting @@ -47,7 +47,7 @@ Depending on the tool in use, this can be caused by a few things: - Ruby test suite consuming too much memory - Tests running in parallel using too many processes or threads (e.g. using the `parallel_test` gem) -- g++ needing too much memory to compile files, for instance with a lot of +- g++ needing too much memory to compile files, for instance, with a lot of templates included. ### Parallel processes @@ -63,7 +63,7 @@ likely to show similar causes. It can be caused by memory leaks or by custom settings for the garbage collector, for instance to delay a sweep for as long as possible. Dialing these numbers down should help. -## My build fails unexpectedly +## Unexpected Build Failures One possible cause for builds failing unexpectedly can be calling `set -e` (also known as `set errexit`), either *directly in* your `.travis.yml`, or `source`ing a script which does. This causes any error causing a non-zero return status in your script to stop and fail the build immediately. @@ -74,7 +74,7 @@ See also [Complex Build Steps](/user/customizing-the-build/#implementing-complex Another reason could be that the repo setting **Clone or import** is set to `OFF.` In this case, no information from the repository is shared and it is possible some builds using private dependencies between repos can break. If you want to avoid the situation when all of your repositories stop sharing dependencies, please go to the repository settings and explicitly set **Clone or Import** to `ON.` In this case, your builds keep running as usual. -## Segmentation faults from the language interpreter (Ruby, Python, PHP, Node.js, etc.) +## Segmentation faults from the language interpreter If your build is failing due to unexpected segmentation faults in the language interpreter, this may be caused by corrupt or invalid caches of your extension codes (gems, modules, etc). This can happen with any interpreted language, such as Ruby, Python, PHP, Node.js, etc. @@ -82,7 +82,7 @@ Fix the problem by * clearing the cache or * removing the cache key from your .travis.yml (you can add it back in a subsequent commit). -## **Ruby**: RSpec returns 0 even though the build failed +## **Ruby**: RSpec returns 0 when the build failed In some scenarios, when running `rake rspec` or even rspec directly, the command returns 0 even though the build failed. This is commonly due to some RubyGem @@ -110,7 +110,7 @@ If your project is using the [Code Climate integration](/user/code-climate/) or Simplecov, this issue can also come up with the 0.8 branch of Simplecov. The fix is to downgrade to the last 0.7 release until the issue is fixed. -## **Capybara**: I'm getting errors about elements not being found +## **Capybara**: Not found elements Errors In scenarios that involve JavaScript, you can occasionally see errors that indicate that an element is missing, a button, a link, or some other resource @@ -138,14 +138,14 @@ If you're still seeing timeouts after increasing it initially, set it to something much higher for one test run. Should the error still persist, there's possibly a deeper issue on the page, for instance compiling the assets. -## **Ruby**: Installing the debugger_ruby-core-source library fails +## **Ruby**: debugger_ruby-core-source library installation fails -This Ruby library unfortunately has a history of breaking with even patchlevel +This Ruby library, unfortunately, has a history of breaking with even patch-level releases of Ruby. It's commonly a dependency of libraries like linecache or other Ruby debugging libraries. We recommend moving these libraries to a separate group in your Gemfile and then -to install RubyGems on Travis CI without this group. As these libraries are only +installing RubyGems on Travis CI without this group. As these libraries are only useful for local development, you'll even gain a speedup during the installation process of your build. @@ -161,9 +161,9 @@ end bundler_args: --without development debug ``` -## **Ruby**: Tests frozen and cancelled after 10 minute log silence +## **Ruby**: Tests frozen and canceled -In some cases, the use of the `timecop` gem can result in seemingly sporadic +In some cases, tests get frozen and then canceled after 10 minutes of log silence. The use of the `timecop` gem can result in seemingly sporadic "freezing" due to issues with ordering calls of `Timecop.return`, `Timecop.freeze`, and `Timecop.travel`. For example, if using RSpec, be sure to have a `Timecop.return` configured to run *after* all examples: @@ -179,7 +179,7 @@ end ## **Mac**: macOS Mavericks (10.9) Code Signing Errors -With Mavericks quite a lot has changed in terms of code signing and the keychain application. +With Mavericks, quite a lot has changed in terms of code signing and the keychain application. Signs of issues can be error messages stating that an identity can't be found and that "User interaction is not allowed." @@ -311,7 +311,7 @@ You can also have more details in [this GitHub issue](https://github.com/travis- ## **Mac**: Errors running CocoaPods -CocoaPods usage can fail for a few reasons currently. +CocoaPods usage can currently fail for a few reasons. ### Newer version of CocoaPods required @@ -324,7 +324,7 @@ before_install: ``` {: data-file=".travis.yml"} -### CocoaPods can't be found +### CocoaPods cannot be found CocoaPods isn't currently installed on all available Rubies, which unfortunately means it will fail when using the default Ruby, which is 2.0.0. @@ -350,14 +350,14 @@ rvm: 1.9.3 ``` {: data-file=".travis.yml"} -## **System**: Required language pack isn't installed +## **System**: Required language pack not installed The Travis CI build environments currently have only the en_US language pack -installed. If you get an error similar to : "Error: unsupported locale +installed. If you get an error similar to: "Error: unsupported locale setting", then you may need to install another language pack during your test run. -This can be done with the follow addition to your `.travis.yml`: +This can be done with the following addition to your `.travis.yml`: ```yaml before_install: @@ -380,7 +380,7 @@ addons: ``` {: data-file=".travis.yml"} -## **Linux**: apt fails to install package with 404 error +## **Linux**: apt fails to install the package with 404 error This is often caused by old package database and can be fixed by adding the following to `.travis.yml`: @@ -390,12 +390,12 @@ before_install: ``` {: data-file=".travis.yml"} -## **Windows**: common build problems and known issues +## **Windows**: Common build problems and Known issues -For a list of common build problems on Windows, known issues and workarounds, please visit the [Travis CI community forum].(https://travis-ci.community/t/current-known-issues-please-read-this-before-posting-a-new-topic/264). +For a list of common build problems on Windows, known issues, and workarounds, please visit the [Travis CI community forum].(https://travis-ci.community/t/current-known-issues-please-read-this-before-posting-a-new-topic/264). The [Travis CI community forum](https://travis-ci.community) provides better visibility on the issues customers are running into and how to solve them. -## Travis CI does not preserve the state between builds +## Travis CI not preserving the state between builds Travis CI uses virtual machine snapshotting to make sure no state is preserved between builds. If you modify the CI environment by writing something to a data store, creating @@ -407,7 +407,7 @@ Travis CI runs all commands over SSH in isolated virtual machines. Commands that modify SSH session states are "sticky" and persist throughout the build. For example, if you `cd` into a directory, all subsequent commands are run from that directory. -## Git submodules are not updated correctly +## Git submodules not updating correctly Travis CI automatically initializes and updates submodules when there's a `.gitmodules` file in the root of the repository. @@ -447,7 +447,7 @@ https://github.com/someuser/somelibrary.git Otherwise, Travis CI builders won't be able to clone your project because they don't have your private SSH key. -## My builds are timing out +## Builds time out Builds can unfortunately time out, either during installation of dependencies or during the build itself, for instance because of a command that's taking a longer amount of time to run while not producing any output. @@ -490,7 +490,7 @@ does work in the [other steps](/user/job-lifecycle/). ### Build times out because no output was received -When a long running command or compile step regularly takes longer than 10 minutes without producing any output, you can adjust your build configuration to take that into consideration. +When a long-running command or compile step regularly takes longer than 10 minutes without producing any output, you can adjust your build configuration to take that into consideration. The shell environment in our build system provides a function that helps to work around that, at least for longer than 10 minutes. @@ -515,13 +515,13 @@ Continuing the example above to extend the waiting time to 30 minutes: > We recommend to carefully use `travis_wait`, as overusing it can extend your build time when there could be a deeper underlying issue. When in doubt, [email us](mailto:support@travis-ci.com) first to see if something could be improved about this particular command first. -#### Limitations of `travis_wait` +#### Limitations of travis_wait `travis_wait` works by starting a process, sending it to the background, and watching the background process. If the command you pass to `travis_wait` does not persist, then `travis_wait` does not extend the timeout. -## Running builds in debug mode +## Run builds in debug mode In private repositories and those public repositories for which the feature is enabled, it is possible to run builds and jobs in debug mode. @@ -529,7 +529,7 @@ Using this feature, you can interact with the live VM where your builds run. For more information, please consult [the debug VM documentation](/user/running-build-in-debug-mode/). -## Log length exceeded +## Exceed Log length The log for each build is limited to approximately 4 MB. When it reaches that length, the build is terminated and you'll see the following message at the end of your build log: @@ -539,7 +539,7 @@ The log length has exceeded the limit of 4 Megabytes (this usually means that te The build has been terminated. ``` -## FTP/SMTP/other protocol do not work +## FTP and SMTP Protocols do not work Some protocols such as FTP and SMTP are not directly supported due to the infrastructure requirements in place for security and fair usage. Using @@ -559,7 +559,7 @@ before_install: {: data-file=".travis.yml"} -## I pushed a commit and can't find its corresponding build +## Pushing a commit and not finding the build The build request events that Travis CI receives are listed in your repository's Requests page. You can find it under the **More Options** dropdown menu, choosing **Requests**. @@ -578,22 +578,22 @@ If a build hasn't been triggered for your commit, these are the possible build r > Please note that Travis CI does not receive a Webhook event when more than three commits are tagged. So if you do `git push --tags`, and more than three tags that are present locally, are not known on GitHub, Travis will not be told about any of those events, and the tagged commits will not be built. -## I'm running out of disk space in my build +## Build running out of disk space Approximate available disk space is listed in the [build environment overview](/user/reference/overview/#virtualisation-environment-vs-operating-system). The best way to find out what is available on your specific image is to run `df -h` as part of your build script. If you need a bit more space in your Ubuntu builds, we recommend using `language: minimal`, which will route you to a base image with less tools and languages preinstalled. This image has approximately ~24GB of free space. -## Uploading artifacts to sonatype +## Upload artifacts to sonatype When publishing via the `nexus-staging-maven-plugin` to Sonatype OSS Repository, IP addresses used by TravisCI change due to our [NAT layer](https://travis-ci.com/blog/2018-07-23-the-tale-of-ftp-at-travis-ci). To get around this, please use a `stagingProfileId` as [explained in this document](https://travis-ci.community/t/sonatype-deployment-problems/1353/2?u=mzk). -## Travis CLI does not recognize my valid Github token +## Travis CLI does not recognize my valid GitHub token When using the [Travis CLI tool](https://github.com/travis-ci/travis.rb#readme) to interact with the Travis CI platform, if you receive an `insufficient_oauth_permissions` error or similar, please ensure the Github Token supplied via `--github-token` has **repo** scope as [explained in this document](https://developer.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). -## Duplicate/Unknown job shows up in my build +## Unknown or Duplicate jobs in a build When specifying stages, users often unknowingly add an implicit job to the list of jobs in a stage using YAML that is otherwise syntactically correct. @@ -631,7 +631,9 @@ This creates only one job, _Peanut Butter and Bread_ under the stage named _Bre When adding custom setup instructions to a NodeJS build, add them in the `before_script` phase and not before _dependencies are installed_. The `before_script` phase is the safest place to add custom setup scripts. Symptoms of this problem include previously succeeding builds suddenly failing due to the addition of a new dependency. -## **Node**: NPM/YARN throw ***Error: connect ENETUNREACH*** or build hangs in the install phase i.e. `npm install` or `yarn install` for NodeJs versions 16+ on LXD images (ppc64le, arm64 and s390x) +## **Node**: NPM or YARN connect ENETUNREACH Error + +If using NPM or YARN, the ***Error: connect ENETUNREACH*** shows or the build hangs in the install phase, i.e., `npm install` or `yarn install` for NodeJs versions 16+ on LXD images (ppc64le, arm64, and s390x). This seems to be a known bug and the details can be reviewed at https://github.com/npm/cli/issues/4163. Add the following to resolve the issue: From 7de9ad5f9145279939f27b286002bbefb55ad865 Mon Sep 17 00:00:00 2001 From: nrios14 <44674816+nrios14@users.noreply.github.com> Date: Fri, 8 Nov 2024 17:30:31 -0400 Subject: [PATCH 116/178] Update gui-and-headless-browsers.md --- user/gui-and-headless-browsers.md | 34 +++++++++++++++---------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/user/gui-and-headless-browsers.md b/user/gui-and-headless-browsers.md index 5ed1545daef..c908d5e6eaa 100644 --- a/user/gui-and-headless-browsers.md +++ b/user/gui-and-headless-browsers.md @@ -6,13 +6,11 @@ layout: en -## What This Guide Covers - This guide covers headless GUI & browser testing using tools provided by the Travis [CI environment](/user/reference/precise/). Most of the content is technology-neutral and does not cover all the details of specific testing tools (like Poltergeist or Capybara). We recommend you start with the [Onboarding](/user/onboarding/) and [Build Configuration](/user/customizing-the-build/) guides before reading this one. -## Using Sauce Labs +## Work with Sauce Labs -[Sauce Labs](https://saucelabs.com) provides a Selenium cloud with access to more than 170 different device/OS/browser combinations. If you have browser tests that use Selenium, using Sauce Labs to run the tests is very easy. First, you need to sign up for their service (it's free for open source projects). +[Sauce Labs](https://saucelabs.com) provides a Selenium cloud with access to more than 170 different device/OS/browser combinations. If you have browser tests that use Selenium, using Sauce Labs to run the tests is very easy. First, you need to sign up for their service (it's free for open-source projects). Once you've signed up, set up a tunnel using Sauce Connect so Sauce Labs can connect to your web server. Our [Sauce Connect addon](/user/sauce-connect/) makes this easy, just add this to your .travis.yml: @@ -51,14 +49,14 @@ capabilities["tags"] = [os.environ["TRAVIS_PYTHON_VERSION"], "CI"] For travis-web, our very own website, we use Sauce Labs to run browser tests on multiple browsers. We use environment variables in our [.travis.yml](https://github.com/travis-ci/travis-web/blob/15dc5ff92184db7044f0ce3aa451e57aea58ee19/.travis.yml#L14-15) to split up the build into multiple jobs, and then pass the desired browser into Sauce Labs using [desired capabilities](https://github.com/travis-ci/travis-web/blob/15dc5ff92184db7044f0ce3aa451e57aea58ee19/script/saucelabs.rb#L9-13). On the Travis CI side, it ends up looking like [this](https://travis-ci.org/travis-ci/travis-web/builds/12857641). -## Using xvfb to Run Tests That Require a GUI +## Run GUI Tests with xvfb To run tests requiring a graphical user interface on Travis CI, use `xvfb` (X Virtual Framebuffer) to imitate a display. If you need a browser, you can use Firefox (either with the pre-installed version, or the [addon](/user/firefox)) or Google Chrome (with the [addon](/user/chrome), on Linux Trusty or macOS). -### Using `services:` +### Use services: on your script > This only works on Ubuntu 16.04 (Xenial) and later on releases i.e. with `dist: xenial` or `dist: bionic` @@ -72,7 +70,7 @@ services: ``` {: data-file=".travis.yml"} -### Using the xvfb-run wrapper +### How to use the xvfb-run wrapper `xvfb-run` is a wrapper for invoking `xvfb` so that `xvfb` can be used with less fuss: @@ -89,7 +87,7 @@ script: xvfb-run --server-args="-screen 0 1024x768x24" make test ``` {: data-file=".travis.yml"} -### Using xvfb directly +### Direct use of xvfb > This is recommended on Ubuntu 14.04 (Trusty) i.e. with `dist: trusty`. For `dist: xenial`, use the `services` keyword described [above](/user/gui-and-headless-browsers/#using-services). @@ -121,7 +119,7 @@ before_install: See [xvfb manual page](http://www.xfree86.org/4.0.1/Xvfb.1.html) for more information. -### Starting a Web Server +### Start a Web Server @@ -148,10 +146,10 @@ Note that@@ -117,7 +117,7 @@ See the example below for reference. Perforce and SVN builds are currently **available only for Linux Ubuntu** and standard amd64 CPU architecture build environments, starting from the Bionic Beaver Ubuntu distribution. -## Switching Accounts +## Switch Accounts You can easily switch between your cloud platform provider accounts: @@ -127,7 +127,7 @@ You can easily switch between your cloud platform provider accounts: ![Switch Accounts](/user/images/onboarding-settings.png) -## Selecting a different programming language +## Select a different programming language Use one of these common languages: From b241fd868a1ac3c321c564c9b0359cbfb6416fee Mon Sep 17 00:00:00 2001 From: nrios14 <44674816+nrios14@users.noreply.github.com> Date: Fri, 8 Nov 2024 16:41:25 -0400 Subject: [PATCH 109/178] Update customizing-the-build.md --- user/customizing-the-build.md | 66 +++++++++++++++++------------------ 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/user/customizing-the-build.md b/user/customizing-the-build.md index ce4134576be..0381350e7d4 100644 --- a/user/customizing-the-build.md +++ b/user/customizing-the-build.md @@ -1,5 +1,5 @@ --- -title: Customizing the Build +title: Customize the Build layout: en redirect_from: @@ -12,7 +12,7 @@ redirect_from: Builds on Travis CI are configured mostly through the build configuration stored in the file `.travis.yml` in your repository. This allows your -configuration to be version controlled and flexible. +configuration to be version-controlled and flexible. For advanced use cases the main build configuration file `.travis.yml` can import other, shared config sources using the [Build Config Imports](/user/build-config-imports/) @@ -50,7 +50,7 @@ The [Build Lifecycle documentation](/user/job-lifecycle/) now has its own page. {: #Build-Lifecycle} -## Limiting Concurrent Jobs +## Limit Concurrent Jobs {{ site.data.snippets.concurrent_jobs }} @@ -65,9 +65,9 @@ Or using the command line client: $ travis settings maximum_number_of_builds --set 1 ``` -## Building Only the Latest Commit +## Build the Latest Commit only -If you are only interested in building the most recent commit on each branch you can use this new feature to automatically cancel older builds in the queue that are *not yet running*. Existing builds will be allowed to finish. +If you are only interested in building the most recent commit on each branch, you can use this new feature to automatically cancel older builds in the queue that are *not yet running*. Existing builds will be allowed to finish. The *Auto Cancellation Setting* is in the *Settings* tab of each repository, and you can enable it separately to: * *Auto cancel branch builds* - cancels queued builds in your branch and appears in the *Build History* tab of your repository. @@ -128,7 +128,7 @@ git: ## Git LFS -### Authentication with GitHub +### GitHub Authentication We recommend using a read-only GitHub OAuth token to authenticate when using [Git LFS](https://git-lfs.github.com/): @@ -143,7 +143,7 @@ This authentication is required when connecting to private repositories, and pre Deploy keys are not currently supported by LFS, so you should use a GitHub OAuth token to authenticate as in the example above. -### Authentication with Bitbucket +### Bitbucket Authentication We recommend using a read-only Bitbucket OAuth token to authenticate when using [Git LFS](https://git-lfs.github.com/): @@ -158,7 +158,7 @@ This authentication is required when connecting to private repositories, and pre Deploy keys are not currently supported by LFS, so you should use a Bitbucket OAuth token to authenticate as in the example above. -### Authentication with GitLab +### GitLab Authentication We recommend using a read-only GitLab OAuth token to authenticate when using [Git LFS](https://git-lfs.github.com/): @@ -173,7 +173,7 @@ This authentication is required when connecting to private repositories, and pre Deploy keys are not currently supported by LFS, so you should use a GitLab OAuth token to authenticate as in the example above. -### Authentication with Assembla +### Assembla Authentication We recommend using a read-only Assembla OAuth token to authenticate when using [Git LFS](https://git-lfs.github.com/): @@ -234,12 +234,12 @@ git: where `skip-worktree-map-file` is a path to the existing file in the current repository with data you'd like to put into `$GIT_DIR/info/sparse-checkout` file of [format described in Git documentation](https://git-scm.com/docs/git-read-tree#_sparse_checkout). -## Git End of Line Conversion Control +## Git End-of-Line Conversion Control Travis CI clones repositories with platform-dependent [core.autocrlf](https://git-scm.com/docs/git-config#Documentation/git-config.txt-coreautocrlf) behavior. This behavior can be modified via the autocrlf attribute in `.travis.yml`. Valid values are `true`, `false` and `input`. -To clone your repository without end of line conversion, add: +To clone your repository without end-of-line conversion, add: ```yaml git: @@ -250,7 +250,7 @@ git: This is equivalent to [`git config --global core.autocrlf input`](https://git-scm.com/docs/git-config#Documentation/git-config.txt-coreautocrlf) prior to cloning the repository. -## Disabling git clone +## Disable git clone In some workflows, like [build stages](https://docs.travis-ci.com/user/build-stages/#what-are-build-stages), it might be beneficial to skip the automatic `git clone` step. @@ -263,7 +263,7 @@ git: > Note that if you use this option, the `TRAVIS_COMMIT_MESSAGE` environment variable will not be defined. -## Setting symlinks option +## Set the symlinks option In some cases when a repository is used for both Linux and Windows, it may be desirable to set [core.symlinks](https://git-scm.com/docs/git-config#Documentation/git-config.txt-coresymlinks) option. @@ -275,13 +275,13 @@ git: symlinks: true ``` -## Building Specific Branches +## Build Specific Branches Travis CI uses the `.travis.yml` file from the branch containing the Git commit that triggers the build. Include branches using a safelist, or exclude them using a blocklist. > Note that you also need to take into account automatic [Pull Request Builds](/user/pull-requests/#double-builds-on-pull-requests) when deciding to safelist or blocklist certain branches. -### Safelisting or Blocklisting Branches +### Safelist or Blocklist Branches Specify which branches to build using a safelist, or blocklist branches that you do not want to be built: @@ -316,7 +316,7 @@ branches: > Note that for historical reasons `.travis.yml` needs to be present *on all active branches* of your project. -### Using Regular Expressions +### Regular Expressions You can use regular expressions to safelist or blocklist branches: @@ -333,7 +333,7 @@ Any name surrounded with `/` in the list of branches is treated as a regular exp Options that are specified after the last `/` (e.g., `i` for case insensitive matching) are not supported but can be given inline instead. For example, `/^(?i:deploy)-.*$/` matches `Deploy-2014-06-01` and other branches and tags that start with `deploy-` in any combination of cases. -## Skipping a Build +## Skip a Build If you don't want to run a build for a particular commit for any reason, you may instruct Travis CI to skip building this commit via a command in the commit message. @@ -354,7 +354,7 @@ For example, Note that in case multiple commits are pushed together, the skip command is effective only if present in the commit message of the HEAD commit. -## Build matrix +## Build Matrix You can also define exclusions to the build matrix: @@ -372,7 +372,7 @@ jobs: > All build matrixes are currently limited to a maximum of **200 jobs** for both private and public repositories. If you are on an open-source plan, please remember that Travis CI provides this service free of charge to the community. So please only specify the matrix you *actually need*. -### Naming Jobs within Matrices +### Name Jobs within Matrices You can define names for specific jobs within a matrix. We recommend unique job names, but do not enforce it (though this may change in the future). Jobs defined in the `matrix.include` @@ -397,7 +397,7 @@ script: ./test.py $TEST_SUITE Jobs that are generated by matrix expansion cannot be given name attributes. -### Excluding Jobs +### Exclude Jobs If the jobs you want to exclude from the build matrix share the same matrix parameters, you can specify only those and omit the varying parts. @@ -450,7 +450,7 @@ jobs: ``` {: data-file=".travis.yml"} -#### Excluding Jobs with `env` Value +#### Exclude Jobs with the env Value When excluding jobs with `env` values, the value must match _exactly_. @@ -500,7 +500,7 @@ jobs: ``` {: data-file=".travis.yml"} -### Explicitly Including Jobs +### Explicitly Included Jobs It is also possible to include entries into the matrix with `matrix.include`: @@ -541,7 +541,7 @@ keys defined. In this example with a 3-job Python build matrix, each job in `matrix.include` has the `python` value set to `'3.8'`. -You can explicitly set the python version for a specific entry: +You can explicitly set the Python version for a specific entry: ```yaml language: python @@ -559,13 +559,13 @@ script: env $EXTRA_TESTS ./test.py $TEST_SUITE ``` {: data-file=".travis.yml"} -### Jobs That Are Allowed to Fail +### Intentionally allow Jobs to Fail You can define jobs that are allowed to fail in the build matrix. Allowed failures are jobs in your build matrix that are allowed to fail without causing the entire build to fail. This lets you add in experimental and -preparatory builds, for example to test against runtime versions or +preparatory builds, for example, to test against runtime versions or configurations that you are not ready to officially support. Define allowed failures in the build matrix as key/value pairs: @@ -577,7 +577,7 @@ jobs: ``` {: data-file=".travis.yml"} -#### Conditionally Allowing Jobs to Fail +#### Conditionally allow Jobs to Fail Allowed failures can include a [condition](/user/conditional-builds-stages-jobs/#conditionally-allowing-jobs-to-fail) using the key `if`. @@ -592,14 +592,14 @@ jobs: ``` {: data-file=".travis.yml"} -#### Matching Jobs with `allow_failures` +#### Matching Jobs with the allow_failures attribute When matching jobs against the definitions given in `allow_failures`, _all_ attributes specified on an entry in `allow_failures` must be met exactly, and all the keys in `allow_failures` element must exist in the top level of the build matrix (i.e., not in `matrix.include`). -##### `allow_failures` Examples +#### allow_failures Examples Consider @@ -644,7 +644,7 @@ jobs: Without the top-level `env`, no job will be allowed to fail. -### Fast Finishing +### Use a Fast Finish If some jobs in the build matrix are allowed to fail, the build won't be marked as finished until they have completed. @@ -658,7 +658,7 @@ jobs: Now, the build result will be determined as soon as all the required jobs finish, based on these results, while the rest of the `allow_failures` jobs continue to run. -## Installing a Second Programming Language +## Install a Second Programming Language If you need to install a second programming language in your current build environment, you can do so in the `before_install` stage of the build. @@ -682,7 +682,7 @@ before_install: It's also possible to use other language installation methods such as `apt-get`, `pyenv` for Python, `nvm` for Node.js, etc. -## Implementing Complex Build Steps +## Implement Complex Build Steps If you have a complex build environment that is hard to configure in the `.travis.yml`, consider moving the steps into a separate shell script. The script can be a part of your repository and can easily be called from the `.travis.yml`. @@ -703,13 +703,13 @@ addons: ``` {: data-file=".travis.yml"} -## What Repository Providers or Version Control Systems Can I Use? +## Repository Providers and Version Control Systems Build and test your open source and private repositories hosted on GitHub on [travis-ci.com](https://travis-ci.com/). Travis CI can also integrates with Atlassian [Bitbucket](https://bitbucket.org/), [GitLab](https://about.gitlab.com/) and Assembla (https://www.assembla.com/). Travis CI currently does not support git repositories hosted on other version control systems such as Mercurial. -## What YAML Version Can I Use in `.travis.yml` +## YAML Versions for a .travis.yml file Travis CI uses the Ruby libYAML library, which means that your `.travis.yml` must be valid [YAML 1.1](http://yaml.org/spec/1.1/). From 9fcd325fca66345a5702e9451a070ad1df3a2c86 Mon Sep 17 00:00:00 2001 From: nrios14 <44674816+nrios14@users.noreply.github.com> Date: Fri, 8 Nov 2024 16:49:17 -0400 Subject: [PATCH 110/178] Update build-config-imports.md --- user/build-config-imports.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/user/build-config-imports.md b/user/build-config-imports.md index f2844205959..cd0d4f91a91 100644 --- a/user/build-config-imports.md +++ b/user/build-config-imports.md @@ -1,5 +1,5 @@ --- -title: Importing Shared Build Configuration +title: Import Shared Build Configuration layout: en --- @@ -7,7 +7,7 @@ layout: en The main source of configuration for your build is the `.travis.yml` file stored in your repository. You can import shared configuration snippets into your `.travis.yml` or [API build request payload](https://docs.travis-ci.com/user/triggering-builds/), -to update your build configuration in multiple repositories making only one +to update your build configuration in multiple repositories, making only one change. Imported configs can themselves include other configs, making this feature very @@ -18,16 +18,16 @@ configuration snippets in total. > BETA The feature Build Config Imports is currently in beta. Please leave feedback on the [Community forum](https://travis-ci.community/c/early-releases). {: .beta } -## Opt-in +## The opt-in option -In order for this feature to be active you have to enable the feature +In order for this feature to be active, you have to enable the feature [Build Config Validation](/user/build-config-validation/) which will be rolled out to all users in the near future. You can enable Build Config Validation in your repository's settings, or by adding `version: ~> 1.0` to your `.travis.yml` file. -## Example +## Import Shared Build Configuration Example Instead of specifying which versions of Ruby to test against in multiple files across many repositories, you can define them in a shared snippet: @@ -102,7 +102,7 @@ present in the importing and an imported config, or in multiple imported configs You can customize this by specifying the merge mode used for each import. See below for more information on [merge modes](#merge-modes). -## Importing configs from the same repository +## Import configs from the same repository When importing configurations stored in the same repository as your `travis.yml`, you can omit the `
/ ` part: @@ -117,9 +117,9 @@ import: The path is relative to the repository's root. -## Importing specific versions of configs +## Import specific config versions -For configurations imported from a different repository the latest version of +For configurations imported from a different repository, the latest version of the default branch in the repository will be used by default. For configurations imported from the same repository the commit you are @@ -136,7 +136,7 @@ import: ``` {: data-file=".travis.yml"} -## Importing configs from private repositories +## Import private repository configs In order to share configurations **from** a private repository this needs to be allowed on that repository, by enabling the *Allow importing config files from this repository* @@ -147,7 +147,7 @@ setting in `More options > Settings > Config Import`. > from private repositories cannot be imported to configs from public > repositories. -## Sharing encrypted secrets +## Share Encrypted Secrets Encrypted secrets contained in imported config snippets can be shared and decrypted with repositories owned by the same organization or user account. @@ -192,7 +192,7 @@ There are these merge modes: The default merge mode is `deep_merge_append`. -### Deep merge append/prepend +### Deep merge: append and prepend The merge modes `deep_merge_append` and `deep_merge_prepend` recursively merge sections (keys) that hold maps (hashes), and concatenates sequences (arrays) by @@ -269,7 +269,7 @@ When triggering a build through the Travis API or the web UI, the order of ascen No. The parsed YAML trees must be merged. Thus, the `import` keyword is accepted only at the root level. If it suits your scenario, you can specify your job template in, e.g., `job.yml` and import it into your `.travis.yml` with the `mode: deep_merge`, adding in the `.travis,yml` specifics to be overridden in the imported template. -### Is it possible to create and use anchors via the shared configs mechanism? +### Can I create and use anchors via the shared configs mechanism? Unfortunately, it’s not supported. As much as we encourage [using YAML as a build configuration language](/user/build-config-yaml), anchors and aliases, referring to these anchors must be defined and used within a single `.yml` file and will be expanded before any *import* action (merging parse trees) occurs. For the same reason, attempts to assign an anchor within `.travis.yml` to an *imported* key will not work — both `.travis.yml` and `imported.yml` must be parsed before the merge action can occur. From 2e4e2019c4d3ee1fdffc666222073ca3de0714f9 Mon Sep 17 00:00:00 2001 From: nrios14 <44674816+nrios14@users.noreply.github.com> Date: Fri, 8 Nov 2024 16:50:30 -0400 Subject: [PATCH 111/178] Update build-config-validation.md --- user/build-config-validation.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/user/build-config-validation.md b/user/build-config-validation.md index 52d5a4ec05f..52c54da1d32 100644 --- a/user/build-config-validation.md +++ b/user/build-config-validation.md @@ -10,7 +10,7 @@ layout: en
sudo
is not available for builds that are running on the
-## Using the [Chrome addon](/user/chrome) in the headless mode
+## Headless mode with the Chrome addon
Starting with version 57 for Linux Trusty and version 59 on macOS, Google Chrome can be used in "headless"
-mode, which is suitable for driving browser-based tests using Selenium and other tools.
+mode with the [Chrome addon](/user/chrome), which is suitable for driving browser-based tests using Selenium and other tools.
> As of 2017-05-02, this means `stable` or `beta` on Linux builds, and `beta` on macOS builds.
@@ -181,14 +179,14 @@ before_install:
```
{: data-file=".travis.yml"}
-#### Documentation
+### More Documentation
* [Headless Chromium documentation](https://chromium.googlesource.com/chromium/src/+/lkgr/headless/README.md)
* [Getting Started with Headless Chrome](https://developers.google.com/web/updates/2017/04/headless-chrome)
-## Using the [Firefox addon](/user/firefox) in headless mode
+## Headless mode with the Firefox addon
-Starting with version 56, Firefox can be used in "headless" mode, which is
+Starting with version 56, Firefox can be used in "headless" mode with the [Firefox addon](/user/firefox), which is
suitable for driving browser-based tests using Selenium and other tools.
Headless mode can be enabled using the `MOZ_HEADLESS`
[environment variable](/user/environment-variables/):
@@ -215,12 +213,12 @@ options.add_argument('-headless')
firefox = Firefox(firefox_options=options)
```
-#### Documentation
+### More Documentation
* [Using headless mode](https://developer.mozilla.org/en-US/Firefox/Headless_mode#Using_headless_mode)
* [Automated testing with headless mode](https://developer.mozilla.org/en-US/Firefox/Headless_mode#Automated_testing_with_headless_mode)
-## Using PhantomJS
+## Use PhantomJS
[PhantomJS](http://phantomjs.org/) is a headless WebKit with JavaScript API. It is an optimal solution for fast headless testing, site scraping, pages capture, SVG renderer, network monitoring and many other use cases.
@@ -237,12 +235,14 @@ If you need a web server to serve the tests, see the previous section.
## Examples
+The following are a series of examples.
+
### Real World Projects
- [Ember.js](https://github.com/emberjs/ember-mocha/blob/master/.travis.yml) (starts web server programmatically)
- [Sproutcore](https://github.com/sproutcore/sproutcore/blob/master/.travis.yml) (starts web server with *before_script*)
-### Ruby
+### Ruby Example
#### RSpec, Jasmine, Cucumber
From 9d32506342e524b269e1b135d7e4878085a1a008 Mon Sep 17 00:00:00 2001
From: nrios14 <44674816+nrios14@users.noreply.github.com>
Date: Fri, 8 Nov 2024 17:34:58 -0400
Subject: [PATCH 117/178] Update speeding-up-the-build.md
---
user/speeding-up-the-build.md | 32 ++++++++++++++++----------------
1 file changed, 16 insertions(+), 16 deletions(-)
diff --git a/user/speeding-up-the-build.md b/user/speeding-up-the-build.md
index 6d81b51a480..bf2c2c2a6e1 100644
--- a/user/speeding-up-the-build.md
+++ b/user/speeding-up-the-build.md
@@ -1,15 +1,15 @@
---
-title: Speeding up the build
+title: Speed up the build
layout: en
---
Travis CI implements a few optimizations which help to speed up your build,
-like in memory filesystem for DB's files, but there is a range of things
+like in-memory filesystem for DB's files, but there is a range of things
that can be done to improve build times even more.
-## Parallelizing your Builds across Virtual Machines
+## Parallelize Builds across Virtual Machines
To speed up a test suite, you can break it up into several parts using
Travis CI's [build
@@ -71,7 +71,7 @@ actionmailer, activesupport and a whole bunch of sets run the activerecord
tests against multiple databases. See their [.travis.yml
file](https://github.com/rails/rails/blob/master/.travis.yml) for more examples.
-## Parallelizing your Build on One Virtual Machine
+## Parallelize a Build on a single Virtual Machine
Parallelizing the test suite on one virtual machine depends on the language and test runner:
@@ -81,11 +81,11 @@ Parallelizing the test suite on one virtual machine depends on the language and
To give you an idea of the speedup we are talking about, I've tried to run tests in parallel on `travis-core` and I was able to see a drop from about 26 minutes to about 19 minutes across 4 jobs.
-## Parallelizing RSpec, Cucumber and Minitest on Multiple VMs
+## Parallelize RSpec, Cucumber, and Minitest on Multiple VMs
-If you want to parallel tests for RSpec, Cucumber or Minitest on multiple VMs to get faster feedback from CI, you can try [knapsack](https://github.com/ArturT/knapsack) gem. It will split tests across virtual machines and make sure that tests will run a comparable time on each VM (each job will take similar time). You can use our matrix feature to set up knapsack.
+If you want to perform parallel tests for RSpec, Cucumber, or Minitest on multiple VMs to get faster feedback from CI, you can try [knapsack](https://github.com/ArturT/knapsack) gem. It will split tests across virtual machines and make sure that tests will run a comparable time on each VM (each job will take similar time). You can use our matrix feature to set up knapsack.
-### RSpec Parallelization example
+### RSpec Parallelization Example
```yaml
script: "bundle exec rake knapsack:rspec"
@@ -106,7 +106,7 @@ MY_GLOBAL_VAR=123 CI_NODE_TOTAL=2 CI_NODE_INDEX=0
MY_GLOBAL_VAR=123 CI_NODE_TOTAL=2 CI_NODE_INDEX=1
```
-### Cucumber Parallelization example
+### Cucumber Parallelization Example
```yaml
script: "bundle exec rake knapsack:cucumber"
@@ -119,7 +119,7 @@ env:
```
{: data-file=".travis.yml"}
-### Minitest Parallelization example
+### Minitest Parallelization Example
```yaml
script: "bundle exec rake knapsack:minitest"
@@ -132,9 +132,9 @@ env:
```
{: data-file=".travis.yml"}
-### RSpec, Cucumber and Minitest Parallelization example
+### RSpec, Cucumber, and Minitest Parallelization Example
-If you want to parallelize a test suite for RSpec, Cucumber and Minitest at the same time, define script in `.travis.yml` as follows:
+If you want to parallelize a test suite for RSpec, Cucumber, and Minitest at the same time, define script in `.travis.yml` as follows:
```yaml
script:
@@ -155,13 +155,13 @@ You can either use our [built-in caching](/user/caching/) or roll your own on S3
want to roll your own and you use Ruby with Bundler, check out [the great WAD project](https://github.com/Fingertips/WAD).
For other languages, you can use s3 tools directly to upload and download the dependencies.
-## Environment-Specific Ways to Speed up your Build
+## Environment-Specific Ways to Speed up a Build
In addition to the optimizations implemented by Travis, there are also
several environment-specific ways you may consider to increase the speed of
your tests.
-### PHP optimizations
+### PHP Optimizations
PHP VM images on Travis CI provide several PHP versions which include
XDebug. The XDebug extension is useful, if you wish to generate code coverage
@@ -176,7 +176,7 @@ builds if:
- you are testing on PHP 7.0 or above and are able to use the [PHP Debugger (phpdbg)](https://github.com/krakjoe/phpdbg)
which may be faster.
-#### Using phpdbg example
+#### phpdbg Example
```yaml
before_script:
@@ -188,7 +188,7 @@ script:
```
{: data-file=".travis.yml"}
-### Makefile optimization
+### Makefile Optimization
If your makefile build consists of independent parts that can be safely
parallelized, you can [run multiple recipes
@@ -200,7 +200,7 @@ similar number (or slightly higher if your build frequently waits on disk I/O).
> Note that doing this will cause concurrent recipe output to become interleaved.
-#### Makefile parallelization example
+#### Makefile Parallelization Example
```yaml
env:
From eb40f9919a837f0dc58fa3841e633306dd49d643 Mon Sep 17 00:00:00 2001
From: nrios14 <44674816+nrios14@users.noreply.github.com>
Date: Fri, 8 Nov 2024 17:45:39 -0400
Subject: [PATCH 118/178] Update apps.md
---
user/apps.md | 66 ++++++++++++++++++++++++++--------------------------
1 file changed, 33 insertions(+), 33 deletions(-)
diff --git a/user/apps.md b/user/apps.md
index fe83a7125d9..04b58987790 100644
--- a/user/apps.md
+++ b/user/apps.md
@@ -1,5 +1,5 @@
---
-title: Apps, Clients and Tools
+title: Apps, Clients, and Tools
layout: en
---
@@ -16,12 +16,12 @@ There is a wide range of tools you can use to interact with Travis CI:
And if you don't find anything that fits your needs, you can also interact with our [API](/api/) directly.
-Note however that Travis CI can not take any responsibility of for third-party tools you might use.
-
-# Websites {#websites}
+However, Travis CI cannot take any responsibility for third-party tools you might use.
## Full Web Clients
+This section shows the full web client apps that are available.
+
### Travis CI Web Client
![travis-web](/images/apps/travis-web.jpg){:.app}{:.official}
@@ -34,6 +34,8 @@ Our official web interface, written in [Ember.js](http://www.emberjs.com)
## Dashboards
+This section shows the different available dashboard apps.
+
### TravisLight
![travis-light](/images/apps/travis-light.jpg){:.app}
@@ -112,6 +114,8 @@ By Workshop 64
## Tools
+This section shows available tools.
+
### Travis Web Encrypter
![travis-encrypt](/images/apps/travis-encrypt.jpg){:.app}
@@ -124,11 +128,9 @@ By Konstantin Haase
-# Mobile Applications
+## Android Mobile Applications
-## Android
-
-### Siren of Shame (Android)
+### Siren of Shame
![Siren of Shame](/images/apps/siren-android.jpg){:.app}
@@ -138,7 +140,7 @@ By Automated Architecture
- [website](http://sirenofshame.com/)
- [play store](https://play.google.com/store/apps/details?id=com.automatedarchitecture.sirenofshame2)
-## iOS
+## iOS Mobile Applications
### Jarvis
@@ -160,7 +162,7 @@ By Dimitri Roche
- [app store](https://itunes.apple.com/us/app/project-monitor/id857272990)
- [source code](https://github.com/dimroc/iOS.ProjectMonitor)
-### Siren of Shame (iOS)
+### Siren of Shame
![Siren of Shame](/images/apps/siren-ios.jpg){:.app}
@@ -170,7 +172,7 @@ By Automated Architecture
- [website](http://sirenofshame.com/)
- [app store](https://itunes.apple.com/us/app/siren-of-shame/id637677118)
-## Windows Phone
+## Windows Mobile Applications
### Travis7
@@ -181,7 +183,7 @@ By Tim Felgentreff
- [website](http://travis7.codeplex.com/)
-# Desktop
+## Desktop
If you are looking for **desktop notifications**, our command line client [supports them](https://github.com/travis-ci/travis.rb#monitor).
@@ -232,9 +234,7 @@ By catlight.io
-# Command Line Tools
-
-## Full Clients
+## Command Line Tools - Full Clients
### Travis CLI
@@ -250,7 +250,7 @@ Command line client for PowerShell
- [website](https://github.com/felixfbecker/PSTravis#readme)
-## Build Monitoring
+## Command Line Tools - Build Monitoring
### Bickle
@@ -297,7 +297,7 @@ By Henry Ruhs
- [website](https://github.com/redaxmedia/chroma-feedback)
-## Generators
+## Command Line Tools - Generators
### travis-encrypt
@@ -335,9 +335,7 @@ By James Halliday
- [website](https://github.com/substack/travisify)
-# Plugins
-
-## Google Chrome
+## Google Chrome Plugins
### My Travis
@@ -362,11 +360,11 @@ By Tomas Carnecky
![chrome-github-status](/images/apps/chrome-github-status.jpg){:.app}
Display build status next to project name on GitHub