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
-By excellenteasy +By excellent easy - [website](https://chrome.google.com/webstore/detail/github-status/mgbkbopoincdiimlleifbpfjfhcndahp) -## Opera +## Opera Plugins ### GitHub+Travis @@ -377,7 +375,7 @@ By smasty - [website](https://addons.opera.com/en/extensions/details/travisgithub/) -## Editors +## Editor Plugins ### Atom Plugin @@ -416,7 +414,7 @@ By Keith Smiley - [website](https://github.com/Keithbsmiley/travis.vim) -## Other +## Other Plugins ### git-travis @@ -445,9 +443,11 @@ By Sankarsan Kampa - [website](https://github.com/DiscordHooks/travis-ci-discord-webhook) -# Libraries +## Libraries + +The following section shows the different available libraries. -## Ruby +### Ruby - [travis.rb](https://github.com/travis-ci/travis.rb) **(official)** - [trav3](https://github.com/danielpclark/trav3) by Daniel P. Clark @@ -456,7 +456,7 @@ By Sankarsan Kampa - [Knapsack](https://github.com/ArturT/knapsack) by Artur Trzop -## JavaScript +### JavaScript - [travis-ci](https://github.com/pwmckenna/node-travis-ci) by Patrick Williams - [node-travis-ci](https://github.com/mmalecki/node-travis-ci) by Maciej Małecki @@ -465,25 +465,25 @@ By Sankarsan Kampa - [ee-travis](https://github.com/eventEmitter/ee-travis) by Michael van der Weg - [Favis CI](https://github.com/jaunesarmiento/favis-ci) by Jaune Sarmiento -## PHP +### PHP - [php-travis-client](https://github.com/l3l0/php-travis-client) by Leszek Prabucki -## Python +### Python - [TravisPy](http://travispy.readthedocs.org/en/latest/) by Fabio Menegazzo -## PowerShell +### PowerShell - [PSTravis](https://github.com/felixfbecker/PSTravis) by Felix Becker -## Elixir +### Elixir - [travis.ex](https://github.com/localytics/travis.ex) by Kevin Deisz -## R +### R - [travis](https://github.com/ropenscilabs/travis) by Kirill Müller -## Go +### Go - [go-travis](https://github.com/shuheiktgw/go-travis) by Shuhei Kitagawa diff --git a/user/assembla-oauth-scopes.md b/user/assembla-oauth-scopes.md index 9d35796aa52..5a4040ff01e 100644 --- a/user/assembla-oauth-scopes.md +++ b/user/assembla-oauth-scopes.md @@ -10,7 +10,7 @@ some of your data on Assembla. Read the [Scopes for the Assembla REST API](https://api-docs.assembla.cc/) for general information about this, or pick an explanation of what data we need and why we need it. -## Travis CI for Open Source and Private Projects +## Travis CI for Open-Source and Private Projects On , via our Assembla integration, we ask for the following permissions: @@ -24,6 +24,8 @@ We use scoped OAuth tokens to integrate with Assembla. ## Used Scopes +The following sections show the different scopes used. + ### repository It gives the app read access to all the repositories the authorizing user has access to. > This scope does not give access to a repository's pull requests. @@ -32,7 +34,7 @@ It gives the app read access to all the repositories the authorizing user has ac It gives the app admin access to all the repositories the authorizing user has access to. This permission is needed to add the access key. Travis CI uses the key to read the travis.yml file content. -### pullrequest +### pull-request It gives the app read access to pull requests and collaborate on them. This scope implies a repository giving read access to the pull request's destination repository. ### email diff --git a/user/bb-oauth-scopes.md b/user/bb-oauth-scopes.md index 77a512c48bb..8cfa76476c1 100644 --- a/user/bb-oauth-scopes.md +++ b/user/bb-oauth-scopes.md @@ -5,12 +5,12 @@ permalink: /user/bb-oauth-scopes/ --- -When you sign in to Travis CI for the first time, we ask for permissions to access +When you sign in to Travis CI for the first time, we ask for permission to access some of your data on Bitbucket. Read the [Scopes for the Bitbucket Cloud REST API](https://developer.atlassian.com/cloud/bitbucket/bitbucket-cloud-rest-api-scopes/) for general information about this, or pick an explanation of what data we need and why we need it. -## Travis CI for Open Source and Private Projects +## Travis CI for Open-Source and Private Projects On , via our Bitbucket integration, we ask for the following permissions: @@ -24,15 +24,17 @@ We use scoped OAuth tokens to integrate with Bitbucket. ## Used Scopes +The following sections explain the different scopes used. + ### repository -Gives the app read access to all the repositories the authorizing user has access to. +It gives the app read access to all the repositories the authorizing user has access to. > This scope does not give access to a repository's pull requests. ### repository:admin Gives the app admin access to all the repositories the authorizing user has access to. This permission is needed to add the access key. Travis CI uses the key to read the travis.yml file content. -### pullrequest +### pull-request Gives the app read access to pull requests and collaborate on them. This scope implies repository, giving read access to the pull request's destination repository. ### email @@ -45,9 +47,9 @@ Ability to see all the user's account information. Note that this does not inclu The ability to find out what teams the current user is part of. This is covered by the teams endpoint. ### webhook -Gives access to webhooks. This scope is required for any webhook related operation. +Gives access to webhooks. This scope is required for any webhook-related operation. -This scope gives read access to existing webhook subscriptions on all resources you can access, without needing further scopes. +This scope gives read access to existing webhook subscriptions to all resources you can access, without needing further scopes. This means that a client can list all existing webhook subscriptions on repository foo/bar (assuming the principal user has access to this repo). The additional repository scope is not required for this. diff --git a/user/best-practices-security.md b/user/best-practices-security.md index 8f1bebf8fff..a2c372c1f55 100644 --- a/user/best-practices-security.md +++ b/user/best-practices-security.md @@ -4,18 +4,18 @@ layout: en --- -## Steps Travis CI takes to secure your data +## Travis CI steps to secure your data Travis CI obfuscates secure environment variables and tokens displayed in the UI. Our [documentation about encryption keys](/user/encryption-keys/) outlines the build configuration we require to ensure this, however, once a VM is booted and tests are running, we have less control over what information utilities or add-ons are able to print to the VM’s standard output. To prevent leaks made by these components, we automatically filter secure environment variables and tokens that are longer than three characters at runtime, effectively removing them from the build log, displaying the string `[secure]` instead. -Please make sure your secret is never related to the repository or branch name, or any other guessable string. Ideally use a password generation tool such as `mkpasswd` instead of choosing a secret yourself. +Please make sure your secret is never related to the repository or branch name, or any other guessable string. Ideally, you should use a password generation tool such as `mkpasswd` instead of choosing a secret yourself. > The beta Windows support does not obfuscate secure environment variables leaked into the build log. Please keep reading the next section, [on how to avoid leaking secrets to build logs](https://docs.travis-ci.com/user/best-practices-security/#recommendations-on-how-to-avoid-leaking-secrets-to-build-logs) ### Log Scans -Travis CI has also enabled a mandatory post-job log scan in an attempt to find any other potential leakage of secrets. These scans are carried out on the the raw job log files shortly after the build job is completed. Scans are executed using [Trivy](https://github.com/aquasecurity/trivy) and [detect-secrets](https://github.com/Yelp/detect-secrets), Open Source scanners made available by their maintainers via means of a permissive OSS license. If the scanning process finds an unmasked secret-like entry in the job log, Travis CI, as a precautionary action, will mask the full line in the job log with asterisks (`*`) and produce a log scan report, available to the repository administrators for 7 days. +Travis CI has also enabled a mandatory post-job log scan in an attempt to find any other potential leakage of secrets. These scans are carried out on the raw job log files shortly after the build job is completed. Scans are executed using [Trivy](https://github.com/aquasecurity/trivy) and [detect-secrets](https://github.com/Yelp/detect-secrets), Open Source scanners made available by their maintainers via means of a permissive OSS license. If the scanning process finds an unmasked secret-like entry in the job log, Travis CI, as a precautionary action, will mask the full line in the job log with asterisks (`*`) and produce a log scan report, available to the repository administrators for 7 days. The job log scan report contains details on found potential secrets, referring to the line numbers in the **raw** job log file, and is meant to help review and find the source of the possible leak and if this proves to be an actual exposition of the secret, the scan fixes that. @@ -29,19 +29,19 @@ Since the job log scan is executed by the tools looking for secret-like entries, > Please note: The scan results may produce false positives and/or miss some items due to the nature of the scanners (searching for secret-like patterns). This is continuous work, and we expect it to improve over time based on findings and feedback. Also, we closely monitor the number of warnings raised by the job log scan process and decide later on to enable respective email notifications on top of existing visual indicators. -## Recommendations on how to avoid leaking secrets to build logs -Despite our best efforts, there are however many ways in which secure information can accidentally be exposed. These vary according to what tools you are using and what settings you have enabled. Some things to look out for are: +## Leaking secrets to build logs +Despite our best efforts, there are, however, many ways in which secure information can accidentally be exposed. These vary according to what tools you are using and what settings you have enabled. Some things to look out for are: -* settings which duplicate commands to standard output, such as `set -x` or `set -v` in your bash scripts -* displaying environment variables, by running `env` or `printenv` -* printing secrets within the code, for example `echo "$SECRET_KEY"` -* using tools that print secrets on error output, such as `php -i` -* git commands like `git fetch` or `git push` may expose tokens or other secure environment variables -* mistakes in string escaping -* settings which increase command verbosity -* testing tools or plugins that may expose secrets while operating +* settings which duplicate commands to standard output, such as `set -x` or `set -v` in your bash scripts. +* displaying environment variables, by running `env` or `printenv`. +* printing secrets within the code, for example `echo "$SECRET_KEY"`. +* using tools that print secrets on error output, such as `php -i`. +* git commands like `git fetch` or `git push` may expose tokens or other secure environment variables. +* mistakes in string escaping. +* settings which increase command verbosity. +* testing tools or plugins that may expose secrets while operating. -Preventing commands from displaying any output is one way to avoid accidentally displaying any secure information. If there is a particular command that is using secure information you can redirect its output to `/dev/null` to make sure it does not accidentally publish anything, as shown in the following example: +Preventing commands from displaying any output is one way to avoid accidentally displaying any secure information. If there is a particular command that is using secure information, you can redirect its output to `/dev/null` to make sure it does not accidentally publish anything, as shown in the following example: ```sh git push url-with-secret >/dev/null 2>&1 @@ -49,44 +49,45 @@ git push url-with-secret >/dev/null 2>&1 While using Travis CI, you may want to consider the additional means to decrease the risk of exposing secrets in the build job logs: -### Always use encrypted secrets +### Use encrypted secrets + Travis CI offers the ability to either [encrypt your secret](/user/encryption-keys/) with the Travis-CLI (command line interface tool) or define the secret in the [Travis CI Repository Settings](/user/environment-variables/#defining-variables-in-repository-settings). Shall the secret be stored in an encrypted file within your source code repository, you may instead [encrypt a file with a secret](/user/encrypting-files/) and use it during the build job. Decrypt your file for the shortest time needed and remove any temporary environment variables from the build job environment as soon as these are not necessary. -Please mind that at some point, the secret, in order to be used, must be decrypted for the build job environment. Thus debug outputs to the standard outputs may still result in secret exposure. The additional post-job log scanning process is meant to find these as much as possible. +Please mind that at some point, the secret, in order to be used, must be decrypted for the build job environment. Thus debug outputs to the standard outputs may still result in secret exposure. The additional post-job log scanning process is meant to find as many of these as possible. ### Use the Hashicorp Vault KMS integration If you manage your secrets using the Hashicorp Vault KMS (Key Management System), then you may use the existing [Travis CI - Hashicorp integration](/user/hashicorp-vault-integration) to obtain secrets directly to the build job. -Again, please be wary of any possible debug outputs to the standard outputs in the build job environment. The additional post-job log scanning process is meant to find these as much as possible. The advantage of pulling the secret from a KMS managed by you is the ability to rotate it from a single secret repository in case of any incident. We strongly recommend using Hashicorp Vault credentials limited to a specific set of CI/CD-related secrets to limit the threat scope for the KMS. +Again, please be wary of any possible debug outputs to the standard outputs in the build job environment. The additional post-job log scanning process is meant to find as many of these as possible. The advantage of pulling the secret from a KMS managed by you is the ability to rotate it from a single secret repository in case of any incident. We strongly recommend using Hashicorp Vault credentials limited to a specific set of CI/CD-related secrets to limit the threat scope for the KMS. -### Limit access to the job logs +### Limit job log access Review who and why should have access to the build job logs and set the appropriate options in the [Travis CI Repository Settings](/user/disable-job-logs/). -### Review the settings for builds triggered from forked Git repositories +### Settings review for fork repository builds Review the [Travis CI Repository Settings](/user/pull-requests/#pull-requests-and-security-restrictions) and adjust what should be shared with forks. This is meant for a collaboration pattern when a forked repository can file a Pull Request to the base repository, thus triggering a CI/CD build job with automated build and tests as a part of the Pull Request validation and approval process. Assess the risks and adjust settings to your scenario. ### Run builds requiring secrets in private repositories If this is a viable option, consider running builds requiring the usage of secrets as a CI/CD for private repositories with a carefully reviewed collaborator list. Combined with the above options, it should decrease the risk of secret exposition in the build job log. -## If you think that you might have exposed secure information +## Take control of exposing secure information As an initial step, it’s possible to delete logs containing any secure information by clicking the *Remove log* button on the build log page of Travis CI. ![remove log button](/images/remove-log.png "remove log button") -If you discover a leak in one of your build logs it’s essential that you revoke the leaked token or environment variable, and update any build scripts or commands that caused the leak. +If you discover a leak in one of your build logs, it’s essential that you revoke the leaked token or environment variable and update any build scripts or commands that caused the leak. -### Alternative methods of deleting logs +### Alternative log-deleting methods Instead of deleting build logs manually, you can do so using the [Travis CI CLI](https://github.com/travis-ci/travis.rb#logs) or the [API](https://developer.travis-ci.com/resource/log#delete). ## Rotate tokens and secrets periodically Rotate your tokens and secrets regularly. GitHub OAuth tokens can be found in your [Developer Settings](https://github.com/settings/developers) on the GitHub site. Please regularly rotate credentials for other third-party services as well. -## More information -The suggestions in this document reflect general recommendations that the Travis CI team and community encourage everyone to follow. However, suggestions here are not exhaustive, and you should use your best judgement to determine security processes for your project. If you have any questions about security at Travis CI or suspect you may have found a vulnerability, please contact us at . +## Disclaimer +The suggestions in this document reflect general recommendations that the Travis CI team and community encourage everyone to follow. However, suggestions here are not exhaustive, and you should use your best judgment to determine security processes for your project. If you have any questions about security at Travis CI or suspect you may have found a vulnerability, don't hesitate to contact us at . All other questions about Travis CI should be directed to . diff --git a/user/billing-autorefill.md b/user/billing-autorefill.md index 855c0c5c726..952654a59ef 100644 --- a/user/billing-autorefill.md +++ b/user/billing-autorefill.md @@ -1,5 +1,5 @@ --- -title: Billing Autorefill +title: Billing Auto-Refill layout: en permalink: /user/billing-autorefill/ @@ -11,19 +11,19 @@ Enable the Auto-Refill feature to ensure you don’t run out of credits. The Auto-Refill feature is available to all users who provide their credit card details and register to a usage-based plan or purchase credits add-on under a concurrency plan. This feature is not available for Free Plan users. Find the Auto-refill under: [Settings -> Plan tab](https://app.travis-ci.com/account/plan) -> Credits section -> Credits tab. -If you wish to set a different refill threshold and refill amount, please contact support at [support@travis-ci.com](mailto:support@travis-ci.com). +If you wish to set a different refill threshold and amount, please contact support at [support@travis-ci.com](mailto:support@travis-ci.com). ### How it works -Activating the Auto-Refill option allows you to continue building in case your monthly or annual credits run out. Whenever your credit balance drops below a certain threshold, a set amount of credits will be purchased and upon a successful transaction added to your account. +Activating the Auto-Refill option allows you to continue building in case your monthly or annual credits run out. Whenever your credit balance drops below a certain threshold, a set amount of credits will be purchased and, upon a successful transaction, added to your account. -Enable this option to select a threshold amount and a refill amount of credits to continue building. The Plan you are on determines what selection add-ons are available for you. Press Apply to confirm the newly set Auto-refill values so whenever the account is below the set threshold, your credits replenish immediately and not at the start of your next build. +Enable this option to select a threshold amount and a refill amount of credits to continue building. The Plan you are on determines what selection add-ons are available to you. Press Apply to confirm the newly set Auto-refill values so whenever the account is below the set threshold, your credits replenish immediately and not at the start of your next build. -To stop credit replenishment, simply disable the Auto-refill option +To stop credit replenishment, simply disable the Auto-refill option. > **The Auto-Refill option is not available for users on manual plans.** ### Billing -After each refill, Travis CI sends an email notifying if the payment succeeded or if it failed. If payment fails, credits won’t replenish until payment succeeds. An invoice/receipt is issued for successful credit purchases that you can obtain via your [Settings -> Plan tab](https://app.travis-ci.com/account/plan). +After each refill, Travis CI sends an email notifying if the payment succeeded or failed. If payment fails, credits won’t replenish until payment succeeds. An invoice/receipt is issued for successful credit purchases that you can obtain via your [Settings -> Plan tab](https://app.travis-ci.com/account/plan). diff --git a/user/billing-faq.md b/user/billing-faq.md index f2f819cff6e..d15bfd1d5c8 100644 --- a/user/billing-faq.md +++ b/user/billing-faq.md @@ -11,7 +11,7 @@ permalink: /user/billing-faq/ You can select one of available annual plans via [Your Account->Settings->Plan](https://app.travis-ci.com/account/plan) page. The customised annual based plans are available by contacting the Travis CI support team. -## How can I get on the usage based plan? +## How can one get on a Usage-based Plan? The usage based plan is available either in [Your Account->Settings->Plan](https://app.travis-ci.com/account/plan) page or by contacting the Travis CI support team. @@ -21,14 +21,14 @@ The credits will be deducted from the credits pool after each build job is execu ## How can I check how much I will pay for user licenses at the end of the month? -The unique users triggering builds within a month will constitute a number of actual user licenses consumed and payment method depends on whether the usage based plan is a subscription or not. +The unique users triggering builds within a month will constitute a number of actual user licenses consumed and the payment method depends on whether the usage-based plan is a subscription or not. To check how much active users you got during the last billing cycle you may generate a report for selected time period on your [Plan Usage](https://app.travis-ci.com/account/plan/usage) page or contact the support. -Travis CI also offers the user management functionality where you are able: +Travis CI also offers the user management functionality where you can: -* To see how many users has rights to trigger the build -* To see how many was active/trigger the build during the last month -* Select the users who are able to trigger the build +* See how many users have rights to trigger the build. +* See how many were active or triggered the build during the last month. +* Select the users who can trigger the build. This is available under each repository settings (in the https://app.travis-ci.com/{vcs provider identifier}/{your account name}/{repository name}/settings ) as a'User Management' button. @@ -43,10 +43,10 @@ If the team member has not triggered the build during the billing period Travis ## What if I am building open source? -Travis CI may grant an amount of special OSS credits per month assigned to run builds only on public repositories. To find out more about it please [contact the Travis CI support team](mailto:support@travis-ci.com). In the email please include: +Travis CI may grant an amount of special OSS credits per month assigned to run builds only on public repositories. To find out more about it, please [contact the Travis CI support team](mailto:support@travis-ci.com). In the email, please include: * Your account name and your VCS provider (like travis-ci.com/github/[your account name] ) -* How many credits (build minutes) you’d like to request (should your run out of credits again you can repeat the process to request more or to discuss a renewable amount) +* How many credits (build minutes) you’d like to request (should you run out of credits again, you can repeat the process to request more or to discuss a renewable amount) ## How do I use credits? @@ -54,9 +54,9 @@ Travis CI may grant an amount of special OSS credits per month assigned to run b You can use your credits to run builds on your public and private repositories. You may have been assigned an amount of OSS credits to run builds on public repositories. When you run out of OSS credits but want to keep building on public repositories you can go to the Plan page and turn the Credits consumption for OSS switcher to `On`. In this case, once the ‘OSS credits’ pool is depleted, the system starts deducting from the ‘paid credits’ pool. Builds for OSS repositories will be allowed to start, and deducted from the paid credits. -## How do I recharge my credits balance? +## How do I recharge my credit balance? -You can buy additional build credits anytime you need them by clicking on your profile icon in the right upper corner of the screen =>Settings, navigate to the Plan page and press the ‘Buy add-ons’ button. You may also enable the [auto-refill](/user/billing-autorefill/) feature. +You can buy additional build credits anytime you need them by clicking on your profile icon in the upper right corner of the screen =>Settings, navigate to the Plan page, and press the ‘Buy add-ons’ button. You may also enable the [auto-refill](/user/billing-autorefill/) feature. Please be advised that it is not possible to buy additional credits on Free Plan. @@ -78,25 +78,25 @@ If you want your account to be deleted, please contact the Travis CI support. ## Do these prices include tax? -No, all prices do not include tax. +No, not all prices include tax. -## Can I sign up for automatic renewals for usage based plan? +## Can I sign up for automatic renewals for Usage-based Plans? -Yes. Please select a usage based plan which is a periodical subscription or contact the support. +Yes. Please select a usage-based plan, which is a periodical subscription, or contact the support. You may also manually buy credits each time you are about to run out of them or enable the [auto-refill](/user/billing-autorefill/) functionality in your Plan page, which will refill your credits every time it drops below certain threshold. Concurrency-based plans are not subject to auto-refill. -To help you track the build credit consumption Travis CI system will send the notification emails each time your credit balance is used up by 50, 75 and 100%. +To help you track the build credit consumption, the Travis CI system will send notification emails each time your credit balance is used up by 50, 75, or 100%. ## Are add-ons limited to a certain number of users? -You can buy additional add-ons any time you feel it is needed. You and your organization’s members can use the bought add-ons with no limitations. +You can buy additional add-ons at any time you feel they are needed. You and your organization’s members can use the bought add-ons without limitations. -## Why my credits balance is negative? +## Why is my credit balance negative? -Most probably your last build costed more than you had available in your credit balance. You won't be able to run any builds until your balance gets positive. Replenish your credits (the negative balance will be deducted upon arrival of new credits creating new balance - see our [billing overview](/user/billing-overview/#negative-credits). +Your last build probably cost more than you had available in your credit balance. You won't be able to run any builds until your balance gets positive. Replenish your credits (the negative balance will be deducted upon arrival of new credits creating new balance - see our [billing overview](/user/billing-overview/#negative-credits). -## Why am I asked for credit card details upon selection of free Trial Plan? +## Why am I asked for credit card details upon selecting a free Trial Plan? Due to continued abuse of our free service and in order to make environment more secure and with fair access to shared infrastructure, Travis CI decided to introduce credit card validation step for every new user. There will be a small fee placed on your card in order to authorize the account and it will be returned after several days. diff --git a/user/billing-overview.md b/user/billing-overview.md index 2643ea12907..c50761532a5 100644 --- a/user/billing-overview.md +++ b/user/billing-overview.md @@ -5,8 +5,7 @@ permalink: /user/billing-overview/ --- -## Travis CI Plan types - +## Travis CI Plan Types Travis CI billing system consists of two types of subscriptions: Concurrency (fixed-price) based plans and Usage-based plans. The variety of plans allows you to choose the plan that suits your needs. @@ -34,7 +33,7 @@ Due to security reasons and an anti-abuse preventive measure, any new user will > The Free Trial Plan is available only once and for new users only -## Definitions +## Key Definitions *Build minute* - every build minute of a build job after the build job environment is started (queue time and spinning up the environment time are not deducting credits from the allowance). @@ -44,11 +43,11 @@ Due to security reasons and an anti-abuse preventive measure, any new user will *Build job*—a build job is where the build and test work happens. It is executed in an ephemeral environment (removed after a single build job is finished) of a container or VM instance at Travis CI infrastructure. The duration of the build job is tracked, and—if required—the relevant cost is covered from the credits pool. -## Concurrency based plans +## Concurrency-based Plans Concurrency-based plans are similar to what Travis CI has been offering for a long time: the ability to run a build consisting of X concurrent jobs. -### Concurrency-based Plan - Summary +### Concurrency-based Plan Summary | Area | Details | | :--- | --- | @@ -56,7 +55,7 @@ Concurrency-based plans are similar to what Travis CI has been offering for a lo | **Private/Public repositories** | You can build over both private and public repositories with a paid subscription. | | **Build job limits** | As per Plan | -### Concurrency Plan - How it works +### Concurrency-based Plan Summary In Travis CI, builds are executed singularly, without exceeding limitations. Therefore, if executing multiple builds simultaneously or executing a build with multiple build jobs, once the concurrency limit is reached, the reminder builds/jobs must wait until a queue capacity is available for processing. @@ -72,7 +71,7 @@ Credits are used to pay for each build job minute on macOS. Purchase only the cr > If a user/organization on the same Plan tries to execute a job for `os: macOS` and has no credits available (see your [Plans](https://app.travis-ci.com/account/plan)), this build will not execute. In order to proceed, an add-on must be purchased, e.g., 25k credits. Now the build can be executed, and a pre-defined amount of [credits will be charged for each build minute of macOS build job](/user/billing-overview/#usage---credits). -### Concurrency Plan - How to obtain it? +### Subscribe to a Concurrency-based Plan 1. Sign in to Travis CI with the [Version Control System of your choice](/user/onboarding/). 2. Navigate to the [Plan tab](https://app.travis-ci.com/account/plan) and select 'X concurrent jobs Plan'. @@ -80,13 +79,13 @@ Credits are used to pay for each build job minute on macOS. Purchase only the cr 4. Confirm the transaction. -## Usage-based plans +## Usage-based Plans > **If you are running a large number of builds or users each month, please [contact Travis CI Customer Success](mailto:Customer.Success@travis-ci.com) if you’d like to discuss your plan.** The Usage-based pricing system charges Travis CI users and Travis CI organizations depending on the number of minutes each builds jobs run on Travis CI infrastructure and unique users triggering builds. -### Usage-based Plan - Summary +### Usage-based Plan Summary | Area | Details | | :--- | --- | @@ -94,7 +93,7 @@ The Usage-based pricing system charges Travis CI users and Travis CI organizatio | **Private/Public repositories** | With Credits, you can build over both private and public repositories.
With OSS Credits, you can build only over public repositories. | | **Build job limits** | Very high.

The Free Plan assigned automatically upon sign-up has a limit of 20 concurrent jobs. The paid usage-based plans start from a 40 concurrent jobs limit. | -#### Credit costs associated with Usage-based Plans +#### Usage-based Plans Credit Costs 1. User license cost: by default, credits per each unique user triggering a build or a specific rate charged in arrears at the end of the month. See the [Usage - user licenses](#usage---user-licenses) section for more details. 2. Build job duration costs: For more details, see [Usage—Credits](#usage---credits). @@ -116,22 +115,22 @@ The Usage-based pricing system charges Travis CI users and Travis CI organizatio | Build Job: Linux - gpu-medium VM size | 230 credits / min | 230 credits / min | | Build Job: Linux - gpu-xlarge VM size | 890 credits / min | 890 credits / min | -### Usage-based Plan - How to obtain? +### Subscribe to a Usage-based Plan 1. Sign in to Travis CI with a [Version Control System of your choice](/user/onboarding/). 2. Navigate to the [Plans](https://app.travis-ci.com/account/plan) and have your billing and contact details filled in correctly. 3. Select an available Usage-based Plan or contact [Travis CI support](mailto:support@travis-ci.com) requesting a Usage-based Plan for larger options. -### Usage-based Plan - How it works +### How it works Usage-based pricing is a model using credits. It may include a user-license allowance and credit pool. Usage-based pricing features very high concurrent build jobs soft limits. In other words, users and organizations can run as many build jobs in Travis CI as they want simultaneously, meaning that all builds are executed as soon as possible. The final cost is flexible and closely related to the actual usage of the system, allowing you to downscale or upscale as per your needs. -All credit charges are deducted from a credit pool associated with an Usage-based plan assigned to Travis CI User or Organization, which is an 'owner' of a VCS repository enabled in Travis CI. +All credit charges are deducted from a credit pool associated with a Usage-based plan assigned to the Travis CI User or Organization, which is an 'owner' of a VCS repository enabled in Travis CI. -All unique user triggering build counting is tracked against an Usage-based plan assigned to Travis CI User or Organization, which is an 'owner' of a VCS repository enabled in Travis CI. +All unique user triggering build counting is tracked against a Usage-based plan assigned to the Travis CI User or Organization, which is an 'owner' of a VCS repository enabled in Travis CI. -> The Usage-based pricing model bills based on minutes used (via credits) and the number of unique users trigerring those builds (via user licenses). Users subscribe to a plan that allocates a pool of credits to be used towards build minutes and pricing for a specific number of user licenses. The credits are deducted from the user's credit balance as they are used in the Travis CI service. +> The Usage-based pricing model bills based on minutes used (via credits) and the number of unique users triggering those builds (via user licenses). Users subscribe to a plan that allocates a pool of credits to be used towards build minutes and pricing for a specific number of user licenses. The credits are deducted from the user's credit balance as they are used in the Travis CI service. Unique users triggering builds within a billing period will constitute a number of actual user licenses used out of allowed pool. If the user-license pool is exceeded by new unique user triggering build, credits for this extra usage will be deducted from available credit pool. In custom cases, instead of charge in credits, user licenses will be tracked within month and will be charged at the end of the billing period, according to the rates of their selected plan. @@ -154,17 +153,17 @@ Triggering builds is only possible if a user has a positive credit balance. To g ### Monthly Usage-based Plans -Monthly Usage-based plans are subscriptions, granting a specific credit pool each month and (optionally) user-license allowance included in the price. Once these allowances are depleted, the credits may be refilled via manual purchase of credits package or [auto-refilled](/user/billing-autorefill/) and spent on builds and additional user-licenes. +Monthly Usage-based plans are subscriptions, granting a specific credit pool each month and (optionally) user-license allowance included in the price. Once these allowances are depleted, the credits may be refilled via the manual purchase of a credits package or [auto-refilled](/user/billing-autorefill/) and spent on builds and additional user-licenes. Consumed user-license count is reset each month. If not stated or set otherwise, the Monthly Usage-based plan is renewed automatically. -#### Selecting a Plan +#### Select a Plan Subscribe to one of our monthly plans to get your credits and continue building. Once you select a plan, your credits and your bill will be available at the start of the following month. -#### Canceling my Monthly Subscription +#### Cancel a Monthly Subscription Users can cancel their current subscription anytime they like; simply use the Cancel Subscription button on the [Plan page](https://app.travis-ci.com/account/plan). Press the Cancel button to notify support of your desire to cancel your plan, and the Travis Support team will contact you soon with details regarding your cancellation. @@ -172,14 +171,14 @@ Once users request cancellation, the remaining credits will be retained until th ### Annual Usage-based Plans -Annual Usage-based plans are a subscription, granting specific credit pool each year and (optionally) user-license allowance per each month included in the price. Once these allowances are depleted, the credits may be refilled via manual purchase of credits package or [auto-refilled](/user/billing-autorefill/) and spent on builds and additional user-licenes. +Annual Usage-based plans are a subscription, granting specific credit pool each year and (optionally) user-license allowance per each month included in the price. Once these allowances are depleted, the credits may be refilled via the manual purchase of a credits package or [auto-refilled](/user/billing-autorefill/) and spent on builds and additional user-licenes. Consumed user-license count is reset each month during the annual plan duration. If not stated or set otherwise, the Annual Usage-based plan is renewed automatically. -#### Selecting a Plan +#### Select a Plan Travis CI Users/Organizations who subscribe to an Annual Plan are granted the subscription´s amount of credits over 12 months. From the moment of subscription, users can use the credits however they see best, without monthly allotments or limits. @@ -190,21 +189,21 @@ Users interested in Annual plans can select an annual plan on the [Plan page](ht ##### What if I ran out of credits before my annual contract elapses? -If users use up all their annual credits before the 12 months elapses, to get more credits, users either can keep auto-refilling their account or purchase additional credits allowance. If needed, please [contact Travis CI Customer Success](mailto:Customer.Success@travis-ci.com) to discuss details. +If users use up all their annual credits before the 12 months elapses, to get more credits, users can either keep auto-refilling their account or purchase additional credits allowance. If needed, please [contact Travis CI Customer Success](mailto:Customer.Success@travis-ci.com) to discuss details. -#### Canceling my Annual Subscription +#### Cancel an Annual Subscription Users on an Annual Plan must explicitly cancel their yearly subscription; otherwise, the plan renews automatically whenever the current cycle ends. Simply cancel your subscription using the Cancel Subscription button on the [Plan page](https://app.travis-ci.com/account/plan). Upon cancellation, users have the remaining time of the contract plus one extra month to use the remaining credits; otherwise, any remaining credits expire. Users cannot purchase new credits unless rejoining a monthly or annual subscription. Users have one year after canceling the subscription to view or save build data; after one year of cancellation, build data is removed from Travis CI. -### Changing Plans +### Switch Plans If you wish to switch from your monthly subscription to another plan with a different amount of credits, your new plan subscription will take effect at the start of the following month. And if you still run out of credits before the end of each month, try an annual plan, where you get an annual amount of credits for the price of 11 months. -### Usage - Credits +### Credits Usage Credits are purchased at your discretion as an 'addon' (if available in your plan) or via the Auto-Refill option. The Plan you are on determines what selection addons are available for you. Credit addons are paid in advance. Thus whenever you select or are assigned a Usage-based plan: @@ -285,8 +284,7 @@ The OSS credits are a separate pool of credits from regular credits, with separa Each new user who subscribes to the Free Trial Plan is automatically granted credits to use over a 14-day period. This one-time pool of credits is not renewable. This plan is meant to let you familiarize yourself with our usage-based plans as well as to try out other Travis CI features. - -### Usage - User Licenses +### User Licenses for Usage-based Plans User-licenses in Usage-based plans are consumed by [unique users triggering builds](#definitions) in the following order: @@ -298,21 +296,23 @@ The count of unique users triggering a build is tracked and reset monthly. Uniqu > If person A triggers a build, and person B triggers a build, the billing system will recognize 2 unique users. Now, if person A or B again triggers a build, the amount of unique users triggering remains 2 (assuming builds are triggered within the same month). Only when user C triggers a build within the same month the number of unique users triggering a build will be increased to 3. > -> By default, all users you've granted write rights to your repository are allowed to trigger a build. You may review Travis CI particular Repository page and manage which users are allowed to trigger the build in order to give you more control. +> By default, all users you've granted write rights to your repository are allowed to trigger a build. You may review Travis CI's particular Repository page and manage which users are allowed to trigger the build in order to give you more control. -#### Usage - User Licenses (Usage Plan with subscription) +### User Licenses for Usage-based Plan with subscription Usage-based plan with subscription charges you immediately upon build start for the new unique user triggering build within a month. Usage-based plans may have or may have not user-license allowance included in the price or available as a pool of user-licenses at a discounted credit cost. -##### Example 1: Credits, no user allowance included in price, user-license charge in credits, build with *n* build jobs +#### User License Example - Scenario 1 +This scenario is an example of a user with Credits. No user allowance is included in the price, and the user license is charged in credits. The user can build with *n* build jobs. > If a build is triggered, the system will check if this is a new, unique user-triggered build. If yes, a credit charge for the user license will be immediately deducted from the available credit pool upon the start of the build. > > The respective cost of build jobs execution in credits will be deducted from the available credit pool. -##### Example 2: Credits, user-license pool included in plan price, user-license charge in credits, build with *n* build jobs +#### User License Example - Scenario 2 +This scenario is an example of a user with Credits, a user-license pool included in the plan price, and the user license is charged in credits. The user can build with *n* build jobs. > If a build is triggered, the system will check if this is a new, unique user-triggering build. If yes, the system checks if consuming user-license exceeds user-license limit included: > @@ -321,26 +321,27 @@ Usage-based plans may have or may have not user-license allowance included in th > > The respective cost of build jobs execution in credits will be deducted from the available credit pool. -##### Example 3: Credits, pool of 3 discounted user-licenses included in the plan (e.g., *first 3 users for $XX*), user-license charge in credits, build with *n* build jobs +#### User License Example - Scenario 3 +This scenario is an example of a user with Credits, a pool of 3 discounted user licenses included in the plan (e.g., *first 3 users for $XX*), and the user license is charged in credits. The user can build with *n* build jobs. > Discounted user-license included in the plan means, in this example, that first three users cost e.g. 25K credits and after that each subsequent unique user triggering build costs $25k credits. > > If a build is triggered, the system will check if this is a new unique user triggering build. If yes, the system checks if the consuming user-license exceeds the pool of discounted user-license limit included in the plan: > > no - if this is 1st user out of first 3 discounted, a charge of e.g. 25k credits is deducted upon build start. If this is 2nd or 3rd unique user within a month, no credits are deducted from credit pool. -> yes - full user-license credits charge is deducted from available credit pool upon build start. +> yes - full user-license credits charge is deducted from the available credit pool upon build start. > > The respective cost of build jobs execution in credits will be deducted from the available credit pool. - -#### Usage - User Licenses (Usage Plan w/o subscription) +### User Licenses for Usage-based Plans without Subscription Usage-based plan w/o subscription charges you at the end of each month for the number of users who triggered the builds during this month. With every build started, Travis CI keeps track of how many unique users triggered a build within a current billing period. At the end of the month, the total amount is used to calculate the user license charge. -##### Example 1: Credits, user-licenses counted within a month and charged at the end of the period, build with *n* build jobs +#### User License without Subscription Example - Scenario 1 +This scenario is an example of a user with Credits, user licenses counted within a month and charged at the end of the period.The user can build with *n* build jobs. > If a build is triggered, the system will check if this is a new unique user triggering build and if any potential included user-license allowance are exceeded: > @@ -414,7 +415,7 @@ See [credit costs associated with usage-based plan](#credit-costs-associated-wit > * dist: [focal] # jammy to be added later, xenial EOL, bionic EOL. -## Getting Help +## Contact Support If you have any questions or issues with the new VCS, please see our [Billing FAQ](/user/billing-faq/) or email [support@travis-ci.com](mailto:support@travis-ci.com) for help. diff --git a/user/browserstack.md b/user/browserstack.md index 02b05d2f20b..b389caf74e4 100644 --- a/user/browserstack.md +++ b/user/browserstack.md @@ -1,5 +1,5 @@ --- -title: Using BrowserStack with Travis CI +title: Use BrowserStack with Travis CI layout: en --- @@ -11,7 +11,7 @@ like Selenium, Karma and others. This add-on automatically sets up [BrowserStack Local][local-testing] which allows you to test your private servers alongside public URLs, using the BrowserStack cloud. To do this it uses the [BrowserStackLocal binary][local-binary] for your build platform. [BrowserStack Local][local-testing] establishes a secure connection between your Travis build container/VM -and BrowserStack servers. Local Testing also has support for firewalls, proxies and Active Directory. +and BrowserStack servers. Local testing also supports firewalls, proxies, and Active Directory. Once the secure connection is setup, all URLs work out of the box, including your webserver, local folders, as well as URLs with HTTPS. @@ -31,7 +31,7 @@ URLs with HTTPS. [browserstack-android-app-travis]: https://github.com/browserstack/browserstack-android-sample-app/blob/master/.travis.yml -## Setting up BrowserStack +## Setup BrowserStack Please sign up for a BrowserStack account if you haven't already; it's [free][open-source-browserstack] for Open Source projects. Once you have signed up get your username and access key from @@ -79,7 +79,7 @@ The add-on will **ALWAYS** create a Local Identifier for each local connection t testing framework, the Local Identifier must be added to the Selenium capabilities. The Local Identifier is exposed as an environment variable `BROWSERSTACK_LOCAL_IDENTIFIER`. You can use it to set -the Selenium capability. See the following example which uses Ruby's [selenium-webdriver][browserstack-ruby-bindings]: +the Selenium capability. See the following example, which uses Ruby's [selenium-webdriver][browserstack-ruby-bindings]: ```ruby require 'rubygems' @@ -89,7 +89,7 @@ require 'selenium-webdriver' caps = Selenium::WebDriver::Remote::Capabilities.new caps['browserstack.local'] = 'true' caps['browserstack.localIdentifier'] = ENV['BROWSERSTACK_LOCAL_IDENTIFIER'] -# Add other capabilities like browser name, version and os name, version +# Add other capabilities like browser name, version, and os name, version ... driver = Selenium::WebDriver.for(:remote, @@ -123,14 +123,14 @@ Once the app is uploaded to the BrowserStack servers the resulting app id will b caps['app'] = ENV['BROWSERSTACK_APP_ID'] ``` -Checkout the BrowserStack Android Sample App [.travis.yml][browserstack-android-app-travis] file. +Check out the BrowserStack Android Sample App [.travis.yml][browserstack-android-app-travis] file. ## Additional Options ### Proxy -Local testing also allows you to set the proxy host, port, username and password +Local testing also allows you to set the proxy host, port, username, and password through which all urls will be resolved: ```yaml @@ -150,7 +150,7 @@ addons: Some other options that are supported by the add on are, -- **forcelocal**: If this is set to true then all network traffic will be resolved via the Travis CI container/VM. +- **forcelocal**: If this is set to true, then all network traffic will be resolved via the Travis CI container/VM. - **only**: restricts Local testing access to the specified local servers and/or folders. Sample usage, 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. 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 -## 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. diff --git a/user/build-config-yaml.md b/user/build-config-yaml.md index 6b2ab179972..821a95fe2f9 100644 --- a/user/build-config-yaml.md +++ b/user/build-config-yaml.md @@ -1,5 +1,5 @@ --- -title: Using YAML as a build configuration language +title: Use YAML as a build configuration language layout: en --- @@ -11,7 +11,7 @@ imported using the [Build Config Imports](/user//) feature. This page documents a few noteworthy pieces of information about how Travis CI uses YAML. -## Usage of YAML anchors and aliases +## YAML anchors and aliases In more advanced use cases, in order to reduce repetition in large build config files a good practice is to use YAML's mechanism of defining and reusing shared @@ -50,10 +50,10 @@ deploy: branch: staging ``` -## Private keys as YAML anchors and aliases and external tooling +## Private keys as YAML anchors, aliases, and external tooling -In some cases it might be better to define a shared piece of YAML config in a -different place than where it is going to be used, e.g. in order to increase +In some cases, it might be better to define a shared piece of YAML config in a +different place than where it is going to be used, e.g., in order to increase readability. For example, one might define several jobs by reusing a shared portion of @@ -92,7 +92,7 @@ quoting version numbers so the YAML parser would interpret them as strings. is active for the given repository. For example, specifying a Node.js version as `node_js: 9.10` would have been -parsed into `9.0`, not matching the intended version. As a solution we would +parsed into `9.0`, not matching the intended version. As a solution, we would have recommended specifying `node_js: "9.10"` instead. With the introduction of a new YAML parser as part of the [Build Config Validation](/user/build-config-validation/) diff --git a/user/build-environment-updates.md b/user/build-environment-updates.md index e703ff00d8a..bce8366a8f8 100644 --- a/user/build-environment-updates.md +++ b/user/build-environment-updates.md @@ -4,7 +4,7 @@ layout: en --- -> Please note that the releases listed below are not exhaustive, and that there +> Please note that the releases listed below are not exhaustive and that there > are various means by which the behavior of a given build environment may > change. When in doubt, please request clarification via a [GitHub > issue](https://github.com/travis-ci/travis-ci/issues). diff --git a/user/build-feeds.md b/user/build-feeds.md index 612352fe127..14f838e0eba 100644 --- a/user/build-feeds.md +++ b/user/build-feeds.md @@ -9,7 +9,7 @@ One way to get updates on your builds is an Atom feed. You can read it in your favorite RSS reader, or programmatically consume it with scripts. -### Atom Feeds +## Atom Feeds Every repository on Travis CI has its own Atom feed, which includes all builds that were run on it, with both pull requests and normal commits. @@ -27,9 +27,9 @@ This URL returns a JSON representation by default, but you can get the Atom feed https://api.travis-ci.org/repos/travis-ci/travis-ci/builds.atom ``` -### Private Repositories +## Private Repositories -For private repositories you need a token to subscribe to +For private repositories, you need a token to subscribe to the feed. The API endpoint is different too: `https://api.travis-ci.com` 1. The token is the same as is used to fetch a build status image, which can be diff --git a/user/build-hacks.md b/user/build-hacks.md index 1f5b631f5f5..77ab87fdc35 100644 --- a/user/build-hacks.md +++ b/user/build-hacks.md @@ -6,7 +6,7 @@ layout: en -## Update/Downgrade Maven +## Update or Downgrade Maven The newer Maven isn't always stable compared to previous ones, potentially breaking plugins, This script downloads and installs the latest 3.1.1 release diff --git a/user/build-matrix.md b/user/build-matrix.md index dfde191f8ae..de02b4f4df1 100644 --- a/user/build-matrix.md +++ b/user/build-matrix.md @@ -42,7 +42,7 @@ env: ``` {: data-file=".travis.yml"} -## Listing individual jobs +## List individual jobs In addition, jobs can be specified by adding entries to the key `jobs.include`. @@ -68,7 +68,7 @@ jobs: > You can also have a look at the [Language](https://config.travis-ci.com/ref/language) section in our [Travis CI Build Config Reference](https://config.travis-ci.com/). -## Excluding Jobs +## Exclude Jobs The build matrix expansion sometimes produced unwanted combinations. In that case it can be convenient to exclude certain combinations using the key @@ -139,7 +139,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_. @@ -233,7 +233,7 @@ keys defined. In this example with a 3-job Python build matrix, each job in `jobs.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 @@ -254,7 +254,7 @@ script: env $EXTRA_TESTS ./test.py $TEST_SUITE ### Explicitly included jobs with only one element in the build matrix As a special case, if your build matrix has only one element _and_ you have -explicitly included jobs, matrix expansion is not done and the explicit jobs +explicitly included jobs, matrix expansion is not done, and the explicit jobs _completely_ define your build. For example: ```yaml @@ -286,7 +286,7 @@ jobs: ``` {: data-file=".travis.yml"} -## Rows that are Allowed to Fail +## Allow Rows to Fail You can define rows that are allowed to fail in the build matrix. Allowed failures are items in your build matrix that are allowed to fail without causing @@ -303,14 +303,14 @@ jobs: ``` {: data-file=".travis.yml"} -### Matching Jobs with `allow_failures` +### Match Jobs with allow_failures When matching jobs against the definitions given in `allow_failures`, _all_ conditions 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 `jobs.include`). -#### `allow_failures` Examples +#### Examples Consider @@ -355,7 +355,7 @@ jobs: Without the top-level `env`, no job will be allowed to fail. -## Fast Finishing +## Use Fast Finish If some rows in the build matrix are allowed to fail, the build won't be marked as finished until they have completed. @@ -369,7 +369,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. -## Using Different Programming Languages per Job +## Use Different Programming Languages per Job You can also use the `jobs.include` feature to have different languages for each job in your build. For example, ```yaml @@ -435,7 +435,7 @@ jobs: - <<: *shared_job ``` -In rare circumstances it can still be desirable to execute multiple jobs with the same config. In such cases, job uniqueness can be achieved by specifying any additional key, e.g. a job name: +In rare circumstances it can still be desirable to execute multiple jobs with the same config. In such cases, job uniqueness can be achieved by specifying any additional key, e.g., a job name: ```yaml _shared_job: &shared_job diff --git a/user/build-stages.md b/user/build-stages.md index 25230efa2ba..9a91da89d12 100644 --- a/user/build-stages.md +++ b/user/build-stages.md @@ -12,7 +12,7 @@ Build stages is a way to group jobs, and run jobs in each stage in parallel, but run one stage after another sequentially. In the simplest and most common use case, you can now make one job run _only_ -if several other, parallel jobs have completed successfully. +if several other parallel jobs have been completed successfully. Let’s say you want to test a library like a Ruby gem or an npm package against various runtime (Ruby or Node.js) versions in [parallel](/user/customizing-the-build/#build-matrix). @@ -21,7 +21,7 @@ completed successfully. Build stages make this possible. Of course, there are a lot more and a lot more elaborated use cases than this one. You can, for example, also use build stages to warm up dependency caches -in a single job on a first stage, then use the cache on several jobs on a +in a single job on the first stage, then use the cache on several jobs on a second stage. Or, you could generate a Docker image and push it first, then test it on several jobs in parallel. Or, you could run unit tests, deploy to staging, run smoke tests and only then deploy to production. @@ -35,11 +35,11 @@ Stages group jobs that run in parallel and different stages run sequentially. A stage is a group of jobs that are allowed to run in parallel. However, each one of the stages runs one after another and will only proceed, if all jobs in -the previous stage have passed successfully. If one job fails in one stage, all -other jobs on the same stage will still complete, but all jobs in subsequent +the previous stage has passed successfully. If one job fails in one stage, all +other jobs on the same stage will still complete, but all jobs in the subsequent stages will be canceled and the build fails. -You can configure as many jobs per stage as you need and you can have as many +You can configure as many jobs per stage as you need, and you can have as many stages as your delivery process requires. In the following example, we are running two jobs on the first stage called @@ -47,7 +47,7 @@ test, and then run a single third job on the second stage called deploy: ![Example screencast](/images/stages/stages.gif) -## How to Define Build Stages? +## Define Build Stages Here’s how you’d set up the build configuration for this in your `.travis.yml` file: @@ -67,13 +67,13 @@ jobs: This configuration creates the build from the screencast above. I.e., it creates a build with three jobs, two of which start in parallel in the first stage (named `test`), while the third job on the second stage (named `deploy`) starts -only after the test stage completes successfully. +only after the test stage is completed successfully. ## Build Config Reference You can find more information on the build config format for [build stages](https://config.travis-ci.com/ref/stages) in our [Travis CI Build Config Reference](https://config.travis-ci.com/). -## Naming Your Build Stages +## Name Build Stages Stages are identified by their names, which are composed of names and emojis. The first letter of a stage name is automatically capitalized for @@ -101,7 +101,7 @@ jobs: ``` {: data-file=".travis.yml"} -### Naming Your Jobs within Build Stages +### Name Jobs within Build Stages You can also name specific jobs within build stages. We recommend unique job names, but do not enforce it (though this may change in the future). Jobs defined in the `jobs.include` @@ -124,7 +124,7 @@ jobs: ## Build Stages and Build Matrix Expansion [Matrix expansion](/user/customizing-the-build/#build-matrix) -means that certain top level configuration keys expand into a matrix of jobs. +means that certain top-level configuration keys expand into a matrix of jobs. For example: @@ -142,7 +142,7 @@ jobs: ``` {: data-file=".travis.yml"} -This will run two jobs on Ruby 2.3 and 2.4 respectively first and assign these +This will run two jobs on Ruby 2.3 and 2.4, respectively, first and assign these to the default stage test. The third job on the deploy stage starts only after the test stage has completed successfully. @@ -151,7 +151,7 @@ that defines a matrix dimension. > In the example above, without explicitly setting `rvm: 2.4`, the `include`d job inherits `rvm: 2.3`. -## Specifying Stage Order and Conditions +## Specify Stage Order and Conditions You can specify the order for stages in the section `stages`: @@ -215,7 +215,7 @@ See [the S3 example](#sharing-files-between-jobs-via-s3) below. ## Examples -### Deploying to Heroku +### Deploy to Heroku An example with 5 stages: @@ -227,7 +227,7 @@ An example with 5 stages: You can find more [details here](/user/build-stages/deploy-heroku/). -### Deploying to Rubygems +### Deploy to Rubygems This example has two build stages: @@ -236,7 +236,7 @@ This example has two build stages: You can find more [details here](/user/build-stages/deploy-rubygems/). -### Deploying to NPM +### Deploy to NPM This example has two build stages: @@ -245,7 +245,7 @@ This example has two build stages: You can find more [details here](/user/build-stages/deploy-npm/). -### Deploying to GitHub Releases +### Deploy to GitHub Releases This example has two build stages: @@ -254,7 +254,7 @@ This example has two build stages: You can find more [details here](/user/build-stages/deploy-github-releases/). -### Combining build stages with matrix expansion +### Combine build stages with matrix expansion This example has two build stages: @@ -263,7 +263,7 @@ This example has two build stages: You can find more [details here](/user/build-stages/matrix-expansion/). -### Warming up a cache with expensive dependencies +### Warm up a cache with expensive dependencies This uses two build stages in order to warm up a cache with expensive dependencies, and optimize test run times: @@ -272,7 +272,7 @@ This uses two build stages in order to warm up a cache with expensive dependenci You can find more [details here](/user/build-stages/warm-cache/). -### Sharing a Docker image +### Share a Docker image This example has 2 build stages: @@ -281,7 +281,7 @@ This example has 2 build stages: You can find more [details here](/user/build-stages/share-docker-image/). -### Sharing files between jobs via S3 +### Share files between jobs via S3 This uses two build stages, sharing files from build stage 1 in stage 2: @@ -290,7 +290,7 @@ This uses two build stages, sharing files from build stage 1 in stage 2: You can find more [details here](/user/build-stages/share-files-s3/). -### Defining different steps on different stages +### Define different steps in different stages This example has 2 build stages: @@ -299,7 +299,7 @@ This example has 2 build stages: You can find more [details here](/user/build-stages/define-steps/). -### Defining steps using YAML aliases +### Define steps using YAML aliases This example uses YAML aliases to define steps. It has 3 build stages: diff --git a/user/caching.md b/user/caching.md index a6531eda42d..aa83ef223b4 100644 --- a/user/caching.md +++ b/user/caching.md @@ -1,5 +1,5 @@ --- -title: Caching Dependencies and Directories +title: Cache Dependencies and Directories layout: en --- @@ -20,14 +20,14 @@ Travis CI can cache content that does not often change, to speed up your build p > When creating the cache, symbolic links are not followed. > Consider caching the normal files and directories instead. -## Caching directories (Bundler, dependencies) +## Cache directories -Caches lets Travis CI store directories between builds, which is useful for storing +Caches lets Travis CI store directories (Bundler, dependencies) between builds, which is useful for storing dependencies that take longer to compile or download. -Note that if a third party project, such as Bundler, changes the location where they store dependencies you might need to specify the [directory manually](#arbitrary-directories) instead of using that particular [caching shortcut](#bundler). Please [contact us](mailto:support@travis-ci.com?subject=Caching) with any questions, issues or feedback. +Note that if a third-party project, such as Bundler, changes the location where they store dependencies, you might need to specify the [directory manually](#arbitrary-directories) instead of using that particular [caching shortcut](#bundler). Please [contact us](mailto:support@travis-ci.com?subject=Caching) with any questions, issues or feedback. -### Build phases +### Build Phases Travis CI uploads the cache after the `script` phase of the build, but before either `after_success` or `after_failure`. @@ -38,7 +38,7 @@ either `after_success` or `after_failure`. On Ruby and Objective-C projects, installing dependencies via [Bundler](http://bundler.io/) can make up a large portion of the build duration. Caching the bundle between builds drastically reduces the time a build takes to run. -#### Enabling Bundler caching +#### Enable Bundler caching To enable Bundler caching in your `.travis.yml`: @@ -50,21 +50,21 @@ cache: bundler Whenever you update your bundle, Travis CI will also update the cache. -#### Determining the bundle path +#### Determine the bundle path -Travis CI tries its best at determining the path bundler uses for storing dependencies. +Travis CI tries its best to determine the path bundler uses for storing dependencies. If you have [custom Bundler arguments](/user/languages/ruby/#custom-bundler-arguments-and-gemfile-locations), and these include the `--path` option, Travis CI will use that path. If `--path` is missing but `--deployment` is present, it will use `vendor/bundle`. -Otherwise it will automatically add the `--path` option. In this case it will either use the value of the environment variable `BUNDLE_PATH` or, if it is missing, `vendor/bundle`. +Otherwise, it will automatically add the `--path` option. In this case it will either use the value of the environment variable `BUNDLE_PATH` or, if it is missing, `vendor/bundle`. -#### Caching and overriding `install` step +#### Cache and override the install step Overriding the `install` step may cause the directive `cache: bundler` to miss the directory. In this case, observe where Bundler is installing the gems, and cache that directory using [cache.directories](#arbitrary-directories). -#### Cleaning up bundle +#### Bundle Clean up When you use @@ -79,11 +79,11 @@ In the cases where this is not desirable, you can use specify the [arbitrary dir to get around it. See [this GitHub issue](https://github.com/travis-ci/travis-ci/issues/2518) for more information. -### cache RVM Ruby version for non Ruby projects +### Cache RVM Ruby version for non-Ruby projects There are projects using machines not based on Ruby but having some Ruby executions. For example, a NodeJS application that has a Ruby functional test suite. -For these cases installing a version of ruby with `rvm install 2.3.1` may take more than 3 minutes. For these cases you can cache the ruby installation. +For these cases installing a version of ruby with `rvm install 2.3.1` may take more than 3 minutes. For these cases, you can cache the ruby installation. ```yaml cache: @@ -96,7 +96,7 @@ For these cases installing a version of ruby with `rvm install 2.3.1` may take m On Objective-C projects, installing dependencies via [CocoaPods](http://cocoapods.org) can take up a good portion of your build. Caching the compiled Pods between builds helps reduce this time. -#### Enabling CocoaPods caching +#### Enable CocoaPods caching You can enable CocoaPods caching for your repository by adding this to your *.travis.yml*: @@ -121,7 +121,7 @@ cache: Note that CocoaPods caching won't have any effect if you are already vendoring the Pods directory in your Git repository. -#### Determining the Podfile path +#### Determine the Podfile path By default, Travis CI will assume that your Podfile is in the root of the repository. If this is not the case, you can specify where the Podfile is like @@ -242,7 +242,7 @@ This caches `$HOME/.cargo` and `$TRAVIS_BUILD_DIR/target`. ### Arbitrary directories -You can cache arbitrary directories, such as Gradle, Maven, Composer and npm cache directories, between builds by listing them in your `.travis.yml`: +You can cache arbitrary directories, such as Gradle, Maven, Composer, and npm cache directories, between builds by listing them in your `.travis.yml`: ```yaml cache: @@ -275,10 +275,10 @@ Large files that are quick to install but slow to download do not benefit from c Docker images are not cached, because we provision a brand new virtual machine for every build. -## Fetching and storing caches +## Fetch and store caches - Travis CI fetches the cache for every build, including branches and pull requests. -- There is one cache per branch and language version / compiler version / JDK version / Gemfile location, etc. See [Caches and build matrices](#caches-and-build-matrices) for details. +- There is one cache per branch and language version/compiler version/JDK version/ Gemfile location, etc. See [Caches and build matrices](#caches-and-build-matrices) for details. - If a branch does not have its own cache, Travis CI fetches the default branch cache. - Only modifications made to the cached directories from normal pushes are stored. @@ -318,9 +318,9 @@ before_cache: Failure in this phase does not mark the job as failed. -### Clearing Caches +### Clear Caches -Sometimes you spoil your cache by storing bad data in one of the cached directories, or your cache can become invalid when language runtimes change. +Sometimes, you spoil your cache by storing bad data in one of the cached directories, or your cache can become invalid when language runtimes change. Use one of the following ways to access your cache and delete it if necessary: @@ -346,7 +346,7 @@ You can find more information on the build config format for [Caching](https://c ## Configuration -### Enabling multiple caching features +### Enable multiple caching features When you want to enable multiple caching features and the language supports them, you can list them as an array: @@ -386,7 +386,7 @@ install: ``` {: data-file=".travis.yml"} -### Explicitly disabling caching +### Explicitly disable caching You can explicitly disable all caching by setting the `cache` option to `false` in your *.travis.yml*: @@ -478,7 +478,7 @@ FAILED: tar -Pzcf /Users/travis/.casher/push.tgz /path/to/unreadable/directory tar: /path/to/unreadable/directory: Cannot stat: No such file or directory ``` -## How does caching work? +## How does caching work Travis CI saves an archive of all the directories listed in the configuration and uploads it to a storage provider, using a secure and protected URL, ensuring security and privacy of diff --git a/user/cc-menu.md b/user/cc-menu.md index e791648029e..e042b77a1e0 100644 --- a/user/cc-menu.md +++ b/user/cc-menu.md @@ -1,5 +1,5 @@ --- -title: Using CCMenu with Travis CI +title: Use CCMenu with Travis CI layout: en --- @@ -13,9 +13,9 @@ layout: en They were originally built for use with CruiseControl, but they work just as well with Travis CI, and you can use either to poll your Travis CI repositories and have their status show in the menu bar or tray. -### Using the CC feed with repositories +## Use CC feed with repositories -Open source repositories use the URL scheme `https://api.travis-ci.org/repos///cc.xml` to access the CruiseControl feed. They're served directly from our API. +Open-source repositories use the URL scheme `https://api.travis-ci.org/repos///cc.xml` to access the CruiseControl feed. They're served directly from our API. ![Screenshot of public CC feed](/images/Projects_20140305_165324_20140305_165329.jpg "Screenshot of public CC feed") @@ -43,7 +43,7 @@ must have the following form: - For closed source projects use `https://api.travis-ci.com/repos///cc.xml?token=&branch=`. -### Using the CC feed with accounts +## Use CC feed with accounts The above technique only allows you to add one repository at a time, which can be unwieldy for team members of organizations with several repositories they're working on. Rather than specify the owner and the repository, you can simply specify the owner and select a subset of projects. diff --git a/user/chrome.md b/user/chrome.md index 2d397656bc6..89312297edb 100644 --- a/user/chrome.md +++ b/user/chrome.md @@ -10,9 +10,9 @@ This addon supports both, Linux and [macOS](/user/reference/osx/) [build environ > For Linux, you must be running on [Ubuntu Xenial 16.04](https://docs.travis-ci.com/user/reference/xenial/) or later build environments. -## Selecting a Chrome version +## Select a Chrome version -You can install the `stable` or the `beta` version of Chrome but you can't select a specific numeric version. +You can install the `stable` or the `beta` version of Chrome, but you can't select a specific numeric version. ```yaml addons: @@ -35,7 +35,7 @@ In that case, you may see an error message like this: ``` 30 11 2017 13:35:42.245:ERROR [launcher]: Cannot start Chrome - [4315:4315:1130/133541.781662:FATAL:setuid_sandbox_host.cc(157)] The SUID sandbox helper binary was found, but is not configured correctly. Rather than run without sandboxing I'm aborting now. You need to make sure that /opt/google/chrome/chrome-sandbox is owned by root and has mode 4755. + [4315:4315:1130/133541.781662:FATAL:setuid_sandbox_host.cc(157)] The SUID sandbox helper binary was found, but is not configured correctly. Rather than run without sandboxing, I'm aborting now. You need to make sure that /opt/google/chrome/chrome-sandbox is owned by root and has mode 4755. ``` or like this: diff --git a/user/code-climate.md b/user/code-climate.md index 63d6c60caff..8e9e3e753b5 100644 --- a/user/code-climate.md +++ b/user/code-climate.md @@ -1,5 +1,5 @@ --- -title: Using Code Climate with Travis CI +title: Use Code Climate with Travis CI layout: en --- @@ -15,12 +15,12 @@ integrates neatly with Travis CI. As a Travis CI customer, [you get 20% off for your first three months](https://codeclimate.com/partners/travisci)! -## Measuring Test Coverage with Code Climate +## Measure Test Coverage with Code Climate -Test coverage integration can be used on both private and open source projects, +Test coverage integration can be used on both private and open-source projects, and is free for open source. -Follow their guide on [Configuring Test Coverage](https://docs.codeclimate.com/v1.0/docs/getting-started-test-coverage). In that guide you'll find: +Follow their guide on [Configuring Test Coverage](https://docs.codeclimate.com/v1.0/docs/getting-started-test-coverage). In that guide, you'll find: * links to [parallel tests support](https://docs.codeclimate.com/v1.0/docs/configuring-test-coverage#section-parallel-tests-and-multiple-test-suites) setup, * [troubleshooting 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: diff --git a/user/conditional-builds-stages-jobs.md b/user/conditional-builds-stages-jobs.md index 054cb301591..6f93ccebd74 100644 --- a/user/conditional-builds-stages-jobs.md +++ b/user/conditional-builds-stages-jobs.md @@ -1,9 +1,9 @@ --- -title: Conditional Builds, Stages and Jobs +title: Conditional Builds, Stages, and Jobs layout: en --- -You can filter out and reject builds, stages and jobs by specifying conditions in your build configuration (your `.travis.yml` file). +You can filter out and reject builds, stages, and jobs by specifying conditions in your build configuration (your `.travis.yml` file). You can find more information on the build config format in our [Travis CI Build Config Reference](https://config.travis-ci.com/ref/job/if/condition). @@ -84,11 +84,9 @@ jobs: ``` {: data-file=".travis.yml"} -## Specifying Conditions +## Specify and Test Conditions Please see [Conditions](/user/conditions-v1) for examples and a specification of the conditions syntax. -## Testing Conditions - Conditions can be tested using the `travis-conditions` command. Learn how to [test your conditions](/user/conditions-testing). diff --git a/user/conditions-v0.md b/user/conditions-v0.md index 8a2fa0f9f07..17484e924b4 100644 --- a/user/conditions-v0.md +++ b/user/conditions-v0.md @@ -12,7 +12,7 @@ specifying conditions in your build configuration (your `.travis.yml` file). See [Conditional Builds, Stages, and Jobs](/user/conditional-builds-stages-jobs/) for details. -## Specifying conditions +## Specify conditions The condition can be specified using a boolean language as follows: @@ -29,9 +29,9 @@ A term is defined as: All keywords (such as `AND`, `OR`, `NOT`, `IN`, `IS`, attributes, and functions) are case-insensitive. -### Left hand side +### Left-hand side -The left hand side part can either be a known attribute or a function call. +The left-hand side part can either be a known attribute or a function call. Known attributes are: @@ -52,7 +52,7 @@ The function `env` currently only supports environment variables that are given in your build configuration (e.g. on `env` or `env.global`), not environment variables specified in your repository settings. -### Right hand side +### Right-hand side It is currently not possible to compare function calls. This means that if you try to evaluate something similar to: diff --git a/user/coveralls.md b/user/coveralls.md index 729b72f95fe..6b5eb2797b7 100644 --- a/user/coveralls.md +++ b/user/coveralls.md @@ -15,17 +15,17 @@ Configuring your Travis CI build to send results to Coveralls always follows the We'll show you how to do this for Ruby in the following example. -## Using Coveralls with Ruby +## Use Coveralls with Ruby Using Coveralls with Ruby on Travis CI is one of the configurations Coveralls support out of the box [have documentation for](https://coveralls.zendesk.com/hc/en-us/articles201769485-Ruby-Rails). -### 1. Add your repository to Coveralls +### Add your repository to Coveralls 1. [Sign in to Coveralls](https://coveralls.io/authorize/github) with your *GitHub* account. 2. Click *ADD REPOS* in the menu. 3. Click the ![Add your repository to Coveralls](/images/coveralls-button.png) button next to your repository. -### 2. Install the Coveralls Gem +### Install the Coveralls Gem Add the Coveralls Gem to your `Gemfile`: @@ -37,9 +37,9 @@ gem 'coveralls', require: false You might need to update your `Gemfile.lock` as well. -### 3. Add Coveralls to your test suite +### Add Coveralls to your test suite -Add Coveralls to the top your test suite, before you `require` any application code: +Add Coveralls to the top of your test suite before you `require` any application code: ```ruby # ./spec/spec_helper.rb @@ -52,7 +52,7 @@ Coveralls.wear! After those three steps, the next time you push a commit, you'll be able to look up your [code coverage statistics](https://coveralls.io)! -## Coveralls and private repositories +## Coveralls and Private repositories If you're using Coveralls with Travis CI for private repositories, edit `.coveralls.yml`: @@ -61,7 +61,7 @@ service_name: travis-pro ``` {: data-file=".coveralls.yml"} -## Using Coveralls with other languages +## Use Coveralls with other languages Coveralls have documentation for many other programming languages: @@ -84,7 +84,7 @@ Coveralls have documentation for many other programming languages: - [Ruby / Rails](https://docs.coveralls.io/ruby-on-rails) - [Swift](https://docs.coveralls.io/swift) -## Using Coveralls with Docker builds +## Use Coveralls with Docker builds If you're using Docker in builds, ensure that the necessary [environment variables](https://docs.travis-ci.com/user/environment-variables/) are exposed to the container: ```sh diff --git a/user/coverity-scan.md b/user/coverity-scan.md index 8ed7eee835f..4079a48e1e2 100644 --- a/user/coverity-scan.md +++ b/user/coverity-scan.md @@ -1,5 +1,5 @@ --- -title: Using Coverity Scan with Travis CI +title: Use Coverity Scan with Travis CI layout: en --- @@ -14,13 +14,13 @@ Static analysis is a set of processes for finding source code defects and vulner In static analysis, the code under examination is not executed. As a result, test cases and specially designed input datasets are not required. Examination for defects and vulnerabilities is not limited to the lines of code that are run during some number of executions of the code, but can include all lines of code in the codebase. -Additionally, Coverity's implementation of static analysis can follow all the possible paths of execution through source code (including interprocedurally) and find defects and vulnerabilities caused by the conjunction of statements that are not errors independent of each other. +Additionally, Coverity's implementation of static analysis can follow all the possible paths of execution through source code (including interprocedural) and find defects and vulnerabilities caused by the conjunction of statements that are not errors independent of each other. See more details about Coverity Scan in the [FAQ](https://scan.coverity.com/faq). ## Build Submission Frequency -It's probably overkill to run static analysis on each and every commit of your project. To increase availability of the free service to more projects, the addon is designed by default to run analysis on a per-branch basis. We recommend you create a branch named `coverity_scan`, which you can merge into whenever you would like to trigger analysis. See the [FAQ](https://scan.coverity.com/faq#frequency) for information about build submission frequency. +It's probably overkill to run static analysis on each and every commit of your project. To increase the availability of the free service to more projects, the addon is designed by default to run analysis on a per-branch basis. We recommend you create a branch named `coverity_scan`, which you can merge into whenever you would like to trigger analysis. See the [FAQ](https://scan.coverity.com/faq#frequency) for information about build submission frequency. ## macOS support @@ -54,9 +54,9 @@ The Coverity Scan addon doesn't work on macOS versions with the SIP feature enab 13. Visit [Travis CI](https://travis-ci.org) directly, or by clicking the button on your `Project Settings` page, which will appear once the project is activated on Travis CI. -### travis.yml +### The travis.yml file -From your project page on Coverity Scan, select the Travis CI tab. You'll see a snippet of YAML to be copied over to your `.travis-ci` file. Note that this is an example, and might require some tweaking for the build to run properly. +From your project page on Coverity Scan, select the Travis CI tab. You'll see a snippet of YAML that will be copied over to your `.travis-ci` file. Note that this is an example, and might require some tweaking for the build to run properly. ```yaml env: @@ -103,11 +103,11 @@ cd my_project travis encrypt COVERITY_SCAN_TOKEN=project_token_from_coverity_scan ``` -Then copy the resulting line as shown in the YAML example. +Then, copy the resulting line as shown in the YAML example. ## Environment Variables -When defined, the following environment variables overrides their +When defined, the following environment variables override their corresponding configuration values in `.travis.yml`: 1. `COVERITY_SCAN_NOTIFICATION_EMAIL` @@ -119,9 +119,9 @@ corresponding configuration values in `.travis.yml`: The next time you commit to the appropriate branch, the Coverity Scan build process will automatically run analysis and upload the results. Please note that this analysis takes the place of the normal CI run. You should merge the same changes to another branch to run your tests. -### Disabling the Subsequent Test Run +### Disable the Subsequent Test Run -Due to the way that Travis CI addons operate, your standard script stage (i.e. your tests) will run after the Coverity Scan analysis completes. In order to avoid this, you can modify your `script` directive in `.travis.yml`. +Due to the way that Travis CI addons operate, your standard script stage (i.e., your tests) will run after the Coverity Scan analysis completes. In order to avoid this, you can modify your `script` directive in `.travis.yml`. The `COVERITY_SCAN_BRANCH` environment variable will be set to `1` when the Coverity Scan addon is in operation. Therefore, you might change your script from 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`. 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/). diff --git a/user/database-setup.md b/user/database-setup.md index e0bcac350e3..6ae6c167cca 100644 --- a/user/database-setup.md +++ b/user/database-setup.md @@ -1,5 +1,5 @@ --- -title: Setting up Databases and Services +title: Setup Databases and Services layout: en redirect_from: @@ -12,7 +12,7 @@ You can check databases and services availability in the build environment you a All services use default settings, with the exception of some added users and relaxed security settings. -## Starting Services +## Start Services Travis CI environments do not start services by default, to make more RAM available to build scripts. Start services by adding them to the `services:` section of your @@ -61,7 +61,7 @@ and a blank password. You can also [install MySQL 5.7](#mysql-57) on Ubuntu Trusty. -### Using MySQL with ActiveRecord +### Use MySQL with ActiveRecord `config/database.yml` example for Ruby projects using ActiveRecord: @@ -74,7 +74,7 @@ test: ``` {: data-file="config/database.yml"} -You might have to create the `myapp_test` database first, for example in +You might have to create the `myapp_test` database first, for example, in the `before_install` step in `.travis.yml`: ```yaml @@ -83,14 +83,14 @@ before_install: ``` {: data-file=".travis.yml"} -### Note on `test` database +### Note on test database In older versions of MySQL, the Ubuntu package provided the `test` database by default. This is no longer the case as of version 5.5.37 due to security concerns (See [change log](http://changelogs.ubuntu.com/changelogs/pool/main/m/mysql-5.5/mysql-5.5_5.5.47-0ubuntu0.12.04.1/changelog)). -The `test` database may be created if needed, for example in the +The `test` database may be created if needed, for example, in the `before_install` step in `.travis.yml`: ```yaml @@ -116,7 +116,7 @@ services: ``` {: data-file=".travis.yml"} -### Using PostgreSQL in your Builds +### Use PostgreSQL The default user for accessing the local PostgreSQL server is `postgres` with a blank password. @@ -145,7 +145,7 @@ before_script: ``` {: data-file=".travis.yml"} -### Using a different PostgreSQL Version +### Use a different PostgreSQL Version The Travis CI build environments use version 9.2 by default on Trusty images, but other versions from the official [PostgreSQL APT repository](http://apt.postgresql.org) are @@ -183,7 +183,7 @@ For PostgreSQL 10 you must specify the packages to install it and the user is `postgres` and the port is 5432. For PostgreSQL 11 and 12 you must specify the packages, but the user is `travis` and the port is 5433 instead. So you must specify the PGPORT -### Using PostGIS +### Use PostGIS Install the version of PostGIS that matches your PostgreSQL version, and activate the PostGIS extension using: @@ -202,7 +202,7 @@ before_script: The Travis CI build environment comes with a number of pre-installed locales, but you can also install additional ones, should you require them. -#### Installing Locales +#### Install Locales The following example shows the lines you need to add to your `.travis.yml` to install the Spanish language pack. @@ -217,7 +217,7 @@ before_install: ``` {: data-file=".travis.yml"} -### Using `pg_config` +### Use pg_config If your builds rely on the `pg_config` command, you need to install an additional apt package `postgresql-server-dev-X.Y`, where `X.Y` matches the version of PostgreSQL @@ -306,7 +306,7 @@ before_script: ``` {: data-file=".travis.yml"} -### MongoDB does not immediately accept connections +### Troubleshoot MongoDB accepting connections A few users have reported that MongoDB does not accept connections when from the build script. @@ -424,7 +424,7 @@ services: Cassandra is downloaded from the [Apache apt repository](http://www.apache.org/dist/cassandra/debian) and uses the default configuration. It is available on 127.0.0.1. -### Installing older versions of Cassandra +### Install older versions of Cassandra Use the following example to install a specific older version of Cassandra in your `.travis.yml`: @@ -468,7 +468,7 @@ before_script: ElasticSearch uses the default configuration and is available on 127.0.0.1. -### Installing specific versions of ElasticSearch +### Install specific ElasticSearch version You can overwrite the installed ElasticSearch with the version you need (e.g., 7.6.2) with the following: @@ -520,7 +520,7 @@ When enabled, RethinkDB will start on `localhost` at the default port (`28015`). If you need to run multiple builds using different databases, you can configure environment variables and a `before_script` or `before_install` line to create a build matrix. -### Using environment variables and a before_script step +### Use environment variables and a before_script step Use the `DB` environment variable to specify the name of the database configuration. Locally you would run: @@ -528,7 +528,7 @@ Use the `DB` environment variable to specify the name of the database configurat DB=postgres [commands to run your tests] ``` -On Travis CI you want to create a [build matrix](/user/customizing-the-build/#build-matrix) of three builds each having the `DB` variable exported with a different value, and for that you can use the `env` option in `.travis.yml`: +On Travis CI you want to create a [build matrix](/user/customizing-the-build/#build-matrix) of three builds each having the `DB` variable exported with a different value, and for that, you can use the `env` option in `.travis.yml`: ```yaml env: @@ -558,7 +558,7 @@ before_script: For a real example, see [doctrine/doctrine2 .travis.yml](https://github.com/doctrine/doctrine2/blob/master/.travis.yml). -### Using Ruby +### Use Ruby Another approach is put all database configuration in one YAML file (`test/database.yml` for example), like ActiveRecord does: diff --git a/user/deepsource.md b/user/deepsource.md index f82ad4cf1e0..566868ac52a 100644 --- a/user/deepsource.md +++ b/user/deepsource.md @@ -1,11 +1,11 @@ --- -title: Reporting artifacts to DeepSource +title: Report Artifacts to DeepSource layout: en --- [DeepSource](https://deepsource.io) is a source code analysis tool that flags anti-patterns, security vulnerabilities, style violations, and provides actionable issues and metrics. -DeepSource's analyzers accepts artifacts pushed from external sources via the CLI. An example artifact would be test coverage file. +DeepSource's analyzers accepts artifacts pushed from external sources via the CLI. An example artifact would be a test coverage file. The following guide walks through how to push an artifact as part of the build process. @@ -39,7 +39,7 @@ Refer to [DeepSource CLI documentation](https://deepsource.io/docs/config/cli.ht ## Example -The following `.travis.yml` configuration pushes python test coverage to DeepSource's `test-coverage` analyzer. +The following `.travis.yml` configuration pushes Python test coverage to DeepSource's `test-coverage` analyzer. ```yaml # Set build language to Python diff --git a/user/deployment.md b/user/deployment.md index dfc14cf6613..d122d2fb511 100644 --- a/user/deployment.md +++ b/user/deployment.md @@ -18,7 +18,7 @@ Continuous Deployment to the following providers is supported: To deploy to a custom or unsupported provider, use the [after-success build stage](/user/deployment/custom/) or [script provider](/user/deployment/script/). -## Uploading Files and skip_cleanup +## Upload Files and the skip_cleanup method When deploying files to a provider, prevent Travis CI from resetting your working directory and deleting all changes made during the build ( `git stash @@ -30,7 +30,7 @@ deploy: ``` {: data-file=".travis.yml"} -## Deploying to Multiple Providers +## Deploy to Multiple Providers Deploying to multiple providers is possible by adding the different providers to the `deploy` section as a list. For example, if you want to deploy to both @@ -47,7 +47,7 @@ deploy: ``` {: data-file=".travis.yml"} -## Conditional Releases with `on:` +## Conditional Releases Set your build to deploy only in specific circumstances by configuring the `on:` key for any deployment provider. @@ -96,7 +96,7 @@ Use the following options to configure conditional deployment: This also causes the `branch` condition to be ignored. * When `tags` is not set, or set to any other value, `$TRAVIS_TAG` is ignored, and the `branch` condition is considered, if it is set. -### Examples of Conditional Deployment +### Conditional Deployment Example This example deploys to Appfog only from the `staging` branch when the test has run on Node.js version 0.11. @@ -167,7 +167,7 @@ deploy: ``` {: data-file=".travis.yml"} -### Adding a deployment provider +### Add a Deployment Provider We are working on adding support for other PaaS providers. If you host your application with a provider not listed here and you would like to have Travis CI automatically deploy your application, please [get in touch](mailto:support@travis-ci.com). diff --git a/user/deployment/anynines.md b/user/deployment/anynines.md index 24e4104b411..529bbbc69e1 100644 --- a/user/deployment/anynines.md +++ b/user/deployment/anynines.md @@ -7,11 +7,11 @@ deploy: v1 You now have the amazing ability to deploy directly to [anynines](http://www.anynines.com/) after a successful build on Travis CI -## Getting on the Edge +## Enable Edge Version Proper anynines support is currently included only in the edge version of Travis. See how to enable it via the `.travis.yml` below. -## The Easy Way +## Grab the code and Deploy Go Grab the Travis gem from [GitHub](https://github.com/travis-ci/travis.rb) and run this command: @@ -21,7 +21,7 @@ You will be asked to answer a few simple questions about your anynines setup and Open up your newly created `.travis.yml` and add `edge: true` to enable the deploy tool. See yml below for an example of how to do this. -## The Slightly Harder Way +## Write the code and Deploy So you want to write your own `.travis.yml`, fine. Here is the minimum required to get up and running diff --git a/user/deployment/atlas.md b/user/deployment/atlas.md index 4c03b97c01d..0fe358dac88 100644 --- a/user/deployment/atlas.md +++ b/user/deployment/atlas.md @@ -1,5 +1,5 @@ --- -title: Atlas deployment +title: Atlas Deployment layout: en deploy: v1 @@ -23,7 +23,7 @@ To deploy your application to Atlas: ``` {: data-file=".travis.yml"} -## Including or Excluding Files +## Include or Exclude Files You can include and exclude files by adding the `include` and `exclude` entries to `.travis.yml`. Both are glob patterns of files or directories to include or exclude, and may be specified multiple times. If there is a conflict, excludes have precedence over includes. @@ -37,7 +37,7 @@ deploy: ``` {: data-file=".travis.yml"} -### Using your Version Control System +### Use the Version Control System Get the lists of files to exclude and include from your version control system (Git, Mercurial or Subversion): @@ -50,7 +50,11 @@ deploy: ## Other Deployment Options -### Specifying the Address of the Atlas Server: +The following section lists other deployment options that are available. + +### Specify the Atlas Server Address + +Use the following code to specify the Atlas Server Address: ```yaml deploy: @@ -59,7 +63,7 @@ deploy: ``` {: data-file=".travis.yml"} -### Adding Custom Metadata +### Add Custom Metadata Add one or more items of metadata: diff --git a/user/deployment/azure-web-apps.md b/user/deployment/azure-web-apps.md index f3d68454b4f..559e2cc6b9a 100644 --- a/user/deployment/azure-web-apps.md +++ b/user/deployment/azure-web-apps.md @@ -28,7 +28,7 @@ To define variables in Repository Settings, make sure you're logged in, navigate
Environment Variables in the Repository Settings
-### Fetch Deployment Progress and Logs +## Fetch Deployment Progress and Logs The Azure Web App provider can print Azure's deployment progress to your Travis log using the `verbose` option. However, Git will print your password if the authentication fails (it will not if you provide a correct user/password combination). @@ -38,7 +38,7 @@ deploy: verbose: true ``` -### Branch to deploy from +## Deployment Branch By default, Travis CI will only deploy from your **master** branch. @@ -61,7 +61,7 @@ deploy: Builds triggered from Pull Requests will never trigger a deploy. -### Note on `.gitignore` +### The .gitignore method As this deployment strategy relies on `git`, be mindful that the deployment will honor `.gitignore`. @@ -70,7 +70,7 @@ If your `.gitignore` file matches something that your build creates, use [`before_deploy`](#running-commands-before-and-after-deploy) to change its content. -### Running commands before and after deploy +### Run Commands Before or After Deploy Sometimes you want to run commands before or after deploying. You can use the `before_deploy` and `after_deploy` stages for this. These will only be triggered if Travis CI is actually deploying. @@ -84,7 +84,7 @@ after_deploy: ``` {: data-file=".travis.yml"} -### Deploying to slots +## Deploy to slots You might need to deploy multiple branches to different slots. You can set multiple providers to deploy to specific slots. The following configuration would deploy the `master` branch to the `myapp-staging` slot and the `develop` branch to the `myapp-develop` slot. In order to use slots you'll need to [set up staging environments for web apps in Azure App Service](https://azure.microsoft.com/en-us/documentation/articles/web-sites-staged-publishing/). diff --git a/user/deployment/bintray.md b/user/deployment/bintray.md index f31685b1f79..88bcee5c883 100644 --- a/user/deployment/bintray.md +++ b/user/deployment/bintray.md @@ -20,7 +20,7 @@ deploy: ``` {: data-file=".travis.yml"} -### Encrypt your API key +## Encrypt your API key It is recommended that you encrypt your api key. You can encrypt this key using the `travis` command line client and this command: @@ -35,8 +35,7 @@ $ travis encrypt ab012cd345678901234e456fa7bc89def01a23b4 --add deploy.key ``` - -### Branch to deploy from +## Deployment Branch By default, Travis CI will only deploy from your **master** branch. @@ -66,7 +65,7 @@ Builds triggered from Pull Requests will never trigger a deploy. You can deploy only when certain conditions are met. See [Conditional Releases with `on:`](/user/deployment#conditional-releases-with-on). -### Running commands before and after deploy +### Run Commands Before or After Deploy Sometimes you want to run commands before or after deploying. You can use the `before_deploy` and `after_deploy` stages for this. These will only be triggered if Travis CI is actually deploying. @@ -80,7 +79,7 @@ after_deploy: ``` {: data-file=".travis.yml"} -### `dry_run` option +## Use the dry_run option For testing deployment configuration, you can add `dry_run: true` to prevent connecting to the Bintray server: @@ -92,7 +91,7 @@ deploy: ``` {: data-file=".travis.yml"} -### Descriptor file example +## Descriptor file example The descriptor is in JSON file format in three sections: @@ -137,7 +136,7 @@ The descriptor is in JSON file format in three sections: } ``` -#### Package Section +### Package Section Bintray package information. The following information is mandatory on open source projects: @@ -148,11 +147,11 @@ Bintray package information. The following information is mandatory on open sour - `licenses` is the [Bintray licences](https://bintray.com/docs/api/#_licenses){: data-proofer-ignore=""}, which is a list with at least one item. -#### Version Section +### Version Section Package version information. In case the version already exists on Bintray, only the name field is mandatory. -#### Files Section +### Files Section Configure the files you would like to upload to Bintray and their upload path. @@ -169,7 +168,7 @@ In the example above, the following files are uploaded: **Note:** Regular expressions defined as part of the `includePattern` and `excludePattern` properties must be wrapped with brackets. -#### Debian Upload +### Debian Upload When artifacts are uploaded to a Debian repository on Bintray using the Automatic index layout, the Debian distribution information is required and must be specified. The information is specified in the descriptor file by the matrixParams as part of the files closure as shown in the following example: @@ -186,7 +185,7 @@ When artifacts are uploaded to a Debian repository on Bintray using the Automati ] ``` -#### Overwriting Existing Files +### Overwrite Existing Files If an artifact by a given name already exists in the Bintray repository, then by default it is not overwritten. If you want to replace the existing file, define the `override` key in your matrix properties: diff --git a/user/deployment/bitballoon.md b/user/deployment/bitballoon.md index bfccb9c9f22..809a1b219ff 100644 --- a/user/deployment/bitballoon.md +++ b/user/deployment/bitballoon.md @@ -22,7 +22,7 @@ deploy: ``` {: data-file=".travis.yml"} -## Deploying a specific directory +## Deploy a specific directory To deploy a specific directory to BitBalloon, use the `local-dir` key: @@ -37,9 +37,9 @@ deploy: ``` {: data-file=".travis.yml"} -## Running commands before and after deploy +## Run Commands Before or After Deploy -Sometimes you want to run commands before or after deploying. You can use +Sometimes, you want to run commands before or after deploying. You can use the `before_deploy` and `after_deploy` stages for this. These will only be triggered if Travis CI is actually deploying. diff --git a/user/deployment/bluemixcloudfoundry.md b/user/deployment/bluemixcloudfoundry.md index d2bb4725da8..a47add7437b 100644 --- a/user/deployment/bluemixcloudfoundry.md +++ b/user/deployment/bluemixcloudfoundry.md @@ -7,7 +7,7 @@ deploy: v1 You now have the ability to deploy directly to [IBM Bluemix](http://bluemix.net/) after a successful build on Travis CI. -## The Easy Way +## Grab the code and Deploy Go grab [the Travis gem from GitHub](https://github.com/travis-ci/travis.rb) and run this command: @@ -17,7 +17,7 @@ travis setup bluemixcloudfoundry You will need the following information about your Bluemix environment: username, password, organization, space, and region. Available Bluemix regions are US South (ng) London (eu-gb), and Sydney (au-syd). Travis offers to encrypt your password, and will take care of the rest. Learn more about [managing organizations and spaces](http://bluemix.net/docs/admin/orgs_spaces.html). -## The Slightly Harder Way +## Write the code and Deploy You can also directly edit your `.travis.yml`. Insert the following to get up and running: diff --git a/user/deployment/boxfuse.md b/user/deployment/boxfuse.md index 4b67736c9de..fd2c99d3b30 100644 --- a/user/deployment/boxfuse.md +++ b/user/deployment/boxfuse.md @@ -25,11 +25,11 @@ travis encrypt --add deploy.user travis encrypt --add deploy.secret ``` -Alternatively you can pass in your credentials using Travis CI [encrypted environment variables](/user/environment-variables/#encrypting-environment-variables) called `BOXFUSE_USER` and `BOXFUSE_SECRET`. You can define these variables either using the Travis CI command line client or directly in the Travis CI repository settings UI. +Alternatively, you can pass in your credentials using Travis CI [encrypted environment variables](/user/environment-variables/#encrypting-environment-variables) called `BOXFUSE_USER` and `BOXFUSE_SECRET`. You can define these variables either using the Travis CI command line client or directly in the Travis CI repository settings UI. Finally you can also fully configure Boxfuse by placing a `boxfuse.conf` file in the root of your repository. More info about configuration in the [Boxfuse Command-line Client documentation](https://boxfuse.com/docs/commandline/). -### Specifying the Boxfuse app and image version +## Specify the Boxfuse app and image version By default Boxfuse will detect the app and the version automatically from the name of your payload file. You can override this like this: @@ -45,9 +45,9 @@ deploy: You can also use Travis CI [environment variables](/user/environment-variables/) like `TRAVIS_BUILD_NUMBER` to assign a version to the image. Ex.: `image: "myapp:$TRAVIS_BUILD_NUMBER"` -### Specifying the Boxfuse environment +## Specify the Boxfuse Environment -By default Boxfuse will deploy to your `test` environment. You can override this like this: +By default, Boxfuse will deploy to your `test` environment. You can override this like this: ```yaml deploy: @@ -59,7 +59,7 @@ deploy: ``` {: data-file=".travis.yml"} -### Using alternative configuration files +## Alternative configuration files You can also fully configure Boxfuse by placing a `boxfuse.conf` file in the root of your repository. You can specify an alternative configuration file like this: @@ -70,7 +70,7 @@ deploy: ``` {: data-file=".travis.yml"} -### Specifying custom arguments +## Specify custom arguments If the [Boxfuse Client](https://boxfuse.com/docs/commandline) functionality you need is not included here, you can pass additional arguments to the Boxfuse executable by using the `extra_args` parameter: @@ -81,6 +81,6 @@ deploy: ``` {: data-file=".travis.yml"} -### Further information +## Further information Go to the [Boxfuse website](https://boxfuse.com) to learn more about Boxfuse and how to configure it. diff --git a/user/deployment/cargo.md b/user/deployment/cargo.md index 8f2bd98f104..8f4d1fac0c7 100644 --- a/user/deployment/cargo.md +++ b/user/deployment/cargo.md @@ -8,7 +8,7 @@ Travis CI can automatically release your Rust crate to [crates.io][] after a successful build. (Alternative registries may be supported in the future). -A minimal `.travis.yml` configuration for publishing to [crates.io][] looks like: +A minimal `.travis.yml` configuration for publishing to [crates.io][] looks as follows: ```yaml language: rust @@ -18,7 +18,7 @@ deploy: ``` {: data-file=".travis.yml"} -## crates.io API token +## Obtain a crates.io API token An API token can be obtained by logging in to your [crates.io][] account, and generating a new token at . @@ -69,18 +69,18 @@ deploy: Builds triggered from Pull Requests will never trigger a release. -## Releasing build artifacts +## Release build artifacts -After your tests ran and before the release, Travis CI will clean up any +After your tests run and before the release, Travis CI will clean up any additional files and changes you made. This is necessary because Cargo will refuse to publish crates from a dirty working directory (an option to allow this may be added to this provider in the future). -## Running commands before and after deploy +## Run Commands Before or After Deploy -Sometimes you want to run commands before or after deploying. You can use the +Sometimes, you want to run commands before or after deploying. You can use the `before_deploy` and `after_deploy` stages for this. These will only be triggered if Travis CI is actually deploying. diff --git a/user/deployment/catalyze.md b/user/deployment/catalyze.md index 8f3ee8c7f44..5c988230ed3 100644 --- a/user/deployment/catalyze.md +++ b/user/deployment/catalyze.md @@ -58,7 +58,7 @@ Before configuring your `.travis.yml` you need to: ``` {: data-file=".travis.yml"} -### Deploying a subset of your Files +## Deploy a subset of your Files To only deploy the `build` folder, for example, set `skip_cleanup: true` and path: "build": @@ -72,9 +72,9 @@ deploy: ``` {: data-file=".travis.yml"} -### Running commands before and after deploy +## Run Commands Before or After Deploy -Sometimes you want to run commands before or after deploying. You can use +Sometimes, you want to run commands before or after deploying. You can use the `before_deploy` and `after_deploy` stages for this. These will only be triggered if Travis CI is actually deploying. diff --git a/user/deployment/chefsupermarket.md b/user/deployment/chefsupermarket.md index c9e700870e4..e8c47b096dd 100644 --- a/user/deployment/chefsupermarket.md +++ b/user/deployment/chefsupermarket.md @@ -1,5 +1,5 @@ --- -title: Chef Supermarket deployment +title: Chef Supermarket Deployment layout: en deploy: v1 @@ -8,7 +8,7 @@ deploy: v1 Travis CI can automatically deploy your cookbook to [Chef Supermarket](https://supermarket.chef.io/) after a successful build. -To deploy to Chef Supermarket add your Chef Supermarket `user_id`, your +To deploy to Chef Supermarket, add your Chef Supermarket `user_id`, your [encrypted](/user/encrypting-files/) Chef Supermarket client key and the [`cookbook_category`](https://docs.getchef.com/knife_cookbook_site.html#id12) to your `.travis.yml`: diff --git a/user/deployment/cloud66.md b/user/deployment/cloud66.md index d7163aafcd0..af0ab4650b9 100644 --- a/user/deployment/cloud66.md +++ b/user/deployment/cloud66.md @@ -25,7 +25,7 @@ travis setup cloud66 Keep in mind that the above command has to run in your project directory, so it can modify the `.travis.yml` for you. -### Branch to deploy from +## Deployment Branch By default, Travis CI will only deploy from your **master** branch. @@ -52,14 +52,14 @@ deploy: Builds triggered from Pull Requests will never trigger a deploy. -### Conditional Deploys +## Conditional Deploys You can deploy only when certain conditions are met. See [Conditional Releases with `on:`](/user/deployment#conditional-releases-with-on). -### Running commands before and after deploy +## Run Commands Before or After Deploy -Sometimes you want to run commands before or after deploying. You can use the `before_deploy` and `after_deploy` stages for this. These will only be triggered if Travis CI is actually deploying. +Sometimes, you want to run commands before or after deploying. You can use the `before_deploy` and `after_deploy` stages for this. These will only be triggered if Travis CI is actually deploying. ```yaml before_deploy: "echo 'ready?'" diff --git a/user/deployment/cloudfiles.md b/user/deployment/cloudfiles.md index 5beaae09a89..8bac8551cc8 100644 --- a/user/deployment/cloudfiles.md +++ b/user/deployment/cloudfiles.md @@ -49,7 +49,7 @@ travis setup cloudfiles Keep in mind that the above command has to run in your project directory, so it can modify the `.travis.yml` for you. -### Deploy On Tags +## Deploy On Tags Often, you want to deploy only when you release a new version of your code. @@ -68,7 +68,7 @@ deploy: ``` {: data-file=".travis.yml"} -### Deploy To Only One Folder +## Deploy to one Folder Often, you don't want to upload your entire project to Cloud Files. You can tell Travis CI to only upload a single folder to Cloud Files. This example uploads the build directory of your project to Cloud Files: @@ -84,7 +84,7 @@ deploy: ``` {: data-file=".travis.yml"} -### Deploy to Multiple Containers: +### Deploy to Multiple Containers If you want to upload to multiple containers, you can do this: @@ -105,7 +105,7 @@ deploy: ``` {: data-file=".travis.yml"} -### Branch to release from +## Release Branch You can explicitly specify the branch to release from with the **on** option: @@ -139,14 +139,14 @@ deploy: Builds triggered from Pull Requests will never trigger a release. -### Conditional releases +### Conditional Releases You can deploy only when certain conditions are met. See [Conditional Releases with `on:`](/user/deployment#conditional-releases-with-on). -### Running commands before and after release +### Run Commands Before or After Release -Sometimes you want to run commands before or after releasing a gem. You can use the `before_deploy` and `after_deploy` stages for this. These will only be triggered if Travis CI is actually pushing a release. +Sometimes, you want to run commands before or after releasing a gem. You can use the `before_deploy` and `after_deploy` stages for this. These will only be triggered if Travis CI is actually pushing a release. ```yaml before_deploy: "echo 'ready?'" diff --git a/user/deployment/cloudfoundry.md b/user/deployment/cloudfoundry.md index 9365382821a..c5742337a96 100644 --- a/user/deployment/cloudfoundry.md +++ b/user/deployment/cloudfoundry.md @@ -7,7 +7,7 @@ deploy: v1 You now have the amazing ability to deploy directly to [CloudFoundry](https://run.pivotal.io/) after a successful build on Travis CI. -## The Easy Way +## Grab the code and Deploy Go grab [the Travis gem from GitHub](https://github.com/travis-ci/travis.rb) and run this command: @@ -15,7 +15,7 @@ Go grab [the Travis gem from GitHub](https://github.com/travis-ci/travis.rb) and You will be asked to answer a few simple questions about your CloudFoundry setup, and Travis will take care of the rest! -## The Slightly Harder Way +## Write the code and Deploy So you want to write your own `.travis.yml`, fine. Here is the minimum required to get up and running: diff --git a/user/deployment/codedeploy.md b/user/deployment/codedeploy.md index 9f8a48f7ebd..32b9381f674 100644 --- a/user/deployment/codedeploy.md +++ b/user/deployment/codedeploy.md @@ -50,7 +50,7 @@ Keep in mind that the above command has to run in your project directory, so it This command will also offer to set up [S3 deployment](/user/deployment/s3/), if you want to bundle to be uploaded from the Travis CI build. -## Branch to deploy from +## Deployment Branch You can explicitly specify the branch to deploy from with the **on** option: @@ -88,7 +88,7 @@ deploy: Builds triggered from Pull Requests will never trigger a release. -## S3 deployment or GitHub deployment +## S3 or GitHub Deployment For a minimal configuration with GitHub, add the following to your `.travis.yml`: @@ -134,7 +134,7 @@ If your `.travis.yml` contains both, and they do not match, set `bundle_type` ex You can deploy only when certain conditions are met. See [Conditional Releases with `on:`](/user/deployment/#conditional-releases-with-on). -## Note on `.gitignore` +## The .gitignore method As this deployment strategy relies on `git`, be mindful that the deployment will honor `.gitignore`. @@ -143,9 +143,9 @@ If your `.gitignore` file matches something that your build creates, use [`before_deploy`](#running-commands-before-and-after-deploy) to change its content. -## Running commands before and after deploy +## Run Commands Before or After Deploy -Sometimes you want to run commands before or after deploying. You can use the `before_deploy` and `after_deploy` stages for this. These will only be triggered if Travis CI is actually deploying. +Sometimes, you want to run commands before or after deploying. You can use the `before_deploy` and `after_deploy` stages for this. These will only be triggered if Travis CI is actually deploying. ```yaml before_deploy: "echo 'ready?'" @@ -157,7 +157,7 @@ after_deploy: ``` {: data-file=".travis.yml"} -## AWS region to deploy to +## Specify an AWS region You can explicitly specify the AWS region to deploy to with the **region** option: diff --git a/user/deployment/custom.md b/user/deployment/custom.md index 3903c35a50b..d6c72df7a09 100644 --- a/user/deployment/custom.md +++ b/user/deployment/custom.md @@ -11,7 +11,7 @@ machine by adding a custom [`after_success`](/user/customizing-the-build/) step. You may choose the [Script provider](/user/deployment/script/) instead, as it provides conditional deployment. -### SFTP +## SFTP ```yaml env: @@ -34,7 +34,7 @@ The env variables `SFTP_USER` and `SFTP_PASSWORD` can also be See [curl(1)](http://curl.haxx.se/docs/manpage.html) for more details on how to use cURL as an SFTP client. -### Git +## Git This should also work with services you can deploy to via git. @@ -48,4 +48,4 @@ after_success: ``` {: data-file=".travis.yml"} -See ["How can I encrypt files that include sensitive data?"](/user/travis-ci-for-private/#how-can-i-encrypt-files-that-include-sensitive-data) if you don't want to commit the private key unencrypted to your repository. +See ["How can I encrypt files that include sensitive data?"](/user/travis-ci-for-private/#how-can-i-encrypt-files-that-include-sensitive-data) if you don't want to commit the private key to your repository unencrypted. diff --git a/user/deployment/elasticbeanstalk.md b/user/deployment/elasticbeanstalk.md index f225e5b3125..f4917ec4174 100644 --- a/user/deployment/elasticbeanstalk.md +++ b/user/deployment/elasticbeanstalk.md @@ -36,13 +36,13 @@ deploy: Alternatively, use the Travis CI command line setup tool to add the deployment `travis setup elasticbeanstalk`. -## Creating an application without deploying it +## Create an application without deploying it To create an application without deploying it, add `only_create_app_version: "true"` to your `.travis.yml`. ## Optional settings -* `zip_file`: The zip file to deploy. You also need to set `skip_cleanup` to prevent Travis CI deleting the zip file at the end of the build. If this is left unspecified, a zip file will be created from all the files that are part of the repository under test (determined with `git ls-files`). +* `zip_file`: The zip file to deploy. You also need to set `skip_cleanup` to prevent Travis CI from deleting the zip file at the end of the build. If this is left unspecified, a zip file will be created from all the files that are part of the repository under test (determined with `git ls-files`). * `bucket_path`: Location within Bucket to upload app to. ## Environment variables @@ -53,9 +53,9 @@ The following environment variables are available: * `ELASTIC_BEANSTALK_LABEL`: Label name of the new version. * `ELASTIC_BEANSTALK_DESCRIPTION`: Description of the new version. Defaults to the last commit message. -## Running commands before and after deploy +## Run Commands Before or After Deploy -Sometimes you want to run commands before or after deploying. You can use +Sometimes, you want to run commands before or after deploying. You can use the `before_deploy` and `after_deploy` stages for this. These will only be triggered if Travis CI is actually deploying. diff --git a/user/deployment/engineyard.md b/user/deployment/engineyard.md index 3e97bffcbf0..e9f98a6000d 100644 --- a/user/deployment/engineyard.md +++ b/user/deployment/engineyard.md @@ -16,7 +16,7 @@ deploy: ``` {: data-file=".travis.yml"} -You can also use `email` and `password` instead of `api_key`. It is recommended to encrypt the key/password. +You can also use `email` and `password` instead of `api_key`. Encrypting the key/password is recommended. Optional settings include: `app`, `account`, `environment` and `migrate`. @@ -28,7 +28,7 @@ $ travis setup engineyard Keep in mind that the above command has to run in your project directory, so it can modify the `.travis.yml` for you. -### Application or Environment to deploy +## Deploy Application By default, we will try to deploy to an application by the same name as the repository. For example, if you deploy an application from the GitHub repository [travis-ci/travis-chat](https://github.com/travis-ci/travis-chat) without explicitly specify the name of the application, Travis CI will try to deploy to a Engine Yard app named *travis-chat*. @@ -54,7 +54,7 @@ deploy: ``` {: data-file=".travis.yml"} -This branch specific settings are possible for all options (except `on`) and can be very useful for deploying to different environments: +These branch-specific settings are possible for all options (except `on`) and can be very useful for deploying to different environments: ```yaml deploy: @@ -66,9 +66,9 @@ deploy: ``` {: data-file=".travis.yml"} -### Branch to deploy from +## Deploy Specific Branches -If you have branch specific options, as [shown above](#application-or-environment-to-deploy), Travis CI will automatically figure out which branches to deploy from. Otherwise, it will only deploy from your **master** branch. +If you have branch-specific options, as [shown above](#application-or-environment-to-deploy), Travis CI will automatically figure out which branches to deploy from. Otherwise, it will only deploy from your **master** branch. You can also explicitly specify the branch to deploy from with the **on** option: @@ -93,7 +93,7 @@ deploy: Builds triggered from Pull Requests will never trigger a deploy. -### Running migrations +## Run Migrations You can trigger migrations by using the migrate option: @@ -105,7 +105,7 @@ deploy: ``` {: data-file=".travis.yml"} -### Conditional releases +## Conditional releases You can deploy only when certain conditions are met. See [Conditional Releases with `on:`](/user/deployment/#conditional-releases-with-on). diff --git a/user/deployment/firebase.md b/user/deployment/firebase.md index 1f2c4fde693..fa3a5d7c6ce 100644 --- a/user/deployment/firebase.md +++ b/user/deployment/firebase.md @@ -20,7 +20,7 @@ deploy: ``` {: data-file=".travis.yml"} -## Generating your Firebase token +## Generate Firebase tokens Generate your Firebase token after [installing the Firebase tools](https://github.com/firebase/firebase-tools#installation) by running: @@ -35,7 +35,7 @@ When using `travis encrypt --add` you are likely to receive `WARNING: The name o Remember to [encrypt](/user/encryption-keys/#usage) the token before adding it to your `.travis.yml` -## Deploying to a custom project +## Deploy to a custom project To deploy to a different project than the one specified in the `firebase.json`, use the `project` key in your `.travis.yml`: @@ -48,7 +48,7 @@ deploy: ``` {: data-file=".travis.yml"} -## Adding a message to a deployment +## Add Deployment Messages To add a message to describe the deployment, use the `message` key in your `.travis.yml`: @@ -61,9 +61,9 @@ deploy: ``` {: data-file=".travis.yml"} -## Running commands before and after deploy +## Run Commands Before or After Deploy -Sometimes you want to run commands before or after deploying. You can use +Sometimes, you want to run commands before or after deploying. You can use the `before_deploy` and `after_deploy` stages for this. These will only be triggered if Travis CI is actually deploying. diff --git a/user/deployment/gcs.md b/user/deployment/gcs.md index 9a95d5d6e53..36895624ee2 100644 --- a/user/deployment/gcs.md +++ b/user/deployment/gcs.md @@ -1,5 +1,5 @@ --- -title: Google Cloud Storage (GCS) Deployment +title: Google Cloud Storage Deployment layout: en deploy: v1 @@ -48,9 +48,9 @@ travis setup gcs Keep in mind that the above command has to run in your project directory, so it can modify the `.travis.yml` for you. -### GCS ACL via option +### Set GCS via ACL -You can set the acl of your uploaded files via the `acl` option like this: +You can set the ACL of your uploaded files via the `acl` option like this: ```yaml deploy: @@ -66,9 +66,9 @@ deploy: Valid ACL values are: `private`, `public-read`, `public-read-write`, `authenticated-read`, `bucket-owner-read`, `bucket-owner-full-control`. The ACL defaults to `private`. See the [full documentation on Google Cloud](https://cloud.google.com/storage/docs/reference-headers#xgoogacl). -### Deploying specific folder +### Deploy Specific Folders -You can set specific directory to be uploaded using `local-dir` option like this: +You can set a specific directory to be uploaded using `local-dir` option like this: ```yaml deploy: @@ -89,9 +89,9 @@ If the `directory-name` is generated during build process, it will be deleted (c You can deploy only when certain conditions are met. See [Conditional Releases with `on:`](/user/deployment/#conditional-releases-with-on). -### Setting `Content-Encoding` header +### Setting a Content-Encoding Header -GCS uploads can optionally set HTTP header `Content-Encoding`. +GCS uploads can optionally set the HTTP header `Content-Encoding`. This header allows files to be sent compressed while retaining file extensions and the associated MIME types. @@ -112,7 +112,7 @@ the appropriate header. GCS uploads can optionally set the `Cache-Control` HTTP header. -Set HTTP header `Cache-Control` to suggest that the browser cache the file. Defaults to `no-cache`. Valid options are `no-cache`, `no-store`, `max-age=`, `s-maxage= no-transform`, `public`, `private`. +Set the HTTP header `Cache-Control` to suggest that the browser cache the file. Defaults to `no-cache`. Valid options are `no-cache`, `no-store`, `max-age=`, `s-maxage= no-transform`, `public`, `private`. ```yaml deploy: diff --git a/user/deployment/google-app-engine.md b/user/deployment/google-app-engine.md index 1690d23ec13..49bbef162fb 100644 --- a/user/deployment/google-app-engine.md +++ b/user/deployment/google-app-engine.md @@ -36,9 +36,9 @@ Keep in mind that the above command has to run in your project directory, so it More detailed instructions for encrypting keys using Travis can be found [here](/user/encrypting-files/). -### Project to deploy +## Deploy Project -By default, the project will be deployed with the same name as the repository. Usually, you will want to explicilty configure the **project** option to match the project ID found in your Cloud console (note that this is sometimes, but not always, the same as the project name). +By default, the project will be deployed with the same name as the repository. Usually, you will want to explicitly configure the **project** option to match the project ID found in your Cloud console (note that this is sometimes, but not always, the same as the project name). You can explicitly set the project id via the **project** option: @@ -50,11 +50,11 @@ deploy: ``` {: data-file=".travis.yml"} -### Version to deploy +### Deploy Version Either the **version** flag or the **default** option must be set. If default is true, the default version will be deployed to, which will be `http://your-project-id.appspot.com`. If the **version** flag is set instead, it will deploy to `http://version-dot-your-project-id.appspot.com`. -### Branch to deploy from +### Deployment Branch By default, Travis will only deploy from your **master** branch. @@ -81,11 +81,11 @@ deploy: ``` {: data-file=".travis.yml"} -Builds triggered from Pull Requests will never trigger a deploy. +Builds triggered from Pull Requests will never trigger a deployment. -### Deploying without Promoting +### Deploy without Promoting -By default, when your application is deployed it will be promoted to receive all traffic. You can disable that using the `no_promote` option: +By default, when your application is deployed, it will be promoted to receive all traffic. You can disable that using the `no_promote` option: ```yaml deploy: @@ -109,10 +109,10 @@ deploy: ``` {: data-file=".travis.yml"} -### Skipping Cleanup +### Skip Cleanup Many App Engine apps use [pip](https://pip.pypa.io/en/latest/installing.html) to vendor library requirements into the directory, and sometimes you need build artifacts or other -credentials to deploy. If so, you want to avoid the Travis cleanup step that will clean you working directory before the deploy. +credentials to deploy. If so, you want to avoid the Travis cleanup step that will clean you working directory before the deployment. ```yaml deploy: @@ -121,13 +121,13 @@ deploy: ``` {: data-file=".travis.yml"} -### Example Repo +### Example See [this link](https://github.com/googlecloudplatform/continuous-deployment-demo/tree/appengine_travis_deploy) for an example App Engine app with a Travis deployment configured. See the other branches in the project for Managed VMs examples, and examples without using this provider. -### Other Available Configuration Options +### Other Configuration Options - **project**: [Project ID](https://developers.google.com/console/help/new/#projectnumber) used to identify the project on Google Cloud. - **keyfile**: Path to the JSON file containing your [Service Account](https://developers.google.com/console/help/new/#serviceaccounts) credentials in [JSON Web Token](https://tools.ietf.org/html/rfc7519) format. To be obtained via the [Google Developers Console](https://console.developers.google.com/project/_/apiui/credential). Defaults to `"service-account.json"`. Note that this file should be handled with care as it contains authorization keys. diff --git a/user/deployment/hackage.md b/user/deployment/hackage.md index b9b4874310b..e99077170c7 100644 --- a/user/deployment/hackage.md +++ b/user/deployment/hackage.md @@ -34,7 +34,7 @@ $ travis setup hackage Keep in mind that the above command has to run in your project directory, so it can modify the `.travis.yml` for you. -### Conditional releases +## Conditional releases You can deploy only when certain conditions are met. See [Conditional Releases with `on:`](/user/deployment/#conditional-releases-with-on). diff --git a/user/deployment/hephy.md b/user/deployment/hephy.md index 71198aba843..8cf709b776a 100644 --- a/user/deployment/hephy.md +++ b/user/deployment/hephy.md @@ -37,12 +37,12 @@ $ travis setup hephy > Keep in mind that the above command has to run in your project directory, so it can modify the `.travis.yml` for you. -### Conditional Releases +## Conditional Releases You can deploy only when certain conditions are met. See [Conditional Releases with `on:`](/user/deployment/#conditional-releases-with-on). -### Note on `.gitignore` +## The .gitignore method As this deployment strategy relies on `git`, be mindful that the deployment will honor `.gitignore`. @@ -51,9 +51,9 @@ If your `.gitignore` file matches something that your build creates, use [`before_deploy`](#running-commands-before-and-after-deploy) to change its content. -### Running Commands Before and After Deploy +## Run Commands Before or After Deploy -Sometimes you want to run commands before or after triggering a deployment. You can use the `before_deploy` and `after_deploy` stages for this. These will only be triggered if Travis CI is actually pushing a release. +Sometimes, you want to run commands before or after triggering a deployment. You can use the `before_deploy` and `after_deploy` stages for this. These will only be triggered if Travis CI is actually pushing a release. ```yaml before_deploy: "echo 'ready?'" diff --git a/user/deployment/heroku.md b/user/deployment/heroku.md index bc0df76ad28..024b7790f46 100644 --- a/user/deployment/heroku.md +++ b/user/deployment/heroku.md @@ -32,7 +32,7 @@ travis encrypt $(heroku auth:token) --add deploy.api_key --pro ``` You can also use the Travis CI command line setup tool `travis setup heroku`. -## Deploying Custom Application Names +## Deploy Custom Application Names By default, we will try to deploy to an application by the same name as the repository. For example, if you deploy an application from the GitHub repository [travis-ci/travis-chat](https://github.com/travis-ci/travis-chat) without explicitly specify the name of the application, Travis CI will try to deploy to a Heroku app named *travis-chat*. @@ -72,9 +72,9 @@ deploy: ``` {: data-file=".travis.yml"} -## Deploying Specific Branches +## Deploy Specific Branches -If you have branch specific options, as [shown above](#deploying-custom-application-names), Travis CI will automatically figure out which branches to deploy from. Otherwise, it will only deploy from your **master** branch. +If you have branch-specific options, as [shown above](#deploying-custom-application-names), Travis CI will automatically figure out which branches to deploy from. Otherwise, it will only deploy from your **master** branch. You can also explicitly specify the branch to deploy from with the **on** option: @@ -97,11 +97,11 @@ deploy: ``` {: data-file=".travis.yml"} -Builds triggered from Pull Requests will never trigger a deploy. +Builds triggered from Pull Requests will never trigger a deployment. -## Running Commands +## Run Commands -In some setups, you might want to run a command on Heroku after a successful deploy. You can do this with the **run** option: +In some setups, you might want to run a command on Heroku after a successful deployment. You can do this with the **run** option: ```yaml deploy: @@ -133,7 +133,7 @@ Use an addon such as [Papertrail](https://elements.heroku.com/addons/papertrail) These add-ons have email notification systems that can be triggered when certain string matches occur in your Heroku logs. For example you could trigger an e-mail notification if the log contains "this and all later migrations canceled". -### Restarting Applications +### Restart Applications Sometimes you want to restart your Heroku application between or after commands. You can easily do so by adding a "restart" command: @@ -148,9 +148,9 @@ deploy: ``` {: data-file=".travis.yml"} -## Deploying build artifacts +## Deploy build artifacts -After your tests ran and before the deploy, Travis CI will clean up any additional files and changes you made. +After your tests run and before the deploy, Travis CI will clean up any additional files and changes you made. Maybe that is not what you want, as you might generate some artifacts (think asset compilation) that are supposed to be deployed, too. There is now an option to skip the clean up: @@ -181,7 +181,7 @@ deploy: ``` {: data-file=".travis.yml"} -#### Using `.gitignore` on `git` strategy +#### Use the .gitignore on git strategy When you use any of the `git` strategies, be mindful that the deployment will honor `.gitignore`. @@ -190,9 +190,9 @@ If your `.gitignore` file matches something that your build creates, use [`before_deploy`](#running-commands-before-and-after-deploy) to change its content. -### Running commands before and after deploy +### Run Commands Before or After Deploy -Sometimes you want to run commands before or after deploying. You can use the `before_deploy` and `after_deploy` stages for this. These will only be triggered if Travis CI is actually deploying. +Sometimes, you want to run commands before or after deploying. You can use the `before_deploy` and `after_deploy` stages for this. These will only be triggered if Travis CI is actually deploying. ```yaml before_deploy: "echo 'ready?'" diff --git a/user/deployment/lambda.md b/user/deployment/lambda.md index 825afe827a6..8dc4f36ab4f 100644 --- a/user/deployment/lambda.md +++ b/user/deployment/lambda.md @@ -31,17 +31,17 @@ $ travis encrypt "AWS SECRET ACCESS KEY" --add deploy.secret_access_key You will be prompted to enter your secret access key on the command line. -### Optional configuration parameters +## Optional configuration parameters See [documentation](https://github.com/travis-ci/dpl#lambda) for additional configuration parameters -### Conditional releases +## Conditional releases You can deploy only when certain conditions are met. See [Conditional Releases with `on:`](/user/deployment/#conditional-releases-with-on). -### AWS permissions +## AWS permissions The AWS user that Travis deploys as must have the following IAM permissions in order to deploy: diff --git a/user/deployment/launchpad.md b/user/deployment/launchpad.md index ac39e40fb87..62dfdc6701f 100644 --- a/user/deployment/launchpad.md +++ b/user/deployment/launchpad.md @@ -1,5 +1,5 @@ --- -title: Launchpad deployment +title: Launchpad Deployment layout: en deploy: v1 @@ -30,7 +30,7 @@ The `slug` contains user or team name, project name, and branch name, and is for Launchpad slug -### Encrypting your OAUTH tokens +## Encrypt OAUTH tokens It is recommended that you encrypt both OAUTH tokens using the Travis CI command line client by removing them from your `travis.yml` above and running the following commands: diff --git a/user/deployment/npm.md b/user/deployment/npm.md index d1877604f52..ac33a8b92c8 100644 --- a/user/deployment/npm.md +++ b/user/deployment/npm.md @@ -36,7 +36,7 @@ $ travis setup npm Keep in mind that the above command has to run in your project directory, so it can modify the `.travis.yml` for you. -## NPM auth token +## npm Auth token Your NPM Auth Token can be obtained by: @@ -91,7 +91,7 @@ deploy: Builds triggered from Pull Requests will never trigger a release. -## Releasing build artifacts +## Release build artifacts After your tests ran and before the release, Travis CI will clean up any additional files and changes you made. @@ -111,7 +111,7 @@ reported when multiple attempts are made. We recommend deploying from only one job with [Conditional Releases with `on:`](/user/deployment/#conditional-releases-with-on). -## Tagging releases +## Tag releases You can automatically add [npm distribution tags](https://docs.npmjs.com/getting-started/using-tags) with the `tag` option: @@ -122,7 +122,7 @@ deploy: ``` {: data-file=".travis.yml"} -## Note on `.gitignore` +## The .gitignore method Notice that `npm` deployment honors `.gitignore` if `.npmignore` does not exist. This means that if your build creates artifacts in places listed in `.gitignore`, @@ -136,7 +136,7 @@ If your `.gitignore` file matches something that your build creates, use its content, or create (potentially empty) `.npmignore` file to override it. -## Running commands before and after deploy +## Run Commands Before or After Deploy Sometimes you want to run commands before or after deploying. You can use the `before_deploy` and `after_deploy` stages for this. These will only be triggered if Travis CI is actually deploying. @@ -150,9 +150,9 @@ after_deploy: ``` {: data-file=".travis.yml"} -## Troubleshooting "npm ERR! You need a paid account to perform this action." +## Troubleshoot npm Error -npm assumes that [scoped packages](https://docs.npmjs.com/misc/scope) are +If you get the error message "npm ERR! You need a paid account to perform this action." is because npm assumes that [scoped packages](https://docs.npmjs.com/misc/scope) are private by default. You can explicitly tell npm your package is a public package and avoid this error by adding the following to your `package.json` file: diff --git a/user/deployment/openshift.md b/user/deployment/openshift.md index f46aedf79c6..b7596be23d6 100644 --- a/user/deployment/openshift.md +++ b/user/deployment/openshift.md @@ -30,7 +30,7 @@ Keep in mind that the above command has to run in your project directory, so it To provide the best service possible, Travis CI has teamed up with OpenShift as a [partner](https://www.openshift.com/partners) and there is an official [Travis CI QuickStart](https://hub.openshift.com/quickstarts/26-travis-ci) to get you going. -### Application to deploy +## Deploy to Applications By default, we will try to deploy to an application by the same name as the repository. For example, if you deploy an application from the GitHub repository [travis-ci/travis-chat](https://github.com/travis-ci/travis-chat) without explicitly specify the name of the application, Travis CI will try to deploy to an OpenShift app named *travis-chat*. @@ -71,7 +71,7 @@ deploy: ``` {: data-file=".travis.yml"} -### Branch to deploy from +## Deploy Specific Branches If you have branch specific options, as [shown above](#application-to-deploy), Travis CI will automatically figure out which branches to deploy from. Otherwise, it will only deploy from your **master** branch. @@ -98,7 +98,7 @@ deploy: Builds triggered from Pull Requests will never trigger a deploy. -### Deploying build artifacts +## Deploy build artifacts After your tests ran and before the deploy, Travis CI will clean up any additional files and changes you made. @@ -117,7 +117,7 @@ deploy: You can deploy only when certain conditions are met. See [Conditional Releases with `on:`](/user/deployment/#conditional-releases-with-on). -### Note on `.gitignore` +### The .gitignore method As this deployment strategy relies on `git`, be mindful that the deployment will honor `.gitignore`. @@ -126,7 +126,7 @@ If your `.gitignore` file matches something that your build creates, use [`before_deploy`](#running-commands-before-and-after-deploy) to change its content. -### Running commands before and after deploy +## Run Commands Before or After Deploy Sometimes you want to run commands before or after deploying. You can use the `before_deploy` and `after_deploy` stages for this. These will only be triggered if Travis CI is actually deploying. @@ -140,7 +140,7 @@ after_deploy: ``` {: data-file=".travis.yml"} -### Deployment branch +### Deployment Branch OpenShift can be configured to deploy from a branch different from the default `master` via `rhc app-configure --deployment-branch mybranch`. diff --git a/user/deployment/opsworks.md b/user/deployment/opsworks.md index e326cbcdebc..e0df10a8307 100644 --- a/user/deployment/opsworks.md +++ b/user/deployment/opsworks.md @@ -35,7 +35,7 @@ travis setup opsworks Keep in mind that the above command has to run in your project directory, so it can modify the `.travis.yml` for you. Note that the `region` isn't generated by running `travis setup opsworks`. -### Migrate the Database +## Migrate the Database If you want to migrate your rails database on travis to AWS OpsWorks, add the `migrate` option to your `.travis.yml`. @@ -49,7 +49,7 @@ deploy: ``` {: data-file=".travis.yml"} -### Branch to deploy from +## Deployment Branch By default, Travis CI will only deploy from your **master** branch. @@ -80,7 +80,7 @@ deploy: Builds triggered from Pull Requests will never trigger a deploy. -### Deploying build artifacts +## Deploy build artifacts After your tests run and before the deploy stage, Travis CI will clean up any additional files and changes you made. @@ -96,7 +96,7 @@ deploy: ``` {: data-file=".travis.yml"} -### Waiting for Deployments +## Waiting for Deployments By default, the build will continue immediately after triggering an OpsWorks deploy. To wait for the deploy to complete, use the **wait-until-deployed** @@ -115,9 +115,9 @@ deploy: Travis CI will wait up to 10 minutes for the deploy to complete, and log whether it succeeded. -### Updating App Settings after successful Deployments +## Update App Settings -By default the deploy from Travis CI triggers a deployment on OpsWorks but does not touch any other configuration. To also update the revision in App Settings use the **update-app-on-success** option. In addition you have to set the **wait-until-deployed** option: +By default, the deployment from Travis CI triggers a deployment on OpsWorks but does not touch any other configuration. To also update the revision in App Settings use the **update-app-on-success** option. In addition, you have to set the **wait-until-deployed** option: ```yaml deploy: @@ -137,9 +137,9 @@ Travis CI will wait until the deployment returns successful and only then update You can deploy only when certain conditions are met. See [Conditional Releases with `on:`](/user/deployment/#conditional-releases-with-on). -### Running commands before and after deploy +### Run Commands Before or After Deploy -Sometimes you want to run commands before or after deploying. You can use the `before_deploy` and `after_deploy` stages for this. These will only be triggered if Travis CI is actually deploying. +Sometimes, you want to run commands before or after deploying. You can use the `before_deploy` and `after_deploy` stages for this. These will only be triggered if Travis CI is actually deploying. ```yaml before_deploy: "echo 'ready?'" diff --git a/user/deployment/packagecloud.md b/user/deployment/packagecloud.md index f73274aeacc..24f12a47764 100644 --- a/user/deployment/packagecloud.md +++ b/user/deployment/packagecloud.md @@ -40,7 +40,7 @@ travis setup packagecloud Keep in mind that the above command has to run in your project directory, so it can modify the `.travis.yml` for you. -### Branch to release from +### Release Branch You can explicitly specify the branch to release from with the **on** option: @@ -68,7 +68,7 @@ By default, Travis CI will only release from the **master** branch. Builds triggered from Pull Requests will never trigger a release. -### Releasing build artifacts +### Release build artifacts After your tests ran and before the release, Travis CI will clean up any additional files and changes you made. @@ -105,17 +105,17 @@ deploy: ``` {: data-file=".travis.yml"} -### A note about Debian source packages +### Debian Source Packages If the packagecloud provider finds any `.dsc` files, it will scan it and try to locate it's contents within the `local-dir` directory. Ensure the source package and it's contents are output to the same directory for it to work. -### Conditional releases +## Conditional Releases You can deploy only when certain conditions are met. See [Conditional Releases with `on:`](/user/deployment/#conditional-releases-with-on). -### Running commands before and after release +## Run Commands Before or After Release Sometimes you want to run commands before or after releasing a package. You can use the `before_deploy` and `after_deploy` stages for this. These will only be triggered if Travis CI is actually pushing a release. diff --git a/user/deployment/pages.md b/user/deployment/pages.md index eec774412d7..49d32f253db 100644 --- a/user/deployment/pages.md +++ b/user/deployment/pages.md @@ -31,7 +31,7 @@ deploy: > all the files created during the build, which will probably delete what you are > trying to upload. -## Setting the GitHub token +## Set the GitHub token You'll need to generate a [personal access token](https://help.github.com/articles/creating-an-access-token-for-command-line-use/) @@ -42,11 +42,11 @@ settings](/user/environment-variables/#defining-variables-in-repository-settings or via [encrypted variables in `.travis.yml`](/user/environment-variables/#defining-encrypted-variables-in-travisyml). -## Further configuration +## Further configurations -* `local_dir`: Directory to push to GitHub Pages, defaults to current directory. +* `local_dir`: Directory to push to GitHub Pages, defaults to the current directory. Can be specified as an absolute path or a relative path from the current directory. -* `repo`: Repo slug, defaults to current repo. **Note:** The slug consists of username and repo name and is formatted like `user/repo-name`. +* `repo`: Repo slug, defaults to the current repo. **Note:** The slug consists of username and repo name and is formatted like `user/repo-name`. * `target_branch`: Branch to (force, see: `keep_history`) push `local_dir` contents to, defaults to `gh-pages`. * `keep_history`: Optional, create incremental commit instead of doing push diff --git a/user/deployment/puppetforge.md b/user/deployment/puppetforge.md index a841586dbe1..31e5122ed3b 100644 --- a/user/deployment/puppetforge.md +++ b/user/deployment/puppetforge.md @@ -22,7 +22,7 @@ deploy: ``` {: data-file=".travis.yml"} -## Deploying to a custom forge +## Deploy to a Custom Forge To deploy to your own hosted Forge instance by adding it in the `url` key: @@ -38,9 +38,9 @@ deploy: ``` {: data-file=".travis.yml"} -## Running commands before and after deploy +## Run Commands Before or After Deploy -Sometimes you want to run commands before or after deploying. You can use +Sometimes, you want to run commands before or after deploying. You can use the `before_deploy` and `after_deploy` stages for this. These will only be triggered if Travis CI is actually deploying. diff --git a/user/deployment/pypi.md b/user/deployment/pypi.md index b2abee30812..04a9cee7b69 100644 --- a/user/deployment/pypi.md +++ b/user/deployment/pypi.md @@ -1,5 +1,5 @@ --- -title: PyPI deployment +title: PyPI Deployment layout: en deploy: v1 @@ -46,7 +46,7 @@ It is also possible, but not recommended, to use PyPI user and password, instead > Note that if your PyPI password contains [special characters](/user/encryption-keys/#note-on-escaping-certain-symbols) you need to escape them before encrypting your password. Some people have [reported difficulties](https://github.com/travis-ci/dpl/issues/377) connecting to PyPI with passwords containing anything except alphanumeric characters. -## Deploying tags +## Deploy on Tags Most likely, you would only want to deploy to PyPI when a new version of your package is cut. To do this, you can tell Travis CI to only deploy on tagged @@ -64,7 +64,7 @@ deploy: If you tag a commit locally, remember to run `git push --tags` to ensure that your tags are uploaded to GitHub. -## Deploying specific branches +## Deploy Specific Branches You can explicitly specify the branch to release from with the **on** option: @@ -94,7 +94,7 @@ By default, Travis CI will only release from the **master** branch. Builds triggered from Pull Requests will never trigger a release. -## Releasing to a self hosted PyPI +## Release to a self-hosted PyPI To release to a different PyPI index: @@ -107,7 +107,7 @@ deploy: ``` {: data-file=".travis.yml"} -## Uploading different distributions +## Upload different distributions By default, only a source distribution ('sdist') will be uploaded to PyPI. If you would like to upload different distributions, specify them using the `distributions` option, like this: @@ -140,7 +140,7 @@ deploy: skip_existing: true ``` -## Releasing build artifacts +## Release build artifacts After your tests ran and before the release, Travis CI will clean up any additional files and changes you made. @@ -154,14 +154,14 @@ deploy: skip_cleanup: true ``` -## Conditional releases +## Conditional Releases You can deploy only when certain conditions are met. See [Conditional Releases with `on:`](/user/deployment/#conditional-releases-with-on). -## Running commands before and after release +## Run Commands Before or After Release -Sometimes you want to run commands before or after releasing a package. You can use the `before_deploy` and `after_deploy` stages for this. These will only be triggered if Travis CI is actually pushing a release. +Sometimes, you want to run commands before or after releasing a package. You can use the `before_deploy` and `after_deploy` stages for this. These will only be triggered if Travis CI is actually pushing a release. ``` before_deploy: "echo 'ready?'" diff --git a/user/deployment/releases.md b/user/deployment/releases.md index 803192341d3..32fb244848c 100644 --- a/user/deployment/releases.md +++ b/user/deployment/releases.md @@ -28,7 +28,7 @@ This configuration will use the "GITHUB OAUTH TOKEN" to upload "FILE TO UPLOAD" GitHub Releases works with git tags, so it is important that you understand how tags affect GitHub Releases. -## Deploying only on tagged builds +## Deploy on tagged builds With [`on.tags: true`](/user/deployment/#conditional-releases-with-on), your Releases deployment will trigger if and only if the build is a tagged @@ -42,8 +42,9 @@ Regular releases require tags. If you set `on.tags: true` (as the initial example in this document), this requirement is met. -## Draft releases with `draft: true` -With +## Draft releases + +For Draft releases using `draft: true`, use the following code: ```yaml deploy: @@ -59,9 +60,9 @@ the resultant deployment is a draft Release that only repository collaborators can see. This gives you an opportunity to examine and edit the draft release. -## Setting the tag at deployment time +## Set the tag at deployment -GitHub Releases needs the present commit to be tagged at the deployment time. +GitHub Releases need the present commit to be tagged at the deployment time. If you set `on.tags: true`, the commit is guaranteed to have a tag. Depending on the workflow, however, this is not desirable. @@ -86,7 +87,7 @@ For example: ``` {: data-file=".travis.yml"} -### When tag is not set at deployment time +### Tag not set during deployment If the tag is still not set at the time of deployment, the deployment provider attempts to match the current commit with a tag from remote, @@ -110,7 +111,7 @@ other means; for instance, by If you need to overwrite existing files, add `overwrite: true` to the `deploy` section of your `.travis.yml`. -## Using Travis CI client to populate initial deployment configuration +## Populate the initial deployment configuration with Travis CI You can also use the [Travis CI command line client](https://github.com/travis-ci/travis.rb#installation) to configure your `.travis.yml`: @@ -124,7 +125,7 @@ Or, if you're using a private repository or the GitHub Apps integration: travis setup releases --com ``` -## Authenticating with an OAuth token +## OAuth token Authentication The recommended way to authenticate is to use a GitHub OAuth token. Instead of setting it up manually, it is highly recommended to use `travis setup releases`, which automatically creates and encrypts a GitHub OAuth token with the correct scopes. @@ -147,9 +148,9 @@ deploy: ``` {: data-file=".travis.yml"} -**Warning:** the `public_repo` and `repo` scopes for GitHub OAuth tokens grant write access to all of a user's (public) repositories. For security, it's ideal for `api_key` to have the write access limited to only repositories where Travis deploys to GitHub releases. The suggested workaround is to create a [machine user](https://developer.github.com/v3/guides/managing-deploy-keys/#machine-users) — a dummy GitHub account that is granted write access on a per repository basis. +**Warning:** the `public_repo` and `repo` scopes for GitHub OAuth tokens grant write access to all of a user's (public) repositories. For security, it's ideal for `api_key` to have the write access limited to only repositories where Travis deploys to GitHub releases. The suggested workaround is to create a [machine user](https://developer.github.com/v3/guides/managing-deploy-keys/#machine-users) — a dummy GitHub account that is granted write access on a per-repository basis. -## Authentication with a Username and Password +## Username and Password Authentication You can also authenticate with your GitHub username and password using the `user` and `password` options. This is not recommended as it allows full access to your GitHub account but is simplest to setup. It is recommended to encrypt your password using `travis encrypt "GITHUB PASSWORD" --add deploy.password`. This example authenticates using a username and password. @@ -165,7 +166,7 @@ deploy: ``` {: data-file=".travis.yml"} -## Deploying to GitHub Enterprise +## Deploy to GitHub Enterprise If you wish to upload assets to a GitHub Enterprise repository, you must override the `$OCTOKIT_API_ENDPOINT` environment variable with your GitHub Enterprise API endpoint: @@ -182,9 +183,9 @@ env: ``` {: data-file=".travis.yml"} -## Uploading Multiple Files +## Upload Multiple Files -You can upload multiple files using yml array notation. This example uploads two files. +You can upload multiple files using the yml array notation. This example uploads two files. ```yaml deploy: @@ -236,7 +237,7 @@ Please note that all paths in `file` are relative to the current working directo You can deploy only when certain conditions are met. See [Conditional Releases with `on:`](/user/deployment/#conditional-releases-with-on). -## Running commands before or after release +## Run Commands Before or After Release Sometimes you want to run commands before or after releasing a gem. You can use the `before_deploy` and `after_deploy` stages for this. These will only be triggered if Travis CI is actually pushing a release. @@ -265,7 +266,7 @@ and [#update_release](https://octokit.github.io/octokit.rb/Octokit/Client/Releas Note that formatting in `body` is [not preserved](https://github.com/travis-ci/dpl/issues/155). -## Troubleshooting Git Submodules +## Troubleshoot Git Submodules -GitHub Releases executes a number of git commands during deployment. For this reason, it is important that the working directory is set to the one for which the release will be created, which generally isn't a problem, but if you clone another repository during the build or use submodules, it is worth double checking. +GitHub Releases executes a number of git commands during deployment. For this reason, it is important that the working directory is set to the one for which the release will be created, which generally isn't a problem, but if you clone another repository during the build or use submodules, it is worth double-checking. diff --git a/user/deployment/rubygems.md b/user/deployment/rubygems.md index c6f20d8f88e..faf54979f7b 100644 --- a/user/deployment/rubygems.md +++ b/user/deployment/rubygems.md @@ -48,7 +48,7 @@ travis setup rubygems Keep in mind that the above command has to run in your project directory, so it can modify the `.travis.yml` for you. -## Pre-releasing +## Pre-release Instead of releasing for each new version of your gem, you can have Travis CI create a [prerelease](http://guides.rubygems.org/patterns#prerelease-gems) for each build. @@ -62,7 +62,7 @@ s.version = "#{s.version}-alpha-#{ENV['TRAVIS_BUILD_NUMBER']}" if ENV['TRAVIS'] If your gem's current version is 1.0.0, then Travis CI will create a prerelease with the version 1.0.0-alpha-20, where `20` is the build number. -### Gem to release +### Gem Release By default, we will try to release a gem by the same name as the repository. For example, if you release a gem from the GitHub repository [travis-ci/travis-chat](https://github.com/travis-ci/travis-chat) without explicitly specify the name of the application, Travis CI will try to release the gem named *travis-chat*. @@ -102,9 +102,9 @@ deploy: ``` {: data-file=".travis.yml"} -### Gemspec to use +### Use Gemspec -If you like, you can specify can alternate option with the `gemspec` option: +If you like, you can specify an alternate option with the `gemspec` option: ```yaml deploy: @@ -114,9 +114,9 @@ deploy: ``` {: data-file=".travis.yml"} -### Branch to release from +### Release Branch -If you have branch specific options, as [shown above](#gem-to-release), Travis CI will automatically figure out which branches to release from. Otherwise, it will only release from your **master** branch. +If you have branch-specific options, as [shown above](#gem-to-release), Travis CI will automatically figure out which branches to release from. Otherwise, it will only be released from your **master** branch. You can also explicitly specify the branch to release from with the **on** option: @@ -142,9 +142,9 @@ deploy: Builds triggered from Pull Requests will never trigger a release. -### Releasing build artifacts +### Release build artifacts -After your tests ran and before the release, Travis CI will clean up any additional files and changes you made. +After your tests run and before the release, Travis CI will clean up any additional files and changes you made. Maybe that is not what you want, as you might generate some artifacts that are supposed to be released, too. There is now an option to skip the clean up: @@ -156,20 +156,20 @@ deploy: ``` {: data-file=".travis.yml"} -### Conditional releases +### Conditional Releases You can deploy only when certain conditions are met. See [Conditional Releases with `on:`](/user/deployment/#conditional-releases-with-on). -### Gem must be registered beforehand +### Register Gem Note that the gem you upload must be registered beforehand. If the gem does not exist on the host to which it is uploaded, deployment will fail. See [this GitHub issue](https://github.com/travis-ci/dpl/issues/574) for details. -### Running commands before and after release +### Run Commands Before or After Release -Sometimes you want to run commands before or after releasing a gem. You can use the `before_deploy` and `after_deploy` stages for this. These will only be triggered if Travis CI is actually pushing a release. +Sometimes, you want to run commands before or after releasing a gem. You can use the `before_deploy` and `after_deploy` stages for this. These will only be triggered if Travis CI is actually pushing a release. ```yaml before_deploy: "echo 'ready?'" diff --git a/user/deployment/s3.md b/user/deployment/s3.md index 3131eb80bf2..9659632a602 100644 --- a/user/deployment/s3.md +++ b/user/deployment/s3.md @@ -47,9 +47,9 @@ $ travis setup s3 Keep in mind that the above command has to run in your project directory, so it can modify the `.travis.yml` for you. -## S3 ACL via option +## Set S3 ACL -You can set the acl of your uploaded files via the `acl` option like this: +You can set the ACL of your uploaded files via the `acl` option like this: ```yaml deploy: @@ -93,7 +93,7 @@ An example policy might look like this: Be sure to set up the principal and resources according to your needs. -## S3 ACL with bucket policy +## Set S3 ACL with Bucket Policy Another way to set ACL for your artifacts is via a S3 bucket policy. @@ -118,7 +118,7 @@ This bucket policy grants the public read permission: ## S3 bucket regions -By default the region `us-east-1` is used when deploying to S3. If your bucket is hosted in a different region, deploying using the default region results in the following error. +By default, the region `us-east-1` is used when deploying to S3. If your bucket is hosted in a different region, deploying using the default region results in the following error. ``` The bucket you are attempting to access must be addressed using the specified endpoint. @@ -138,7 +138,7 @@ deploy: ``` {: data-file=".travis.yml"} -## Deploy One or More files Matching a Pattern +## Deploy Files Matching a Pattern To upload files matching a specific pattern, you can add the pattern via the `glob` directive as illustrated in the following example: @@ -185,7 +185,7 @@ deploy: ``` {: data-file=".travis.yml"} -## Deploy to a S3 hosted website: +## Deploy to a S3 hosted Website To upload to a S3 hosted website, to use this template to upload to your website. @@ -202,7 +202,7 @@ deploy: Remember that you need to set the bucket to have an ACL of `public` for anybody to be able to see your website. -## Deploy to Multiple Buckets: +## Deploy to Multiple Buckets If you want to upload to multiple buckets, you can do this: @@ -226,7 +226,7 @@ deploy: You can deploy only when certain conditions are met. See [Conditional Releases with `on:`](/user/deployment/#conditional-releases-with-on). -## Running commands before and after release +## Run Commands Before or After Release Sometimes you want to run commands before or after releasing a gem. You can use the `before_deploy` and `after_deploy` stages for this. These will only be triggered if Travis CI is actually pushing a release. @@ -240,7 +240,7 @@ Sometimes you want to run commands before or after releasing a gem. You can use ``` {: data-file=".travis.yml"} -## Setting `Content-Encoding` header +## Set the Content-Encoding header S3 uploads can optionally set HTTP header `Content-Encoding`. This header allows files to be sent compressed while retaining file extensions and @@ -259,7 +259,7 @@ deploy: If the file is compressed with `gzip` or `compress`, it will be uploaded with the appropriate header. -## Setting `charset` on `Content-Type` header +## Set charset on Content-Type Header S3 can take a content-type header. Normally this doesn't include a character set as well. If you would like to add a character set, add the `default_text_charset` option with what you want it to be. For example: @@ -301,7 +301,7 @@ deploy: {: data-file=".travis.yml"} -## Using S3-compatible Object Storage +## S3-compatible Object Storage You can use an S3-compatible object storage such as Digital Ocean Spaces by setting the `endpoint` key. diff --git a/user/deployment/scalingo.md b/user/deployment/scalingo.md index 74b86db039d..dbfd0a8df26 100644 --- a/user/deployment/scalingo.md +++ b/user/deployment/scalingo.md @@ -1,5 +1,5 @@ --- -title: Scalingo deployment +title: Scalingo Deployment layout: en deploy: v1 @@ -18,7 +18,7 @@ Chose one of two ways to connect to your Scalingo account: -## Connecting using a username and password +## Connect with Username and Password Add your Scalingo username and your [encrypted](/user/encryption-keys/#usage) Scalingo password to your `.travis.yml`: @@ -32,7 +32,7 @@ deploy: ``` {: data-file=".travis.yml"} -## Connecting using an api key +## Connect with an API key Add your [encrypted](/user/encryption-keys/#usage) Scalingo `api_key` to your `.travis.yml`: @@ -45,7 +45,7 @@ deploy: ``` {: data-file=".travis.yml"} -## Optional settings +## Optional Settings * `remote`: Remote url or git remote name of your git repository. The default remote name is "scalingo". @@ -55,7 +55,7 @@ deploy: remote. Specifying the `app` will add a remote to your local repository: `git remote add git@scalingo.com:.git` -### Running commands before and after deploy +### Run Commands Before or After Deploy Sometimes you want to run commands before or after deploying. You can use the `before_deploy` and `after_deploy` stages for this. These will only be diff --git a/user/deployment/script.md b/user/deployment/script.md index 30d19fe26ce..18ffc39330e 100644 --- a/user/deployment/script.md +++ b/user/deployment/script.md @@ -1,5 +1,5 @@ --- -title: Script deployment +title: Script Deployment layout: en deploy: v1 @@ -24,7 +24,7 @@ If you need to run multiple commands, write a executable wrapper script that run If the script returns a nonzero status, deployment is considered a failure, and the build will be marked as "errored". -## Passing Arguments to the Script +## Pass Arguments to the Script It is possible to pass arguments to a script deployment. @@ -55,7 +55,7 @@ deploy: ``` {: data-file=".travis.yml"} -## Ruby version +## Ruby Version To ensure that deployments run consistently, we use the version of Ruby that is pre-installed on all of our build images, which may change when images are updated. diff --git a/user/deployment/snaps.md b/user/deployment/snaps.md index 2133bb7b2cd..6166b9d0adf 100644 --- a/user/deployment/snaps.md +++ b/user/deployment/snaps.md @@ -26,7 +26,7 @@ The `snap` value should be a string that matches exactly one file when the deplo If the name of the snap file is not known ahead of time, you can use a shell glob pattern, as shown in the example above. -## Providing credentials to upload the snap +## Provide credentials and Upload the Snap To upload snaps from Travis CI, export a Snap Store login token, and provide it as an environment variable `$SNAP_TOKEN`. @@ -49,7 +49,7 @@ The token will be printed out. _Note: The `edge` channel is intended for the bleeding edge: your every commit to master will be built and uploaded._ -### Using the CLI client +### Use the CLI client Using our [CLI client](https://github.com/travis-ci/travis.rb#readme), define `$SNAP_TOKEN`: ```bash @@ -57,10 +57,10 @@ Using our [CLI client](https://github.com/travis-ci/travis.rb#readme), define `$ travis env set SNAP_TOKEN "" ``` -### Using Settings page +### Use the Settings page Equivalently, you can do this on the [Settings page](https://docs.travis-ci.com/user/environment-variables/#defining-variables-in-repository-settings) of your repository at Travis CI. -## Using uploaded Snap +## Use the Uploaded Snap Your community of early-adopters and testers can install your app in any of the [supported Linux distributions](https://docs.snapcraft.io/core/install) with: ```bash diff --git a/user/deployment/surge.md b/user/deployment/surge.md index 86bd5c013ac..37adb95a0a1 100644 --- a/user/deployment/surge.md +++ b/user/deployment/surge.md @@ -9,12 +9,12 @@ Travis CI can deploy your static files to [Surge.sh](https://surge.sh/) after a You will need to set 2 environment variables in your travis settings and set the deployment provider details in `.travis.yml` -### Environment variables +## Environment variables - **SURGE_LOGIN**: Set it to the email address you use with Surge - **SURGE_TOKEN**: Set it to your login token (get it by doing a `surge token`) -### Configuration of `.travis.yml`: +## Configure the .travis.yml file - Add `surge` as deployment provider in `.travis.yml` @@ -32,7 +32,7 @@ deploy: ``` {: data-file=".travis.yml"} -### Generated content +## Generate content If you are generating files for deployment you must tell the `deploy` step to keep your changes: @@ -48,7 +48,7 @@ It is suggested that you generate your files during the `script` step or the `be - When generating files during the `script` step, an error results in a failed build. - When generating files during the `before_deploy` step, an error does *not* result in a failed build. -### Branches +## Deploy from Branches By default, Travis CI will only deploy from your `master` branch. You can specify what branch to deploy from with the deploy option `on`: diff --git a/user/deployment/testfairy.md b/user/deployment/testfairy.md index b2c25b19017..c1749bc7a7f 100644 --- a/user/deployment/testfairy.md +++ b/user/deployment/testfairy.md @@ -1,5 +1,5 @@ --- -title: TestFairy deployment +title: TestFairy Deployment layout: en deploy: v1 @@ -27,7 +27,7 @@ $ travis encrypt "YOUR API KEY" --add deploy.api-key ## Symbols file -Attach your symbols mapping file so TestFairy can de-obfuscate and symbolicate crash reports automatically. Set the `symbols-file` key to your `proguard_mapping.txt` file or to a zipped `.dSYM` file. +Attach your symbols mapping file so TestFairy can de-obfuscate and symbolize crash reports automatically. Set the `symbols-file` key to your `proguard_mapping.txt` file or to a zipped `.dSYM` file. ```yaml deploy: diff --git a/user/deployment/transifex.md b/user/deployment/transifex.md index 764c9834bd2..c2039cc13b3 100644 --- a/user/deployment/transifex.md +++ b/user/deployment/transifex.md @@ -37,12 +37,12 @@ $ travis setup transifex Keep in mind that the above command has to run in your project directory, so it can modify the `.travis.yml` for you. -### Conditional Releases +## Conditional Releases You can deploy only when certain conditions are met. See [Conditional Releases with `on:`](/user/deployment/#conditional-releases-with-on). -### Note on `.gitignore` +## The .gitignore method As this deployment strategy relies on `git`, be mindful that the deployment will honor `.gitignore`. @@ -51,7 +51,7 @@ If your `.gitignore` file matches something that your build creates, use [`before_deploy`](#running-commands-before-and-after-deploy) to change its content. -### Running Commands Before and After Deploy +## Run Commands Before or After Deploy Sometimes you want to run commands before or after triggering a deployment. You can use the `before_deploy` and `after_deploy` stages for this. These will only be triggered if Travis CI is actually pushing a release. diff --git a/user/developer.md b/user/developer.md index 646e9868771..113c19bcb14 100644 --- a/user/developer.md +++ b/user/developer.md @@ -5,9 +5,9 @@ layout: en -## API V3 +## API Version 3.0 -The Travis CI API V3 was released on 6th April 2017. It is a discoverable and +The Travis CI API V3 was released on 6th April 2017. It is discoverable and self-documenting RESTful API, and includes all the hypermedia features expected from a modern API. @@ -27,13 +27,13 @@ We've created an [API Explorer](https://developer.travis-ci.com/) that closely integrates with V3, updating automatically when new endpoints are added, and includes a useful tool for exploring endpoints. -## API V2.1 +## API Version 2.1 We've released an update to the Travis CI API V2, which is API V2.1. This update essentially makes HTTP status codes more consistent between travis-ci.org and travis-ci.com. > If you are building both Open Source and Private projects on travis-ci.com, please use API V2.1. -For users of Travis CI using the deprecated platform for Open Source projects at travis-ci.org, built at api.travis-ci.org, there is no change in API. +For users of Travis CI using the deprecated platform for Open-Source projects at travis-ci.org, built at api.travis-ci.org, there is no change in API. API V2.1 is identical to API V2 **except for the following breaking changes**: @@ -41,22 +41,21 @@ API V2.1 is identical to API V2 **except for the following breaking changes**: * For private repositories, unauthenticated requests receive an HTTP 401 or 404 error. * For private repositories, authenticated requests by users that do not have permission to view the repository receive an HTTP 400 error or HTTP 200 for empty responses. -Previous behavior for V2 is that these requests receive an 401 error. +Previous behavior for V2 is that these requests receive a 401 error. A similar pattern of HTTP response codes applies to other endpoints such us `/builds`, `/branches`, `/jobs` and `/requests`. To use API V2.1 set the `Accept` header of your API request to `application/vnd.travis-ci.2.1+json`. -## API V2 +## API Version 2.0 We're not yet ready to deprecate [API V2](/api/). We use V2 with our web frontend application and have spent the last 6 months switching gradually from V2 to V3. We'll complete this transition in the coming months, but plan to continue supporting V2 until the end of 2017. We'll naturally give developers ample -notice before switching V2 off, and provide detailed instructions for making the -transition to V3. +notice before switching V2 off, and provide detailed instructions for transitioning to V3. -## Ruby Library +### Ruby Library The [Ruby Library](https://github.com/travis-ci/travis#ruby-library) uses the API V2. diff --git a/user/disable-job-logs.md b/user/disable-job-logs.md index b13c00febb8..12a28e27aaa 100644 --- a/user/disable-job-logs.md +++ b/user/disable-job-logs.md @@ -9,10 +9,10 @@ To increase security, repository owners have the option to have control over the You can choose to enable or limit access using the following security settings. -### Enabling access to old build jobs +### Enable access to old build jobs {{ site.data.snippets.enabling_access_jobs_logs }} -### Limiting access to build job logs +### Limit access to build job logs {{ site.data.snippets.limiting_access_jobs_logs }} ### Disable logs Options 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`: diff --git a/user/encrypting-files.md b/user/encrypting-files.md index 7406d3c2628..7ae18c33a0f 100644 --- a/user/encrypting-files.md +++ b/user/encrypting-files.md @@ -15,7 +15,7 @@ Before following the examples in this guide, make sure you have already - installed the Travis CI [Command Line Client](https://github.com/travis-ci/travis.rb#readme) by running `$ gem install travis` - [logged in](https://github.com/travis-ci/travis.rb#login) to Travis CI using `$ travis login --com` -See the Command Line Client [installation instructions](https://github.com/travis-ci/travis.rb#installation) for more information on system required versions of Ruby and operating systems. +See the Command Line Client [installation instructions](https://github.com/travis-ci/travis.rb#installation) for more information on the system-required versions of Ruby and operating systems. > Starting June 2021 [travis-ci.org](http://www.travis-ci.org) is disabled and therefore no longer supported. @@ -61,7 +61,7 @@ Make sure not to add super_secret.txt to the git repository. Commit all changes to your .travis.yml. ``` -### Encrypting multiple files +### Encrypt Multiple files The Command Line Client [overrides encrypted entries](https://github.com/travis-ci/travis.rb/issues/239) if you use it to encrypt multiple files. @@ -102,16 +102,16 @@ Assumptions: The file might be too large to encrypt it directly via the `travis encrypt` command. However, you can encrypt the file using a passphrase and then encrypt the passphrase. On Travis CI, you can use the passphrase to decrypt the file again. -The set up process looks like this: +The setup process looks like this: -1. **Come up with a password.** First, you need a password. We recommend generating a random password using a tool like pwgen or 1password. In our example we will use `ahduQu9ushou0Roh`. +1. **Create a password.** First, you need a password. We recommend generating a random password using a tool like pwgen or 1password. In our example, we will use `ahduQu9ushou0Roh`. 2. **Encrypt the password and add it to your .travis.yml.** Here we can use the `encrypt` command: `travis encrypt super_secret_password=ahduQu9ushou0Roh --add` - note that if you set this up multiple times for multiple files, you will have to use different variable names so the passwords don't override each other. 3. **Encrypt the file locally.** Using a tool that you have installed locally and that is also installed on Travis CI (see below). -4. **Set up decryption command.** You should add the command for decrypting the file to the `before_install` section of your `.travis.yml` (see below). +4. **Set up the decryption command.** You should add the command for decrypting the file to the `before_install` section of your `.travis.yml` (see below). Be sure to add `super_secret.txt` to your `.gitignore` list, and to commit both the encrypted file and your `.travis.yml` changes. -### Using GPG +### Use GPG Set up: @@ -134,7 +134,7 @@ before_install: The encrypted file is called `super_secret.txt.gpg` and has to be committed to the repository. -#### Using OpenSSL +### Use OpenSSL Set up: diff --git a/user/encryption-keys.md b/user/encryption-keys.md index 3ac2308d8e8..53c71440321 100644 --- a/user/encryption-keys.md +++ b/user/encryption-keys.md @@ -1,5 +1,5 @@ --- -title: Encryption keys +title: Encryption Keys layout: en --- @@ -8,7 +8,7 @@ layout: en A repository's `.travis.yml` file can have "encrypted values", such as [environment variables](/user/environment-variables/), notification settings, and deploy api keys. These encrypted values can be added by anyone, but are only readable by Travis CI. The repository owner does not keep any secret key material. -### Repository settings - forks +## Fork Repository settings {{ site.data.snippets.git_repository_settings_forks_general }} @@ -27,7 +27,7 @@ Once the public key is available, anyone (including those without push access to your repository) can encrypt data which can only be decrypted by Travis CI, using the corresponding private key. -### Obtaining the public keys +### Obtain public keys The method to obtain the public key depends on where the target repository exists, and the API version you are using. @@ -134,7 +134,7 @@ Encrypted values can be used in [secure environment variables in the build matrix](/user/environment-variables/#defining-encrypted-variables-in-travisyml) and [notifications](/user/notifications/). -### Note on escaping certain symbols +### Escape Symbols When you use `travis encrypt` to encrypt sensitive data, it is important to note that it will be processed as a `bash` statement. @@ -261,9 +261,9 @@ env: ``` {: data-file=".travis.yml"} -## Fetching the public key for your repository +## Fetch the public key -You can fetch the public key with Travis API, using `/repos/:owner/:name/key` or +You can fetch the public key for your repository with Travis API, using `/repos/:owner/:name/key` or `/repos/:id/key` endpoints, for example: ``` diff --git a/user/environment-variables.md b/user/environment-variables.md index 1af870b1c78..507c80a1281 100644 --- a/user/environment-variables.md +++ b/user/environment-variables.md @@ -13,7 +13,7 @@ The best way to define an environment variable depends on what type of informati - if it *does* contain sensitive information, and is the same for all branches -- [encrypt it and add it to your .travis.yml](#defining-encrypted-variables-in-travisyml) - if it *does* contain sensitive information, and might be different for different branches -- [add it to your Repository Settings](#defining-variables-in-repository-settings) -## Defining Public Variables in .travis.yml +## Define Public Variables Public variables defined in `.travis.yml` are tied to a certain commit. Changing them requires a new commit, restarting an old build uses the old values. They are also available automatically on forks of the repository. @@ -38,9 +38,9 @@ env: -> Variables' values are passed to the generated build script verbatim. So make sure to escape any [Bash special characters](http://www.tldp.org/LDP/abs/html/special-chars.html) accordingly. In particular, if a value contains spaces, you need to put quotes around that value. E.g. `a long phrase` should be written as `"a long phrase"`. +> Variables' values are passed to the generated build script verbatim. So make sure to escape any [Bash special characters](http://www.tldp.org/LDP/abs/html/special-chars.html) accordingly. In particular, if a value contains spaces, you need to put quotes around that value. E.g., `a long phrase` should be written as `"a long phrase"`. -### Defining Multiple Variables per Item +### Define Multiple Variables per Item If you need to specify several environment variables for each build, put them all on the same line in the `env` array: @@ -83,7 +83,7 @@ USE_NETWORK=true CAMPFIRE_TOKEN=abc123 TIMEOUT=1000 USE_NETWORK=false CAMPFIRE_TOKEN=abc123 TIMEOUT=1000 ``` -## Defining encrypted variables in .travis.yml +## Define Encrypted variables {: #Encrypted-Variables} @@ -106,7 +106,7 @@ env: > > If you define a variable with the same name in `.travis.yml` and in the Repository Settings, the one in `.travis.yml` takes precedence. If you define a variable in `.travis.yml` as both encrypted and unencrypted, the one defined later in the file takes precedence. -### Encrypting environment variables +### Encrypting Environment variables Encrypt environment variables with the public key attached to your repository using the `travis` gem: @@ -127,7 +127,7 @@ Encrypt environment variables with the public key attached to your repository us The encryption scheme is explained in more detail in [Encryption keys](/user/encryption-keys/). -## Defining Variables in Repository Settings +## Define Variables in Repository Settings {{ site.data.snippets.environment_variables }} diff --git a/user/firefox.md b/user/firefox.md index 82bd5730e35..52b550eae46 100644 --- a/user/firefox.md +++ b/user/firefox.md @@ -9,7 +9,7 @@ Our 64-bit Linux VMs include a version of Firefox. While Firefox is not pre-installed on macOS images, you can use this addon to set it up for use on your builds. -## Selecting a Firefox version +## Select a Firefox version To install a specific version of Firefox, you can use the Firefox addon. The addon will download and install Firefox before running your build script. @@ -36,4 +36,4 @@ In addition to specific version numbers, there are 6 special aliases you can use The `latest-unsigned` binary is an unbranded build, suitable for [Add-ons/Extensions Signing](https://wiki.mozilla.org/Addons/Extension_Signing#Unbranded_Builds). -For more information visit the [Mozilla Wiki](https://wiki.mozilla.org/Firefox/Channels#Developer_Edition_.28aka_Aurora.29). +For more information, visit the [Mozilla Wiki](https://wiki.mozilla.org/Firefox/Channels#Developer_Edition_.28aka_Aurora.29). diff --git a/user/for-beginners.md b/user/for-beginners.md index cbcd5b91b88..088ac43f792 100644 --- a/user/for-beginners.md +++ b/user/for-beginners.md @@ -10,7 +10,7 @@ Welcome to Travis CI! This page provides some contexts and terminologies used throughout the platform and documentation, which might be helpful, if you are new here or new to Continuous Integration (CI). -## What Is Continuous Integration (CI)? +## What Is Continuous Integration? Continuous Integration is the practice of merging in small code changes frequently - rather than merging in a large change at the end of a development @@ -22,7 +22,7 @@ process by automatically building and testing code changes, providing immediate feedback on the success of the change. Travis CI can also automate other parts of your development process by managing deployments and notifications. -## CI Builds and Automation: Building, Testing, Deploying +## CI Builds and Automation: Build, Test, and Deploy When you run a build, Travis CI clones your GitHub repository into a brand-new virtual environment, and carries out a series of tasks to build and test your @@ -36,7 +36,7 @@ you can have jobs depend on each other with [Build Stages](/user/build-stages/), set up [notifications](/user/notifications/), prepare [deployments](/user/deployment/) after builds and many other tasks. -## Builds, Stages, Jobs and Phases +## Builds, Stages, Jobs, and Phases In the Travis CI documentation, some common words have specific meanings: @@ -52,7 +52,7 @@ In the Travis CI documentation, some common words have specific meanings: of a *job*. For example, the `install` phase, comes before the `script` phase, which comes before the optional `deploy` phase. -## Breaking the Build +## Broken Builds The build is considered *broken*, when one or more of its jobs complete with a state that is not *passed*: diff --git a/user/github-oauth-scopes.md b/user/github-oauth-scopes.md index 87282cc2856..29d56505010 100644 --- a/user/github-oauth-scopes.md +++ b/user/github-oauth-scopes.md @@ -7,11 +7,11 @@ layout: en When you sign in to Travis CI for the first time, we ask for permission to access some of your data on GitHub. Read the [GitHub API Scope Documentation](https://developer.github.com/v3/oauth/#scopes) for general information about this, or pick an explanation of what data we need and why we need it. -## Travis CI GitHub OAuth App access rights +## Access rights for Travis CI GitHub OAuth App {{ site.data.snippets.github_oauth_access_rights }} -## Travis CI for Open Source and Private Projects +## Travis CI for Open-Source and Private Projects On , via our GitHub Apps integration, we ask for the following permissions: @@ -24,7 +24,9 @@ On , via our GitHub Apps integration, we ask for the foll Before GitHub Apps, we used scoped OAuth tokens to integrate with GitHub. As of May 2018, OAuth-based integration is considered our "Legacy" integration. -### Repositories on https://travis-ci.com (Private and public) +### Private and Public Repositories + +The following section shows how to use Repositories on https://travis-ci.com (Private and public). - `user:email` (read-only) diff --git a/user/gl-oauth-scopes.md b/user/gl-oauth-scopes.md index b9afe381df3..8b2f3841f83 100644 --- a/user/gl-oauth-scopes.md +++ b/user/gl-oauth-scopes.md @@ -5,12 +5,12 @@ permalink: /user/gl-oauth-scopes/ --- -When you sign in to Travis CI for the first time, we ask for permissions to access +When you sign in to Travis CI for the first time, we ask for permission to access some of your data on GitLab. Read the [Scopes for the GitLab REST API](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html) for general information about this, or pick an explanation of what data we need and why we need it. -## Travis CI for Open Source and Private Projects +## Travis CI for Open-Source and Private Projects On , via our GitLab integration, we ask for the following permissions: @@ -25,14 +25,14 @@ We use scoped OAuth tokens to integrate with GitLab. ## Used Scopes ### repository -Gives the app read access to all the repositories the authorizing user has access to. +It gives the app read access to all the repositories the authorizing user has access to. > This scope does not give access to a repository's pull requests. ### repository:admin Gives the app admin access to all the repositories the authorizing user has access to. This permission is needed to add the access key. Travis CI uses the key to read the travis.yml file content. -### pullrequest +### pull-request Gives the app read access to pull requests and collaborate on them. This scope implies repository, giving read access to the pull request's destination repository. ### email @@ -45,9 +45,9 @@ Ability to see all the user's account information. Note that this does not inclu The ability to find out what groups the current user is part of. This is covered by the teams endpoint. ### webhook -Gives access to webhooks. This scope is required for any webhook related operation. +Gives access to webhooks. This scope is required for any webhook-related operation. -This scope gives read access to existing webhook subscriptions on all resources you can access, without needing further scopes. +This scope gives read access to existing webhook subscriptions to all resources you can access without needing further scopes. This means that a client can list all existing webhook subscriptions on repository foo/bar (assuming the principal user has access to this repo). The additional repository scope is not required for this. 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 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 diff --git a/user/hashicorp-vault-integration.md b/user/hashicorp-vault-integration.md index 39c1edba245..86815deff1e 100644 --- a/user/hashicorp-vault-integration.md +++ b/user/hashicorp-vault-integration.md @@ -63,9 +63,9 @@ vault: See usage examples below: -#### Single `.travis.yml` file +### Single .travis.yml file -**As a data accessible for all jobs in the build definition:** +**As data accessible for all jobs in the build definition:** ```yaml os: linux @@ -85,7 +85,7 @@ script: ``` {: data-file=".travis.yml"} -**As a datat accessible only within one of many jobs:** +**As data accessible only within one of many jobs:** ```yaml os: linux @@ -109,7 +109,7 @@ jobs: ``` {: data-file=".travis.yml"} -#### Imported shared build configuration +### Import shared build configuration ```yaml vault: diff --git a/user/hostname.md b/user/hostname.md index b820fc413ca..f496d831461 100644 --- a/user/hostname.md +++ b/user/hostname.md @@ -13,4 +13,4 @@ addons: This is useful when your processes require a short hostname. For example, [OpenJDK 6 and OpenJDK 7 processes will encounter -buffer overflows when the host name is too long](https://github.com/travis-ci/travis-ci/issues/5227). +buffer overflows when the hostname is too long](https://github.com/travis-ci/travis-ci/issues/5227). diff --git a/user/ibm-power.md b/user/ibm-power.md index 5dcbb6cea9c..227e6ecf893 100644 --- a/user/ibm-power.md +++ b/user/ibm-power.md @@ -13,11 +13,11 @@ layout: en _TODO_ -## How do I test on IBM POWER? +## Test on IBM POWER _TODO_ -## What features are available on IBM POWER? +## IBM POWER Features ## Examples diff --git a/user/installing-dependencies.md b/user/installing-dependencies.md index e8e9e409554..312efb778eb 100644 --- a/user/installing-dependencies.md +++ b/user/installing-dependencies.md @@ -8,7 +8,7 @@ redirect_from: -## Installing Packages on Standard Infrastructure +## Install Packages on Standard Infrastructure To install Ubuntu packages that are not included in the standard [precise](/user/reference/precise/), [trusty](/user/reference/trusty/), [xenial](/user/reference/xenial/), or [bionic](/user/reference/bionic/) distribution, use apt-get in the `before_install` step of your `.travis.yml`: @@ -42,7 +42,7 @@ addons: > > Use the `-y` parameter with apt-get to assume yes to all queries by the apt tools. -### Installing Packages from a custom APT repository +### Install Packages from a custom APT Repository For some packages, you may find an existing repository, which isn't yet set up on our build environment by default. You can easily add custom repositories and Launchpad PPAs as part of your build. @@ -71,7 +71,7 @@ before_script: ``` {: data-file=".travis.yml"} -### Installing Packages without an APT Repository +### Install Packages without an APT Repository For some projects, there may be a Debian/Ubuntu package available, but no corresponding APT repository. These are still easy to install, but require the extra step of downloading. @@ -86,13 +86,13 @@ before_install: ``` {: data-file=".travis.yml"} -### Installing Packages with the APT Addon +### Install Packages with the APT Addon You can also install packages and sources using the APT addon, without running `apt-get` commands in your `before_install` script. -If your requirements goes beyond the normal installation, please use another method described above. +If your requirements go beyond the normal installation, please use another method described above. -#### Adding APT Sources +#### Add APT Sources To add APT sources, you can use one of the following three types of entries: @@ -100,7 +100,7 @@ To add APT sources, you can use one of the following three types of entries: 2. `sourceline` key-value pairs which will be added to `/etc/apt/sources.list` 3. when APT sources require GPG keys, you can specify this with `key_url` pairs in addition to `sourceline`. -The following snippet shows these three types of APT sources +The following snippet shows these three types of APT sources. ```yaml addons: @@ -113,7 +113,7 @@ addons: ``` {: data-file=".travis.yml"} -#### Adding APT Packages +#### Add APT Packages List APT packages under the `addons.apt.packages` key: @@ -144,7 +144,7 @@ addons: > You can also have a look at the [Apt](https://config.travis-ci.com/ref/job/addons/apt) section in our [Travis CI Build Config Reference](https://config.travis-ci.com/). -### Installing Snap Packages with the Snaps Addon +### Install Snap Packages with the Snaps Addon You can install [snap](http://snapcraft.io/) packages using our Xenial or Bionic images: @@ -182,7 +182,7 @@ of the two possible forms: $ sudo snap install hugo ``` -1. The map specifying how the snap should be installed. Possible keys are: +1. The map specifies how the snap should be installed. Possible keys are: `name`, `confinement`, and `channel`. The `confinement` key will be used to add `--classic` or `--devmode` flag, and `channel` will be passed to `--channel` flag. @@ -206,7 +206,7 @@ of the two possible forms: `confinement` and `channel` are optional. -## Installing Packages on macOS +## Install Packages on macOS To install packages that are not included in the [default macOS environment](/user/reference/osx/#compilers-and-build-toolchain) use [Homebrew](http://brew.sh). @@ -232,7 +232,7 @@ addons: ``` {: data-file=".travis.yml"} -### Installing Casks +### Install Casks The Homebrew addon also supports installing [casks][homebrew-cask]. You can add them to the `casks` key in the Homebrew addon configuration to install them: @@ -246,7 +246,7 @@ addons: ``` {: data-file=".travis.yml"} -### Installing From Taps +### Install From Taps Homebrew supports installing casks and packages from third-party repositories called [taps][homebrew-tap], and you can use these with the Homebrew addon. @@ -264,9 +264,9 @@ addons: ``` {: data-file=".travis.yml"} -### Using a Brewfile +### Use Brewfile -Under the hood, the Homebrew addon works by creating a `~/.Brewfile` and running `brew bundle --global`. You can also use the addon to install dependencies from your own [Brewfile][] that is checked in to your project. By passing `brewfile: true`, the addon will look for a `Brewfile` in the root directory of your project: +Under the hood, the Homebrew addon works by creating a `~/.Brewfile` and running `brew bundle --global`. You can also use the addon to install dependencies from your own [Brewfile][] that is checked into your project. By passing `brewfile: true`, the addon will look for a `Brewfile` in the root directory of your project: [brewfile]: https://github.com/Homebrew/homebrew-bundle @@ -286,7 +286,7 @@ addons: ``` {: data-file=".travis.yml"} -### Using Homebrew without addon on older macOS images +### Use Homebrew without addon on older macOS images If you're running the `brew` command directly in your build scripts, and you're using an older macOS image, you may see a warning such as this: @@ -303,7 +303,7 @@ rvm use $TRAVIS_RUBY_VERSION # optionally, switch back to the Ruby version you n > You can also have a look at the [Homebrew](https://config.travis-ci.com/ref/job/addons/homebrew) section in our [Travis CI Build Config Reference](https://config.travis-ci.com/). -## Installing Packages on FreeBSD +## Install Packages on FreeBSD To install packages that are not included in the default FreeBSD environment use `pkg` in the `before_install` step of your `.travis.yml`: @@ -323,7 +323,7 @@ addons: ``` {: data-file=".travis.yml"} -## Installing Dependencies on Multiple Operating Systems +## Install Dependencies on Multiple Operating Systems If you're testing on both Linux and macOS, you can use both the APT addon and the Homebrew addon together. Each addon will only run on the appropriate platform: @@ -344,7 +344,7 @@ install: ``` {: data-file=".travis.yml"} -## Installing Projects from Source +## Install Projects from Source Some dependencies can only be installed from a source package. The build may require a more recent version or a tool or library that's not available as a Ubuntu package. diff --git a/user/integration/platformio.md b/user/integration/platformio.md index dfa3a5f17e0..04d377ef0c0 100644 --- a/user/integration/platformio.md +++ b/user/integration/platformio.md @@ -1,5 +1,5 @@ --- -title: Embedded Builds with PlatformIO +title: Embed Builds with PlatformIO layout: en --- @@ -8,7 +8,7 @@ layout: en ## Overview -[PlatformIO](http://platformio.org/) is a cross-platform code-builder and library manager for embedded development with no external dependencies. Using PlatformIO you can compile your code on multiple platforms, frameworks and boards. Unit testing requires a [monthly subscription](http://platformio.org/pricing). +[PlatformIO](http://platformio.org/) is a cross-platform code-builder and library manager for embedded development with no external dependencies. Using PlatformIO you can compile your code on multiple platforms, frameworks, and boards. Unit testing requires a [monthly subscription](http://platformio.org/pricing). - *Platforms* - pre-built different development platforms for the most popular host OS (macOS, Windows, Linux 32/64bit, Linux ARMv6+). Each of them includes compiler, debugger, uploader, etc: @@ -31,7 +31,7 @@ layout: en [Full list](http://platformio.org/#!/boards) at PlatformIO -## .travis.yml Settings +## .travis.yml file Settings Please read the official [PlatformIO & Travis CI](http://docs.platformio.org/en/latest/ci/travis.html) documentation before using PlatformIO. @@ -61,7 +61,7 @@ script: ``` {: data-file=".travis.yml"} -### Testing Libraries +### Test Libraries If the project you are testing is a library, please use the `--lib="."` option for the [platformio ci](http://docs.platformio.org/en/latest/userguide/cmd_ci.html#cmdoption-platformio-ci-l) command @@ -71,7 +71,7 @@ script: ``` {: data-file=".travis.yml"} -### Managing dependencies +### Manage dependencies There are two options for testing projects with external dependencies: @@ -92,7 +92,7 @@ install: ``` {: data-file=".travis.yml"} -#### Installing dependencies manually +#### Install dependencies manually For the dependencies not available in the PlatformIO Library Registry: @@ -126,7 +126,7 @@ install: ``` {: data-file=".travis.yml"} -More details available at [build flags/options](http://docs.platformio.org/en/latest/projectconf.html#build-flags). +More details are available at [build flags/options](http://docs.platformio.org/en/latest/projectconf.html#build-flags). ### Advanced configuration diff --git a/user/ip-addresses.md b/user/ip-addresses.md index f49b17dd18d..2722ac2c935 100644 --- a/user/ip-addresses.md +++ b/user/ip-addresses.md @@ -4,7 +4,7 @@ layout: en --- -Knowing the IP addresses of the build machines which Travis CI uses can be helpful +Knowing the IP addresses of the build machines that Travis CI uses can be helpful when you need them safelisted to access your internal resources. Since builds run in a variety of different infrastructures, the IP ranges to safelist depend on the infrastructure your builds are running on. @@ -47,7 +47,7 @@ If this occurs, reconfigure your servers to allow for connections from multiple ## Notification -We will announce changes to this set of IP addresses with a 24 hour notice period. We recommend you use the DNS record to keep track automatically, but if you require a manual notification, you can subscribe to the mailing list: +We will announce changes to this set of IP addresses with a 24-hour notice period. We recommend you use the DNS record to keep track automatically, but if you require a manual notification, you can subscribe to the mailing list: diff --git a/user/job-lifecycle.md b/user/job-lifecycle.md index cf29a69e16f..f99df2e30ea 100644 --- a/user/job-lifecycle.md +++ b/user/job-lifecycle.md @@ -118,7 +118,7 @@ script: bundle exec rake build && bundle exec rake builddoc The example above fails immediately when `bundle exec rake build` fails. Note the `&&` -### Use the `$?` Command +### Use the $? Command Each command in `script` is processed by a special bash function. This function manipulates the `$?` command to produce logs suitable for display. Consequently, you should not rely on the value of `$?` in the `script` section to alter the build behavior. @@ -158,7 +158,7 @@ Follow these steps to run that script from your `.travis.yml` file: ``` {: data-file=".travis.yml"} -#### Use the `exit` Command +#### Use the exit Command After specifying the steps in the job lifecycle, these are compiled into a single bash script and executed on the worker. @@ -181,7 +181,7 @@ The exit code of `after_success`, `after_failure`, `after_script`, `after_deploy To troubleshoot more common issues, see our [Common Builds Problems](/user/common-build-problems/) documentation. -## Deploying your Code +## Code Deployment Deployment is an optional phase in the job lifecycle. It is defined by using one of our continuous deployment providers to deploy code to Heroku, Amazon, or a different supported platform. diff --git a/user/jwt.md b/user/jwt.md index fe056f34404..68812e292ac 100644 --- a/user/jwt.md +++ b/user/jwt.md @@ -12,18 +12,18 @@ Integration between Travis-CI and third-party services like Sauce Labs relies on [encrypted variables](/user/environment-variables/#encrypting-environment-variables) which works well for trusted branches and committers. For security reasons, encrypted variables are not exposed to untrusted pull requests, -so builds of pull requests do not have access to third party integrations. +so builds of pull requests do not have access to third-party integrations. The JWT addon replaces encrypted variables with a time-limited authentication token, which is exposed to pull requests without security consequences. For this to work the JWT addon needs to be enabled in the `.travis.yml` file, -and the third-party need to have integrated with the JWT service and allow +and the third-party needs to have integrated with the JWT service and allow token-based authentication. JWT Travis Flow Diagram -### .travis.yml +### .travis.yml file Add the encrypted key to the `jwt` section of the `.travis.yml` file. This can be done manually or using the `travis encrypt` command @@ -67,7 +67,7 @@ environment variables containing the JWT tokens instead of the original values. For example, using the previous configuration `SAUCE_ACCESS_KEY` and `THIRDPARTY_SHARED_SECRET` will be available as environment variables. -### How secure is this addon? +### Secure the addon The JWT token is only valid for 90 minutes. It is signed in a way that lets you securely transmit your secret information without worrying that it is leaked. @@ -106,7 +106,7 @@ Where: - `exp` will be when the token expires (now + 5400 seconds, so 90 minutes) - `iat` is the issued at time (now) -### Third Party Service Provider Code Sample +### Third-Party Service Provider Code Sample A code sample which illustrates how to add JWT token authentication to third party services. @@ -125,7 +125,7 @@ The HTTP BASIC AUTH header's payload is base64 encoded which will decode to stri johndoe:eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJ0cmF2aXMtY2kub3JnIiwic2x1ZyI6InRyYXZpcy1jaS90cmF2aXMtY2kiLCJwdWxsLXJlcXVlc3QiOiIiLCJleHAiOjU0MDAsImlhdCI6MH0.soQJgHR6cGNr9Lj_N6yL2Nk5SQug-hXGUPenJy1QTVc ``` -The colon separated string contains the username before the colon and the JWT +The colon-separated string contains the username before the colon and the JWT token after the colon. The username is used to retrieve the user object from the user database. Below is a function which is executed against the user object and the token to validate them for authentication. Please note that the @@ -154,7 +154,7 @@ def authenticate(user, access_key): return False ``` -## List of Third-Party Services Integrated with the JWT Addon +## Third-Party Services Integrated with the JWT Addon ### Sauce Labs diff --git a/user/languages/android.md b/user/languages/android.md index 1649b41a9f3..e1fa7bb8205 100644 --- a/user/languages/android.md +++ b/user/languages/android.md @@ -1,17 +1,15 @@ --- -title: Building an Android Project +title: Build an Android Project layout: en --- -### What This Guide Covers This guide covers build environment and configuration topics specific to Android projects. Please make sure to read our [Onboarding](/user/onboarding/) and [General Build configuration](/user/customizing-the-build/) guides first. Android builds are not available on the macOS environment. - ## CI Environment for Android Projects ### Overview @@ -60,9 +58,9 @@ android: ``` {: data-file=".travis.yml"} -### How to install Android SDK components +### Install Android SDK Components -In your `.travis.yml` you can define the list of SDK components to be installed, as illustrated in the following example: +In your `.travis.yml`, you can define the list of SDK components to be installed, as illustrated in the following example: ```yaml language: android @@ -77,7 +75,7 @@ android: The exact component names must be specified (filter aliases like `add-on` or `extra` are also accepted). To get a list of available exact component names and descriptions run the command `sdkmanager --list` (preferably in your local development machine). -#### Dealing with Licenses +#### Deal with Licenses By default, Travis CI will accept all the requested licenses, but it is also possible to define a white list of licenses to be accepted, as shown in the following example: @@ -99,7 +97,7 @@ android: For more flexibility, the licenses can also be referenced with regular expressions (using Tcl syntax as `expect` command is used to automatically respond to the interactive prompts). -### Pre-installed components +### Pre-installed Components While the following components are preinstalled, the exact list may change without prior notice. To ensure the stability of your build environment, we recommend that you explicitly specify the required components for your project. @@ -111,7 +109,7 @@ While the following components are preinstalled, the exact list may change witho - extra-google-m2repository - extra-android-m2repository -### How to Create and Start an Emulator +### Create and Start an Emulator **Warning:** At the moment, these steps are not fully supported by Travis CI Android builder. @@ -184,7 +182,7 @@ cache: ## Default Test Command -If Travis CI could not detect Maven or Gradle files, Travis CI Android builder will try to use Ant to build your project. By default it will use +If Travis CI cannot detect Maven or Gradle files, Travis CI Android builder will try to use Ant to build your project. By default, it will use ```bash ant debug install test @@ -192,7 +190,7 @@ ant debug install test to run your test suite. This can be overridden as described in the [general build configuration](/user/customizing-the-build/) guide. -## Testing Against Multiple JDKs +## Test against Multiple JDKs As for any JVM language, it is also possible to [test against multiple JDKs](/user/languages/java/#testing-against-multiple-jdks). @@ -200,7 +198,7 @@ As for any JVM language, it is also possible to [test against multiple JDKs](/us For Android projects, `env` and `jdk` can be given as arrays to construct a build matrix. -## Building Android projects on new build environments +## Build Android projects on new build environments The `dist: trusty` build environment is the only supported build environment for Android but if you would like to build on newer build environments e.g. `dist: jammy`, you can exercise your access to the Travis CI build environments and install required packages and tools. An example .travis.yml config can be reviewed below: diff --git a/user/languages/c.md b/user/languages/c.md index 9f3b088224f..d68e0f15990 100644 --- a/user/languages/c.md +++ b/user/languages/c.md @@ -1,10 +1,9 @@ --- -title: Building a C Project +title: Build a C Project layout: en --- -## What This Guide Covers