diff --git a/_data/language-details/archive_definitions.yml b/_data/language-details/archive_definitions.yml index aac4ccb1b4e..d282958269c 100644 --- a/_data/language-details/archive_definitions.yml +++ b/_data/language-details/archive_definitions.yml @@ -1,2 +1,3 @@ python: {} erlang: {} +php: {} diff --git a/_data/snippets.yml b/_data/snippets.yml index 48f2cd18409..4c6450aa50c 100644 --- a/_data/snippets.yml +++ b/_data/snippets.yml @@ -64,7 +64,7 @@ concurrent_jobs: | auto_cancellation: | 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. cron_jobs: | - Travis CI cron jobs work similarly to the cron utilty, they run builds at regular scheduled intervals independently of whether any commits were pushed to the repository. Cron jobs always fetch the most recent commit on a particular branch and build the project at that state. Cron jobs can run `daily`, `weekly` or `monthly`, which in practice means up to an hour after the selected time span, and you cannot set them to run at a specific time. + Travis CI cron jobs work similarly to the cron utility, they run builds at regular scheduled intervals independently of whether any commits were pushed to the repository. Cron jobs always fetch the most recent commit on a particular branch and build the project at that state. Cron jobs can run `daily`, `weekly` or `monthly`, which in practice means up to an hour after the selected time span, and you cannot set them to run at a specific time. environment_variables: | Variables defined in repository settings are the same for all builds, and when you restart an old build, it uses the latest values. These variables are not automatically available to forks. @@ -114,3 +114,31 @@ enterprise_3_encryption_key_backup: | 1. Make sure you have appropriate access to the kubernetes cluster: you need credentials for `kubectl` and connection to [travis-api-pod] 2. Run `kubectl exec -it [travis-api-pod] cat /app/config/travis.yml |grep -A 2 encryption` (using Travis API pod is recommended). 3. Create a backup of the value returned by that command by either writing it down on a piece of paper or storing it on a different computer. +github_oauth_access_rights: | + When you sign in to [travis-ci.com](https://travis-ci.com) using GitHub for the first time, you will receive a message from GitHub saying: + + > Travis CI by travis-pro wants to access your [account name] account. + + and in the repositorie's section it will state: + + > This application will be able to read and write all public and private repository data. + + This is not how Travis CI accesses your data, however we can explain it later in the process. + + The warning is triggerred due to GitHub OAuth App permissions which Travis CI uses, and due to the available granularity of permission scopes (see GitHub [Scopes for OAuth Apps documentation](https://docs.github.com/en/developers/apps/scopes-for-oauth-apps) ). + + **Travis CI does not access all your repositories by default**. + + Once you acknowledge the access rights, you will see Travis CI OAuth application present in your GitHub [Authorized OAuth Apps list](https://github.com/settings/applications), however **you need to explicitly configure which repositories Travis CI has access to** within your [travis-ci.com](https://travis-ci.com) account. The configuration is done during the activation of Travis CI for your repositories. You can use either the 'All repositories' option or the 'Only select repositories' option during the activation process. + + When the Travis CI activation has completed, you will see the actual Travis CI GitHub Application installed in [Installed GitHub Apps](https://github.com/settings/installations) section. + + Travis CI uses OAuth permissions in the following way: + + 1) Travis CI's system synchronizes certain metadata with GitHub. This metadata is required for proper service functioning. In particular, we sync users, orgs, memberships, repos, permissions and, (optionally) branches. This type of sync happens either once a day by schedule or per the user's request. You can find more information and source code [in this repository](https://github.com/travis-ci/travis-github-sync#syncs) + + 2) In order to run builds, Travis CI's system clones a repository, from which the build is triggered, to the build environment. The build environment is an isolated virtual machine or an LXD container, which gets terminated as soon as the build finishes. Cloning happens only after a build request, and therefore only for the repositories explicitly enabled at GitHub settings. + + 3) To set up a build environment and prepare the build, Travis CI's system fetches and processes the `.travis.yml` config file from the repository and the branch explicitly specified in the build request, triggered by GitHub. + + 4) Travis CI's system reports build results back to GitHub via its [Checks API](https://developer.github.com/v3/checks/). diff --git a/_data/xcodes.yml b/_data/xcodes.yml index d093475db86..8fb5932cdfb 100644 --- a/_data/xcodes.yml +++ b/_data/xcodes.yml @@ -1,4 +1,63 @@ osx_images: + - image: xcode12.2 + xcode: "12.2" + osx_version: "10.15.7" + xcode_full_version: "12.2" + xcode_build_version: "12B5018i" + image_publish_date: 2020-10-06 + sdks: + - iphoneos14.2 + - iphonesimulator14.2 + - macosx11.0 + - appletvos14.2 + - appletvsimulator14.2 + - watchos7.1 + - watchsimulator7.1 + simulators: + - iOS 10.3 + - iOS 11.0 + - iOS 11.1 + - iOS 11.2 + - iOS 11.3 + - iOS 11.4 + - iOS 12.0 + - iOS 12.1 + - iOS 12.2 + - iOS 12.4 + - iOS 13.0 + - iOS 13.1 + - iOS 13.2 + - iOS 13.3 + - iOS 13.4 + - iOS 13.5 + - iOS 14.0 + - tvOS 10.2 + - tvOS 11.0 + - tvOS 11.1 + - tvOS 11.2 + - tvOS 11.3 + - tvOS 11.4 + - tvOS 12.0 + - tvOS 12.1 + - tvOS 12.2 + - tvOS 12.4 + - tvOS 13.0 + - tvOS 13.2 + - tvOS 13.3 + - tvOS 13.4 + - tvOS 14.0 + - watchOS 3.2 + - watchOS 4.0 + - watchOS 4.1 + - watchOS 4.2 + - watchOS 5.0 + - watchOS 5.1 + - watchOS 5.2 + - watchOS 5.3 + - watchOS 6.1 + - watchOS 6.2 + - watchOS 7.0 + jdk: "14.0.2" - image: xcode12u xcode: "12 (Universal)" osx_version: "10.15.5" @@ -15,14 +74,14 @@ osx_images: jdk: "14.0.1" - image: xcode12 xcode: "12" - osx_version: "10.15.5" - xcode_full_version: "12.0" - xcode_build_version: "12A8189h" - image_publish_date: 2020-08-24 + osx_version: "10.15.7" + xcode_full_version: "12.0.1" + xcode_build_version: "12A7300" + image_publish_date: 2020-10-06 sdks: - iphoneos14.0 - iphonesimulator14.0 - - macosx11.0 + - macosx10.15 - appletvos14.0 - appletvsimulator14.0 - watchos7 diff --git a/_includes/deploy/providers/ecr.md b/_includes/deploy/providers/ecr.md new file mode 100644 index 00000000000..bd1727c67f5 --- /dev/null +++ b/_includes/deploy/providers/ecr.md @@ -0,0 +1,45 @@ +{% unless include.minimal == false %} +For a minimal configuration, add the following to your `.travis.yml`: + +```yaml +deploy: + provider: ecr + access_key_id: + secret_access_key: + source: + target: + edge: true # opt in to dpl v2 +``` +{: data-file=".travis.yml"} + + + +{{ include.content }} +{% endunless %} + +## Status + +Support for deployments to AWS ECR is in **alpha**. Please see [Maturity Levels](/user/deployment-v2#maturity-levels) for details. +## Known options + +Use the following options to further configure the deployment. + +| `access_key_id` | AWS access key — **required**, **secret**, type: string | +| `secret_access_key` | AWS secret access key — **required**, **secret**, type: string | +| `account_id` | AWS Account ID — type: string, note: Required if the repository is owned by a different account than the IAM user | +| `source` | Image to push — **required**, type: string, note: can be the id or the name and optional tag (e.g. mysql:5.6) | +| `target` | Comma separated list of partial repository names to push to — **required**, type: string | +| `region` | Comma separated list of regions to push to — type: string, default: `us-east-1` | + +### Shared options + +| `cleanup` | Clean up build artifacts from the Git working directory before the deployment — type: boolean | +| `run` | Commands to execute after the deployment finished successfully — type: string or array of strings | + +## Environment variables + +All options can be given as environment variables if prefixed with `AWS_`. + +For example, `access_key_id` can be given as `AWS_ACCESS_KEY_ID=`. + +{% include deploy/secrets.md name="access_key_id" env_name="AWS_ACCESS_KEY_ID" %} \ No newline at end of file diff --git a/_includes/sidebar.html b/_includes/sidebar.html index 37ad0f94296..adf6a2c594c 100644 --- a/_includes/sidebar.html +++ b/_includes/sidebar.html @@ -135,6 +135,12 @@

Developer Program

  • Triggering Builds with API V3
  • The Ruby Library
  • + +

    Hosted Billing

    +

    Travis CI Enterprise

      diff --git a/images/apps/meercodeio.png b/images/apps/meercodeio.png new file mode 100644 index 00000000000..f96bdb6ea7b Binary files /dev/null and b/images/apps/meercodeio.png differ diff --git a/user/apps.md b/user/apps.md index 0747b6e568d..cf21c03ab96 100644 --- a/user/apps.md +++ b/user/apps.md @@ -92,6 +92,14 @@ By CyanCor - [website](https://buildmonitor.io/) - [source code](https://gitlab.com/BuildMonitor/TravisConnector) +### Meercode CI Build Dashboard + +![meercode.io](/images/apps/meercodeio.png){:.app} + +Meercode is the ultimate monitoring dashboard for your CI/CD builds.
      +By Meercode.io + +- [website](https://meercode.io/) ## Tools diff --git a/user/billing-faq.md b/user/billing-faq.md new file mode 100644 index 00000000000..37b10048112 --- /dev/null +++ b/user/billing-faq.md @@ -0,0 +1,101 @@ +--- +title: Billing FAQ +layout: en +permalink: /user/billing-faq/ + +--- + +> Please see our **[Billing overview](/user/billing-overview/)** first. + +## How can I get on an annual plan? + +The annual based plans are available by contacting the Travis CI support team. + + +## How can I get on the usage based plan? + +The usage based plan is available by contacting theTravis CI support team. + +## How are the credits deducted? + +The credits will be deducted from the credits pool after each build job is executed depending on the operation system used. + +## 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 billing period will constitute a number of actual user licenses used and will be charged at the end of the billing period, according to the rates in a selected plan. + +By default Travis CI system provides the possibility to trigger a build to all members of your team on GitHub, Bitbucket, GitLab and Assembla who have writing rights on repositories. +If the team member has not triggered the build during the billing period Travis CI will not charge you for that user. + + +To check how much active users you got during the last billing cycle please contact the support. +Travis CI is working on the user management functionality where you will be able: + +* 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 + +## What if I am building open source? + +Each of the Travis CI Plans contains 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 do I use credits? + +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? + +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. +Please be advised that it is not possible to buy additional credits on Free Plan. + + +## Do credits expire? + +No, the credits you purchased do not expire. + +## Can you send me an invoice? + +The invoice is sent automatically by the Travis CI system after the Plan purchase or subsequent user license charge is made. + + +## Can I get a refund? + +Upon cancellation of your account or switching back to the Free Plan, you can request a refund under the following conditions: + +* You haven’t used any paid credits +* Request made up to and including 14 days after the billing date: applicable for full refund + +Contact our support team at support@travis-ci.com Specify the GitHub/Bitbucket/GitLab/Assembla handle of the account for which you’re requesting a refund, and send us a copy of your payment and/or invoice. + + +## How do I cancel my paid plan? + +If you want to cancel your paid plan, click on your profile icon in the right upper corner of the screen =>Settings, navigate to the Plan page and press the ‘Change Plan’ button and choose the Free Plan. +Travis CI Free plan will provide you with 10,000 build credits to try it out for public and private repositories builds and unlimited number of users with no charge. +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. + +## Can I sign up for automatic renewals for usage based plan? + +The per-seats licence invoice will be charged and sent automatically after each month you use the Travis CI service, based on the maximum number of unique users who triggered the build during the given month. +Unfortunately, right now it is not possible to configure automatic renewals for build credits. You need to manually buy credits each time you are about to run out of them. We intend to make it more convenient in the near future. +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%. + +## 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. + +## Why my credits balance is 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). + + diff --git a/user/billing-overview.md b/user/billing-overview.md new file mode 100644 index 00000000000..bb689a28e55 --- /dev/null +++ b/user/billing-overview.md @@ -0,0 +1,156 @@ +--- +title: Billing Overview +layout: en +permalink: /user/billing-overview/ + +--- + +> A new billing engine has been introduced on November 1st, 2020 to [https://travis-ci.com](https://travis-ci.com) + +## Travis CI Plan types + + +Travis CI billing system consists of two types of subscriptions: Concurrent based plans and Usage based plan. +The variety of plans provides you with flexibility to choose the plan that suits your needs. + + +| Billing Period | Concurrency based | Usage based | +|:------- |:-----------------:|:-----------:| +|Month | Concurrent jobs limit
      Unlimited build minutes on Linux, Windows, and FreeBSD
      Paid macOS builds (credits)

      Available via [site](https://travis-ci.com/account/plan) | Very high or no concurrency limit
      Paid macOS, Linux, Windows, and FreeBSD build minutes (credits)
      Paid user licenses (only per users trigerring the builds)

      Contact Travis CI to obtain| + +For majority of users one of concurrency based plans should be sufficient. However if you build a lot of minutes per month and concurrency becomes a bottleneck, please contact Travis CI asking for Usage based plan. + +### Free Plan + +A 'Free' Plan, assigned automatically to every new sign up, is a Usage based plan without limits on users and comes with a trial pool of credits to be used. Once these credits are used they are not replenished. Request [OSS Credits allowance](/user/billing-faq/#what-if-i-am-building-open-source) or please consider one of our available plans. + + +## Concurrency based plans + +Concurrency based plans are much like what Travis CI has been offering already for a long time: an ability to run a build consisting of X concurrent jobs. +In Travis CI builds are executed singularly, without exceeding limitations. Therefore, if executing multiple builds at the same time or executing a build with multiple build jobs, once the concurrency limit is reached, the reminder builds/jobs must wait until there is a queue capacity available for processing. + +> If a user on the 2 concurrent jobs plan executes a build with 5 build jobs, only the first 2 builds are processed while the remaining 3 of the builds wait in line to be processed. +> +> If a user/organization subscribes to the 5 concurrent jobs plan and executes 2 builds consisting of 5 jobs each, the second build will be sitting in the queue and waiting to be executed after the 5 jobs of the first build are done. + +Linux, Windows and FreeBSD builds are included in the price on these plans. The macOS builds are paid separately on concurrency plans, and can be run after purchasing the separate credits add-on. +Credits are used to pay for each build job minute on macOS. Purchase only the credits you need and use them until you run out. Please see more in 'Usage based' section. + +> If a user/organization on the 2 concurrent jobs Plan executes build with jobs for `os: linux` and `os: freebsd` it will execute as soon as the concurrency capacity is available for particular build jobs. +> +> 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://travis-ci.com/account/plan)), this build will not execute. In order to overcome that, an add-on must be purchased, e.g. 25k credits. Now the build can be executed and pre-defined amount of [credits will be charged for each build minute](/user/billing-overview/#usage---credits). + + +### Concurrency based Plan - Summary + +| Area | Details | +| :--- | --- | +| **Payment** | The subscription is charged automatically in advance, at the beginning of each billing period.
      The optional credits for macOS builds can be purchased at any time and used only when you need them. Charge is applied immediately upon transaction. | +| **Private/Public repositories** | With paid subscription you can build over both private and public repositories. | +| **Build job limits** | As per Plan | + + +### Concurrency Plan - How to obtain? + +1. Sign in to Travis CI with [Version Control System of your choice](/user/tutorial/). +2. Navigate to the [Plans](https://travis-ci.com/account/plan) and select of of 'X concurrent jobs Plan'. +3. Enter your billing details. **Please note, that all prices are provided netto, w/o any VAT or other applicable local taxes**. If you are EU based VAT paying company, do not forget to enter your VAT number. +4. Confirm transaction. + + + +## Usage based plans + +> **If you are running a large number of builds or users each month, please [contact Travis CI support](mailto:support@travis-ci.com) if you’d like to discuss your plan.** + +The usage based pricing system charges users and organizations depending on the amount of minutes each of the build jobs run on Travis CI infrastructure. +The usage based pricing is a pre-paid model for credits and subscriptions for per-user-license. In other words, users and organizations can run as many build jobs as they want at the same time, meaning that all builds are executed as soon as possible without limitations. +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. + +> The usage based pricing model bills based on minutes used (via credits) and number of users executing those builds (via user licenses). Users subscribe to a plan that provides them an allocation of credits to be used towards build minutes and a pricing for specific number of user licenses. The credits are deducted from the users 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 and will be charged at the end of the billing period, according to the rates of their selected plan. + + +### Usage - Credits + +Credits are purchased at your discretion as an 'addon'. The Plan you are on determines what selection addons is available for you. Credit addons are paid in advance. +Thus whenever you select or are assigned an Usage based plan: + +* Plan has the default allotment of credits associated (default Credits addon) +* Only advance charge is related to the allotment of credits available initially in the Plan, e.g. Plan coming with 25,000 credits will result in immediate charge according to the enlisted price + +Credits are deducted from your balance each time a build job ends either with some result or is cancelled manually by you. Each started build job minute has a credit cost associated with the environment as per table below. + +| OS | # Credits per
      started build minute | +|:--------------------:|:-----------:| +| Linux | 10 | +| Experimental FreeBSD | 10 | +| Windows | 20 | +| MacOS | 50 | + +Build job minutes are counted from the moment when [VM or LXD container](/user/reference/overview/#virtualization-environments) is spun up, thus queue waiting time or spinning-up time are not taken into the account when calculating job duration time. + +Additional credits can be purchased at any time. Credits are replenished by purchasing credits addon. + +> Automated credits purchasing is not available yet, please follow our blog and twitter for updates. + +Your credits remain available until you use them or disband them. At the moment we do not discard unusued paid credits after 12 months, yet this may be a subject to change on short notice. + +You may disband your credits. It will happen when + +* you switch from usage based plan to a Free Plan (which cancels the paid Plan) + +and is meant to prevent abusive usage of the system. + +#### Negative Credits + +By design, the billing system allows the build job to be finished even if the possible cost of build job expressed in credits exceeds available credits balance. After such build being finished you may notice your credit balance being negative. **This is perfectly normal.** Whenever your credits get replenished, e.g. after purchasing an addon, the negative balance will be deducted from newly arriving credit pool. What remains is your available credits balance for your builds. + + +#### Credits vs. OSS Only Credits + +Credits can be used to build both over private and public repositories. + +On occassion, an allotment of OSS Only credits may be granted by Travis CI. These credits may be used only for builds over public repositories and are meant for open source support. +The OSS credits may be assigned as one time pool or renewable pool, subject to case by case assesment of Travis CI staff. + +The OSS credits is a pool of credits completely separate from regular credits, with separate credits balance tracking. + + +#### Free Plan Credits + +Each new user gets automatically assigned to the Free Plan upon signing up. The Free plan contains a one time pool of Credits, not renewable. This plan is meant to let you familiarize with our usage based plans as well as to try out other Travis CI features. + + +### Usage - User Licenses + +Usage based plan 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 current billing period. At the end of the month the total amount is used to calculate the user license charge. + +> If a person A triggers a build, and a 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 trigerring remains 2 (assuming builds are trigerred within the same billing period). Only when user C triggers a build within the same billing period the amount 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. We are preparing a separate page in your Travis CI account page, which will allow you to manage which users exactly are allowed to trigger the build in order to give you more control. Please watch out for updates. + +### Usage based Plan - Summary + +| Area | Details | +| :--- | --- | +| **Payment** | Credits are paid in advance:
      1. Upon purchasing a Plan, an immediate charge is applied depending on credits allotment coming with a Plan.
      2. The additional credit addons can be purchased at any time and credits used only when you need them. Charge is applied immediately upon transaction.

      The user license cost is charged automatically in arrears, at the end of each billing period. The number of unique users trigerring a build is charged according to the license rates. | +| **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** | None or very high.

      The Free Plan assigned automatically upon sign-up has a limit of 20 concurrent jobs. | + + +### Usage based Plan - How to obtain? + +1. Sign in to Travis CI with [Version Control System of your choice](/user/tutorial/). +2. Navigate to the [Plans](https://travis-ci.com/account/plan) and make sure you have your billing and contact details filled in correctly. +3. Contact [Travis CI support](mailto:support@travis-ci.com) requesting Usage based Plan. + + +## Getting Help + +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. + +We’d love to hear what you think of our new Pricing and if there’s something that you’d like to see included or improved! Let us know in the Travis CI Community Forum. diff --git a/user/build-config-yaml.md b/user/build-config-yaml.md index 103c773870f..03333348030 100644 --- a/user/build-config-yaml.md +++ b/user/build-config-yaml.md @@ -6,7 +6,7 @@ layout: en Travis CI uses YAML as the primary language for build configuration stored in the main `.travis.yml` build config file, as well as other config sources -imported using the [Build Config Imports](/build-config-imports) feature. +imported using the [Build Config Imports](/user/build-config-imports) feature. This page documents a few noteworthy pieces of information about how Travis CI uses YAML. diff --git a/user/caching.md b/user/caching.md index 1ab1ee5ab9a..a153752d643 100644 --- a/user/caching.md +++ b/user/caching.md @@ -432,7 +432,7 @@ jobs should use. These factors are: 1. OS name (currently, `linux`, `osx`, or `windows`) -2. OS distribution (for Linux, `xenial`, `trusty`, or `precise`) +2. OS distribution (for Linux, `focal`, `bionic`, `xenial`, `trusty`, or `precise`) 3. macOS image name (e.g., `xcode7.2`) 4. Names and values of visible environment variables set in `.travis.yml` or Settings panel 5. Language runtime version (for the language specified in the `language` key) if applicable diff --git a/user/common-build-problems.md b/user/common-build-problems.md index 54e506a2bb1..2242cc0dd80 100644 --- a/user/common-build-problems.md +++ b/user/common-build-problems.md @@ -608,7 +608,7 @@ jobs: ``` {: data-file=".travis.yml"} -The above definition, creates a stage called **Breakfast** and 2 jobs. The first job is an _implicit_ job that inherits all the default values for the programming language specified. In the example above, the [default values for `C`](user/languages/c/#what-this-guide-covers) will be used while the second job is the _Peanut Butter and Bread_, which you have explicitly defined. +The above definition, creates a stage called **Breakfast** and 2 jobs. The first job is an _implicit_ job that inherits all the default values for the programming language specified. In the example above, the [default values for `C`](/user/languages/c/#what-this-guide-covers) will be used while the second job is the _Peanut Butter and Bread_, which you have explicitly defined. To remove this _implicit_ job, you would edit the above to look like: diff --git a/user/database-setup.md b/user/database-setup.md index 3690ff6330e..7ebceb12fe0 100644 --- a/user/database-setup.md +++ b/user/database-setup.md @@ -160,21 +160,29 @@ addons: Many PostgreSQL versions have been preinstalled in our build environments, and others may be added and activated at build time by using a combination of the -`postgresql` and `apt` addons along with a global env var override for `PGPORT`: +`postgresql` and `apt` addons along with a global env var override for `PGPORT` and for `PGUSER`: ``` yaml addons: - postgresql: "10" + postgresql: "11" apt: packages: - - postgresql-10 - - postgresql-client-10 + - postgresql-11 + - postgresql-client-11 env: global: - PGPORT=5433 + - PGUSER=travis ``` {: data-file=".travis.yml"} +In the Xenial images Postgres 9.4 through 9.6 just need the version specified and use the user +`postgres` by default and the default port of 5432. + +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 Install the version of PostGIS that matches your PostgreSQL version, and activate the PostGIS extension using: @@ -324,7 +332,9 @@ services: ``` {: data-file=".travis.yml"} -CouchDB binds to 127.0.0.1, uses default configuration and does not require authentication (in CouchDB terms it runs in admin party). +CouchDB binds to 127.0.0.1, uses default configuration on `dist:xenial` and earlier Linux distributions and does not require authentication (in CouchDB terms it runs in admin party). + +However for `bionic`, authentication is required with username `admin` and password `travis` e.g. `curl -X PUT http://admin:travis@localhost:5984/`. Before using CouchDB you need to create the database as part of your build process: diff --git a/user/deepsource.md b/user/deepsource.md index fe42e8d8359..f82ad4cf1e0 100644 --- a/user/deepsource.md +++ b/user/deepsource.md @@ -28,14 +28,14 @@ name = "test-coverage" enabled = true ``` -Refer to [DeepSource's analyzer documentation](https://deepsource.io/docs/analyzers/) for instructions specific to the analyzer. +Refer to [DeepSource's analyzer documentation](https://deepsource.io/docs/analyzer/) for instructions specific to the analyzer. ## Install CLI and push artifacts - Install deepsource CLI by executing `curl https://deepsource.io/cli | sh` - Report the artifact by executing `./bin/deepsource report --analyzer --key --value-file ` -Refer to [DeepSource CLI documentation](https://deepsource.io/docs/configuration/cli.html) for detailed instructions. +Refer to [DeepSource CLI documentation](https://deepsource.io/docs/config/cli.html) for detailed instructions. ## Example diff --git a/user/deployment-v2.md b/user/deployment-v2.md index a45a3d1c08c..aa5d49c91df 100644 --- a/user/deployment-v2.md +++ b/user/deployment-v2.md @@ -17,7 +17,7 @@ Continuous Deployment to the following providers is supported:
    To deploy to a custom or unsupported provider, use the [after-success build -step](/user/deployment/custom/) or [script provider](/user/deployment/providers/script). +step](/user/deployment/custom/) or [script provider](/user/deployment/script). {% include deploy/pull_requests.md %} {% include deploy/maturity_levels.md %} diff --git a/user/deployment/pages.md b/user/deployment/pages.md index f91219d223a..b2560358dda 100644 --- a/user/deployment/pages.md +++ b/user/deployment/pages.md @@ -23,7 +23,7 @@ deploy: github_token: $GITHUB_TOKEN # Set in the settings page of your repository, as a secure variable keep_history: true on: - branch: master + branch: main ``` {: data-file=".travis.yml"} diff --git a/user/docker.md b/user/docker.md index 29cf6730e05..4e4aa6b6874 100644 --- a/user/docker.md +++ b/user/docker.md @@ -6,6 +6,8 @@ layout: en +> Please note that, due to the upcoming [Docker Rate Limit announcement](https://docs.docker.com/docker-hub/download-rate-limit/), users will be required to add their own authentication information to their build settings or build config as documented below. + Travis CI builds can run and build Docker images, and can also push images to Docker repositories or other remote storage. diff --git a/user/enterprise/tcie-3.x-setting-up-travis-ci-enterprise.md b/user/enterprise/tcie-3.x-setting-up-travis-ci-enterprise.md index ea89838f9fc..d77a9028af6 100644 --- a/user/enterprise/tcie-3.x-setting-up-travis-ci-enterprise.md +++ b/user/enterprise/tcie-3.x-setting-up-travis-ci-enterprise.md @@ -55,7 +55,7 @@ or multiple instances managed by Kubernetes, separate from that of the Travis CI Enterprise worker. We recommend **compute optimized** instance running Ubuntu 18.04 LTS or later as the underlying operating system. -> If you are migrating from Travis CI enteprise 2.x, please make sure to read and execute the [datbase migration instructions](/user/enterprise/tcie-3.x-migrating-db-from-2.x-to-3.x./) first. +> If you are migrating from Travis CI enteprise 2.x, please make sure to read and execute the [datbase migration instructions](/user/enterprise/tcie-3.x-migrating-db-from-2.x-to-3.x/) first. 1. *On your infrastructure management platform*, create a Travis CI Platform Security Group. diff --git a/user/environment-variables.md b/user/environment-variables.md index fb73d4f9a17..af44a825f05 100644 --- a/user/environment-variables.md +++ b/user/environment-variables.md @@ -157,6 +157,7 @@ You can find more information on the build config format for [Environment Variab The following default environment variables are available to all builds. - `CI=true` +- `TZ=UTC` - `TRAVIS=true` - `CONTINUOUS_INTEGRATION=true` - `DEBIAN_FRONTEND=noninteractive` diff --git a/user/gui-and-headless-browsers.md b/user/gui-and-headless-browsers.md index 64008ff36e7..cfa7c638cb1 100644 --- a/user/gui-and-headless-browsers.md +++ b/user/gui-and-headless-browsers.md @@ -239,7 +239,7 @@ If you need a web server to serve the tests, see the previous section. ### Real World Projects -- [Ember.js](https://github.com/emberjs/ember.js/blob/master/.travis.yml) (starts web server programmatically) +- [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 diff --git a/user/job-lifecycle.md b/user/job-lifecycle.md index c3ce1cbf449..fa1913abe38 100644 --- a/user/job-lifecycle.md +++ b/user/job-lifecycle.md @@ -15,7 +15,7 @@ The `.travis.yml` file describes the build process. A *build* in Travis CI is a ## The Job Lifecycle -Each *job* is a sequence of [phases](../for-beginners/#builds-jobs-stages-and-phases). The *main phases* are: +Each *job* is a sequence of [phases](/user/for-beginners/#builds-jobs-stages-and-phases). The *main phases* are: 1. `install` - install any dependencies required 2. `script` - run the build script diff --git a/user/languages/dart.md b/user/languages/dart.md index f43952098f8..3df78a289b7 100644 --- a/user/languages/dart.md +++ b/user/languages/dart.md @@ -25,7 +25,7 @@ language: dart This guide covers build environment and configuration topics specific to -[Dart](https://www.dartlang.org/) projects. Please make sure to read our +[Dart](https://dart.dev/) projects. Please make sure to read our [Tutorial](/user/tutorial/) and [general build configuration](/user/customizing-the-build/) guides first. diff --git a/user/languages/java.md b/user/languages/java.md index d40b54438b1..b35beed2ac9 100644 --- a/user/languages/java.md +++ b/user/languages/java.md @@ -195,6 +195,7 @@ details. The list of available JVMs for different dists are at + * [JDKs installed for **Focal**](/user/reference/focal/#jvm-clojure-groovy-java-scala-support) * [JDKs installed for **Bionic**](/user/reference/bionic/#jvm-clojure-groovy-java-scala-support) * [JDKs installed for **Xenial**](/user/reference/xenial/#jvm-clojure-groovy-java-scala-support) * [JDKs installed for **Trusty**](/user/reference/trusty/#jvm-clojure-groovy-java-scala-images) diff --git a/user/languages/julia.md b/user/languages/julia.md index eaac8475f6f..895b7de2da6 100644 --- a/user/languages/julia.md +++ b/user/languages/julia.md @@ -18,7 +18,7 @@ or altered at any time. If you run into any problems, please report them in the [Travis CI Julia Community Forums](https://travis-ci.community/c/languages/julia) and cc [@ararslan](https://github.com/ararslan), [@staticfloat](https://github.com/staticfloat), and [@StefanKarpinski](https://github.com/StefanKarpinski). -For general Julia support on Travis CI go to the [Travis Community](https://travis-ci.community/c/languages/julia) or [Julia Lang Slack Channel](https://julialang.slack.com) in the __#testing__ channel. +For general Julia support on Travis CI go to the [Travis Community](https://travis-ci.community/c/languages/julia) or [Julia Lang Slack Channel](https://julialang.org/slack/) in the __#testing__ channel. ## Choosing Julia versions to test against @@ -29,8 +29,8 @@ the Julia versions to test in the `julia:` key in your `.travis.yml` file. For e language: julia julia: - nightly - - 1.0.5 - - 1.3.1 + - 1.0.6 + - 1.5.2 ``` {: data-file=".travis.yml"} diff --git a/user/languages/php.md b/user/languages/php.md index d09fa3e65fd..7f841c10f38 100644 --- a/user/languages/php.md +++ b/user/languages/php.md @@ -62,6 +62,13 @@ php: ``` {: data-file=".travis.yml"} +{% if site.data.language-details.php-versions.size > 0 %} +### Supported PHP versions + +The list of PHP versions available for on-demand installation can be found in +[the table below](#php-versions). + +{% else %} ### PHP 5.2(.x) - 5.3(.x) support is available on Precise only We do not support these versions on Trusty or Xenial or Bionic. @@ -84,6 +91,7 @@ See [this page](/user/reference/bionic#php-support) for more information. We do not support these versions on Precise. If you need to test them, please use Trusty, Xenial, or Bionic. +{% endif %} ### HHVM versions are available on Trusty only @@ -406,3 +414,30 @@ You can find more information on the build config format for [PHP](https://confi ## Examples - [Drupal](https://github.com/sonnym/travis-ci-drupal-module-example) + +{% if site.data.language-details.php-versions.size > 0 %} +## PHP versions +These archives are available for on-demand installation. + +{: #php-versions-table} +| Release | Arch | Name | +| :------------- | :------------- | :------- |{% for file in site.data.language-details.php-versions %} +| {{ file.release }} | {{ file.arch }} | {{ file.name }} |{% endfor %} +{% endif %} + + + diff --git a/user/languages/python.md b/user/languages/python.md index f4fd07a3980..a495741961a 100644 --- a/user/languages/python.md +++ b/user/languages/python.md @@ -49,7 +49,8 @@ python: - "3.6" # current default Python on Travis CI - "3.7" - "3.8" - - "3.8-dev" # 3.8 development branch + - "3.9" + - "3.9-dev" # 3.9 development branch - "nightly" # nightly build # command to install dependencies install: @@ -123,7 +124,7 @@ a recent development version of [CPython](https://github.com/python/cpython) bui From Python 3.5 and later, Python In Development versions are available. You can specify these in your builds with `3.5-dev`, `3.6-dev`, -`3.7-dev` or `3.8-dev`. +`3.7-dev`, `3.8-dev` or `3.9-dev`. ## Default Build Script @@ -158,8 +159,6 @@ If you're using tox to test your code against multiple versions of Python, you h * use `language: generic` and manually install the Python versions you're interested in before running tox (without the manual installation, tox will only have access to the default Ubuntu Python versions - 2.7.12 and 3.5.1 for Xenial) * use `language: python` and a build matrix that uses a different version of Python for each branch (you can specify the Python version by using the `python` key). This will ensure the versions you're interested in are installed and parallelizes your workload. -A good example of a `travis.yml` that runs tox using a Travis build matrix is [twisted/klein](https://github.com/twisted/klein/blob/master/.travis.yml). - ## Running Python tests on multiple Operating Systems Sometimes it is necessary to ensure that software works the same across multiple Operating Systems. This following `.travis.yml` file will execute parallel test runs on Linux, macOS, and Windows. @@ -205,6 +204,20 @@ install: pip install --user -r requirements.txt Please note that the `--user` option is mandatory if you are not using `language: python`, since no virtualenv will be created in that case. +#### New dependency resolver in `pip` 20.3 + +As described in the [PyPa](https://pip.pypa.io/en/latest/user_guide/#changes-to-the-pip-dependency-resolver-in-20-2-2020) announcement, `pip` version 20.3 will ship with a new dependency resolver. +This may have unexpected changes in your software; when we deploy new build images with this version at a future date, your builds may break due to the changes related to this version. + +To test the new dependency resolver's effects on your software, we advise you to test it with `pip` version 20.2. To do so, modify your build to update `pip` to version 20.2 and to invoke `pip` with `--use-feature=2020-resolver` flag. For example: + +```yaml +before_install: + - python -m pip install --upgrade pip +install: + - pip install --user -r requirements.txt --use-feature=2020-resolver +``` + ### Custom Dependency Management To override the default `pip` dependency management, alter the `before_install` diff --git a/user/languages/rust.md b/user/languages/rust.md index 5082b8d0dd8..8b25e632afa 100644 --- a/user/languages/rust.md +++ b/user/languages/rust.md @@ -36,7 +36,7 @@ By default, we download and install the latest stable Rust release at the start of the build (thanks to `rustup`). The [`minimal` profile][profiles] is used and includes the following language tools `cargo`, `rustc`, and `rustup`. -[profiles]: https://github.com/rust-lang/rustup.rs#profiles +[profiles]: https://github.com/rust-lang/rustup/blob/master/doc/src/concepts/profiles.md If you want additional language tools like `rustfmt` or `clippy`, please install them in `before_install`. diff --git a/user/migrate/open-source-repository-migration.md b/user/migrate/open-source-repository-migration.md index ccab78eb402..e76c3cc6820 100644 --- a/user/migrate/open-source-repository-migration.md +++ b/user/migrate/open-source-repository-migration.md @@ -1,5 +1,5 @@ --- -title: Beta - Migrating repositories to travis-ci.com +title: Migrating repositories to travis-ci.com layout: en redirect_from: user/open-source-repository-migration/ --- @@ -74,7 +74,7 @@ No. Unless there was something very customised in your `.travis.yml`, no changes If you are already using GitHub Apps for your account in travis-ci.com, you need to access your installation settings and grant access to the repositories you'd like to migrate. Otherwise: -1. Log in to [https://travis-ci.com] and access your profile (or your organization's) at [https://travis-ci.com/profile](https://travis-ci.com/profile) +1. Log in to [https://travis-ci.com] and access your profile (or your organization's) at [https://travis-ci.com/profile](https://travis-ci.com/profile). For any doubts on the Travis CI GitHub Authorized OAuth App access rights message, please read more details [below](/user/migrate/open-source-repository-migration#travis-ci-github-oauth-app-access-rights). 2. If you aren't using the new GitHub Apps integration already, activate it for your account ![Activate GitHub Apps](/user/images/oss-migration/gapps-activate.png) @@ -83,6 +83,10 @@ If you are already using GitHub Apps for your account in travis-ci.com, you need 4. Once back in your Travis CI profile, the selected repositories will be listed there. Those projects that were already building in travis-ci.org will appear in the Migrate tab for your account. +#### Travis CI GitHub OAuth App access rights + +{{ site.data.snippets.github_oauth_access_rights }} + ### The migration steps 1. Once you have granted access via GitHub Apps to the repositories you'd like to build and transfer, on the ["Migrate" tab](https://travis-ci.com/account/migrate), there will be a list of the repositories available to migrate: @@ -185,3 +189,49 @@ If you have any further questions, comments or need help on our Beta migration p [travis-ci.com]: https://www.travis-ci.com [travis-ci.org]: https://www.travis-ci.org + +## Frequently asked questions + +#### Q. When will the migration from travis-ci.org to travis-ci.com be completed? + +A. In an effort to ensure that all of our users - whether you build open-source, public or private repositories - receive regular feature updates, security patches and UX/UI enhancements, we are announcing that travis-ci.org will be officially closed down completely no later than December 31st, 2020, allowing us to focus all our efforts on bringing new features and fixes to travis-ci.com and all of our awesome users like yourself on the travis-ci.com domain. + + +#### Q. What will happen to travis-ci.org after December 31st, 2020? + +A. Travis-ci.org will be switched to a read-only platform, allowing you to see your jobs build history from all repositories previously connected to travis-ci.org. + + +#### Q. Why are some of my queued jobs taking longer than usual to build? + +A. At peak usage times, you may see your build times are longer than they previously have been - we need to make sure all users have equal access to the .org platform until the end of the year as we move our infrastructure across to .com. You may want to consider migrating across to .com sooner rather than later, or consider scheduling builds at a quieter time of the day if remaining on .org for a while longer. + + +#### Q. Why are some of my queued jobs being cancelled? + +A. This might happen as we move infrastructure over from .org to .com - if we see a job stuck in a queue for more than 16 hours, we will review this on a case by case basis and possibly cancel the job to ensure resources are not being reduced across the platform. You may want to consider migrating across to .com sooner rather than later, or consider building at a quieter time of the day if remaining on .org for a while longer. + + +#### Q. Will there be lower concurrency for free accounts on travis-ci.org? + +A. As part of the shift of infrastructure from .org to .com and needing to make sure all users have equal access to resources, free and open-source .org accounts will have concurrency reduced from 5 to 4 concurrent jobs. Concurrent jobs have not changed on .com, so please consider migrating your repositories as soon as possible if this is an issue. + + +#### Q. Will Travis-ci.org become unreliable? + +A. As part of the shift of infrastructure from .org to .com we’re making a number of changes to the travis-ci.org infrastructure to ensure the service will remain as reliable and available to you as it always has been until the migration is completed. + + +#### Q. Will Travis CI be getting rid of free users? + +A. Travis CI will continue to offer a free tier for public or open-source repositories on travis-ci.com and will not be affected by the migration. + + +#### Q. Why is travis-ci.com asking for write access to my repositories? + +A. We’re aware that when migrating your GitHub repositories to travis-ci.com you will be prompted to give Travis CI write access to your repositories - this is due to us currently using GitHub OAuth for user authentication and the message is due to the way the OAuth scopes are shaped. The Travis CI platform actually uses the GitHub App for actual repository-level access - it does not require write access to all of your repositories and you can configure that. + +We’re working hard to resolve this and use just the GitHub App for both +user authentication and repository-level access, but until then we will be clarifying the situation in our documentation and user interface. + + diff --git a/user/multi-cpu-architectures.md b/user/multi-cpu-architectures.md index 2e7dbdb255a..ab92a89636a 100644 --- a/user/multi-cpu-architectures.md +++ b/user/multi-cpu-architectures.md @@ -175,7 +175,7 @@ script: docker run my/test #assuming docker image my/test is arm64v8 ready You can try it out also for `ppc64le` (IBM Power) and `s390x` (IBM Z) based docker builds, assuming all dependencies and/or a CPU architecture compliant base docker image are used. -You can also have a look at [Using Docker in Builds](user/docker/). +You can also have a look at [Using Docker in Builds](/user/docker/). ## LXD related limitations diff --git a/user/reference/bionic.md b/user/reference/bionic.md index 261606cfae2..ca71122744f 100644 --- a/user/reference/bionic.md +++ b/user/reference/bionic.md @@ -94,6 +94,44 @@ For preinstalled language interpreters, a standard version manager like `rvm` is * shellcheck 0.7.0 * shfmt 2.6.3 +To use the IBM Advance Toolchain v14 compilers under `ppc64le` architecture in Focal LXD image, use the following paths in your `.travis.yml`: + +- GCC compiler + - Path: `/opt/at14.0/bin/gcc` + - Command: `/opt/at14.0/bin/gcc hello_world.c -o hello_world` + +- g++ compiler + - Path: `/opt/at14.0/bin/g++` + - Command: `/opt/at14.0/bin/g++ hello_world.cpp -o hello_world` + +- Go compiler + - Path: `/opt/at14.0/bin/gccgo` + - Command: `/opt/at14.0/bin/gccgo hello_world.go -o hello_world` + +- Python + - First, compile Python 3.8.0 using the `python_interpreter.sh script`. + - Python Interpreter Path: `/opt/python380-at14/python3.8` + - Build Python Command: `sudo sh python_interpreter.sh` + +To use the IBM Advance Toolchain v14 compilers under `amd64` architecture in Focal LXD image, use the following paths in your `.travis.yml`: + +- GCC compiler + - Path: `/opt/at14.0/bin/powerpc64le-linux-gnu-gcc` + - Command: `/opt/at14.0/bin/powerpc64le-linux-gnu-gcc hello_world.c -o hello_world` + +- g++ compiler + - Path: `/opt/at14.0/bin/powerpc64le-linux-gnu-g++` + Command: `/opt/at14.0/bin/powerpc64le-linux-gnu-g++ hello_world.cpp -o hello_world` + +- Go compiler + - Path: `/opt/at14.0/bin/powerpc64le-linux-gnu-gccgo` + - Command: `/opt/at14.0/bin/powerpc64le-linux-gnu-gccgo hello_world.go -o hello_world` + +- Python + - First, compile Python 3.8.0 using the `python_interpreter.sh script`. + - Python Interpreter Path: `/opt/python380-amd64/python3.8` + - Build Python Command: `sudo sh python_interpreter.sh` + ### Docker * Docker 18.06.0-ce is installed @@ -146,6 +184,12 @@ is `openjdk11`. | groovy | 2.4.5 | {: style="width: 30%" } +## Perl support + +* Default version on Xenial is `5.26.1` +* Supported versions `5.22`, `5.24`, `5.26`, `5.28`, `5.30` and `5.32` can be installed by using the `perl:`-key. +* `TAP::Harness` v3.38 and `cpanm` (App::cpanminus) version 1.7044 are also pre-installed. + ## PHP support * For dynamic runtime selection, `phpenv` is available. diff --git a/user/reference/focal.md b/user/reference/focal.md index f958b18e85c..11d1a0d70eb 100644 --- a/user/reference/focal.md +++ b/user/reference/focal.md @@ -97,6 +97,44 @@ For preinstalled language interpreters, a standard version manager like `rvm` is | shfmt | `2.6.3` | {: style="width: 30%" } +To use the IBM Advance Toolchain v14 compilers under `ppc64le` architecture in Focal LXD image, use the following paths in your `.travis.yml`: + +- GCC compiler + - Path: `/opt/at14.0/bin/gcc` + - Command: `/opt/at14.0/bin/gcc hello_world.c -o hello_world` + +- g++ compiler + - Path: `/opt/at14.0/bin/g++` + - Command: `/opt/at14.0/bin/g++ hello_world.cpp -o hello_world` + +- Go compiler + - Path: `/opt/at14.0/bin/gccgo` + - Command: `/opt/at14.0/bin/gccgo hello_world.go -o hello_world` + +- Python + - First, compile Python 3.8.0 using the `python_interpreter.sh script`. + - Python Interpreter Path: `/opt/python380-at14/python3.8` + - Build Python Command: `sudo sh python_interpreter.sh` + +To use the IBM Advance Toolchain v14 compilers under `amd64` architecture in Focal LXD image, use the following paths in your `.travis.yml`: + +- GCC compiler + - Path: `/opt/at14.0/bin/powerpc64le-linux-gnu-gcc` + - Command: `/opt/at14.0/bin/powerpc64le-linux-gnu-gcc hello_world.c -o hello_world` + +- g++ compiler + - Path: `/opt/at14.0/bin/powerpc64le-linux-gnu-g++` + Command: `/opt/at14.0/bin/powerpc64le-linux-gnu-g++ hello_world.cpp -o hello_world` + +- Go compiler + - Path: `/opt/at14.0/bin/powerpc64le-linux-gnu-gccgo` + - Command: `/opt/at14.0/bin/powerpc64le-linux-gnu-gccgo hello_world.go -o hello_world` + +- Python + - First, compile Python 3.8.0 using the `python_interpreter.sh script`. + - Python Interpreter Path: `/opt/python380-amd64/python3.8` + - Build Python Command: `sudo sh python_interpreter.sh` + ### Docker * Docker `19.03.8` is installed. @@ -148,6 +186,12 @@ is `openjdk11`. | groovy | `2.4.5` | {: style="width: 30%" } +## Perl support + +* Default version on Focal is `5.30.0` +* Supported versions `5.22`, `5.24`, `5.26`, `5.28`, `5.30` and `5.32` can be installed by using the `perl:`-key. +* `TAP::Harness` v3.42 and `cpanm` (App::cpanminus) version 1.7044 are also pre-installed. + ## PHP support * For dynamic runtime selection, `phpenv` is available. diff --git a/user/reference/xenial.md b/user/reference/xenial.md index a8a4e0c2649..a915b4fca1f 100644 --- a/user/reference/xenial.md +++ b/user/reference/xenial.md @@ -97,6 +97,44 @@ For preinstalled language interpreters, a standard version manager like `rvm` is * shellcheck 0.7.0 * shfmt 2.6.3 +To use the IBM Advance Toolchain v12 compilers under `ppc64le` architecture in Xenial LXD image, use the following paths in your `.travis.yml`: + +- GCC compiler + - Path: `/opt/at12.0/bin/gcc` + - Command: `/opt/at12.0/bin/gcc hello_world.c -o hello_world` + +- g++ compiler + - Path: `/opt/at12.0/bin/g++` + - Command: `/opt/at12.0/bin/g++ hello_world.cpp -o hello_world` + +- Go compiler + - Path: `/opt/at12.0/bin/gccgo` + - Command: `/opt/at12.0/bin/gccgo hello_world.go -o hello_world` + +- Python + - First, compile Python 3.8.0 using the `python_interpreter.sh script`. + - Python Interpreter Path: `/opt/python380-at12/python3.8` + - Build Python Command: `sudo sh python_interpreter.sh` + +To use the IBM Advance Toolchain v12 compilers under `amd64` architecture in Xenial LXD image, use the following paths in your `.travis.yml`: + +- GCC compiler + - Path: `/opt/at12.0/bin/powerpc64le-linux-gnu-gcc` + - Command: `/opt/at12.0/bin/powerpc64le-linux-gnu-gcc hello_world.c -o hello_world` + +- g++ compiler + - Path: `/opt/at12.0/bin/powerpc64le-linux-gnu-g++` + - Command: `/opt/at12.0/bin/powerpc64le-linux-gnu-g++ hello_world.cpp -o hello_world` + +- Go compiler + - Path: `/opt/at12.0/bin/powerpc64le-linux-gnu-gccgo` + - Command: `/opt/at12.0/bin/powerpc64le-linux-gnu-gccgo hello_world.go -o hello_world` + +- Python + - First, compile Python 3.8.0 using the `python_interpreter.sh script` + - Python Interpreter Path: `/opt/python380-amd64/python3.8` + - Build Python Command: `sudo sh python_interpreter.sh` + ### Docker * Docker 18.06.0-ce is installed @@ -144,8 +182,10 @@ is `openjdk8`; `openjdk7` and `openjdk8` on ppc64le. {: style="width: 30%" } ## Perl support -* Default version on Xenial is `5.18.4` + +* Default version on Xenial is `5.22.1` * Supported versions `5.22`, `5.24`, `5.26`, `5.28` and `5.30` can be installed by using the `perl:`-key. +* `TAP::Harness` v3.35 and `cpanm` (App::cpanminus) version 1.7044 are also pre-installed. ## PHP support diff --git a/user/running-build-in-debug-mode.md b/user/running-build-in-debug-mode.md index 25ebee51203..1df689d1b0a 100644 --- a/user/running-build-in-debug-mode.md +++ b/user/running-build-in-debug-mode.md @@ -33,8 +33,8 @@ this button is not available and you will need to use an API call instead. To restart a job in debug mode via API, send a `POST` request to the job's `debug` endpoint. This request needs to be authenticated by adding your [Travis CI API token](/user/triggering-builds/) -to the `Authorization` header. You can find your API token in your Travis CI Profile page -for [public projects](https://travis-ci.com/profile). +to the `Authorization` header. You can find your API token in your Travis CI Account Preferences page +for [public projects](https://travis-ci.com/account/preferences). (Note the literal word `token` must be present before the actual authorization token.) diff --git a/user/sonarcloud.md b/user/sonarcloud.md index 0ef1d26fbdb..4b6e2faf0f6 100644 --- a/user/sonarcloud.md +++ b/user/sonarcloud.md @@ -18,16 +18,17 @@ The default Travis dist dist: xenial ``` {: data-file=".travis.yml"} -inlcudes Java 11 by default. +includes Java 11 by default. ## Inspecting code with the SonarQube Scanner Before inspecting your code, you need to: -1. [Create a user authentication token](https://sonarcloud.io/account/security) for your account on SonarCloud. -2. [Encrypt this token](/user/encryption-keys/#usage) `travis encrypt abcdef0123456789` or define `SONAR_TOKEN` in your [Repository Settings](/user/environment-variables/#defining-variables-in-repository-settings) -3. [Find which SonarCloud.io organization](https://sonarcloud.io/account/organizations) you want to push your project on and get its key -4. Create a `sonar-project.properties` file for your project (see the [documentation](http://redirect.sonarsource.com/doc/install-configure-scanner.html)). +1. Make sure that your repository is correctly activated on Travis CI. See [Travis CI Tutorial](https://docs.travis-ci.com/user/tutorial/). +2. [Create a user authentication token](https://sonarcloud.io/account/security) for your account on SonarCloud. +3. [Encrypt this token](/user/encryption-keys/#usage) `travis encrypt abcdef0123456789` or define `SONAR_TOKEN` in your [Repository Settings](/user/environment-variables/#defining-variables-in-repository-settings) +4. [Find which SonarCloud.io organization](https://sonarcloud.io/account/organizations) you want to push your project on and get its key +5. Create a `sonar-project.properties` file for your project (see the [documentation](http://redirect.sonarsource.com/doc/install-configure-scanner.html)). Then add the following lines to your `.travis.yml` file to trigger the analysis: @@ -53,8 +54,7 @@ Lots of Java projects build with Maven. To add a SonarCloud inspection to your M addons: sonarcloud: organization: "sonarcloud_organization_key" # the key of the org you chose at step #3 - token: - secure: "*********" # encrypted value of your token + token: "*********" # encrypted value of your token script: # the following command line builds the project, runs the tests with coverage and then execute the SonarCloud analysis - mvn clean verify sonar:sonar -Pcoverage -Dsonar.projectKey=myorg_myrepo @@ -67,7 +67,7 @@ script: Please take a look at the [live Maven-based example project](https://github.com/SonarSource/sq-com_example_java-maven-travis) to know more about this use case. -Without POM update, or if you are [Testing Against Multiple JDKs](languages/java/#testing-against-multiple-jdks) (SonarCloud analysis should be executed only once), or need multiple steps Maven commands ; execute [JaCoCo XML report generation](https://www.eclemma.org/jacoco/trunk/doc/report-mojo.html) at end of your main build. Script section would be like: +Without POM update, or if you are [Testing Against Multiple JDKs](/user/languages/java/#testing-against-multiple-jdks) (SonarCloud analysis should be executed only once), or need multiple steps Maven commands ; execute [JaCoCo XML report generation](https://www.eclemma.org/jacoco/trunk/doc/report-mojo.html) at end of your main build. Script section would be like: ```yaml script: diff --git a/user/travis-ci-for-private.md b/user/travis-ci-for-private.md index ec911970b01..db583ea0615 100644 --- a/user/travis-ci-for-private.md +++ b/user/travis-ci-for-private.md @@ -14,7 +14,7 @@ continuous integration solution for private repositories. Yes, of course! No need to put in your credit card details, the trial starts whenever you trigger your first build on [Travis CI for private repositories](https://travis-ci.com). It includes 100 trial builds for free and 2-concurrent-jobs. -When you're ready to start using Travis CI, head over to the [billing page](https://travis-ci.com/account/subscription) to add your billing details and end your trial. +When you're ready to start using Travis CI, head over to the [billing page](https://travis-ci.com/plans) to add your billing details and end your trial. ## Can I use pull request testing on Travis CI for private repositories? diff --git a/user/tutorial.md b/user/tutorial.md index cb78739711e..e2a0511bafa 100644 --- a/user/tutorial.md +++ b/user/tutorial.md @@ -21,7 +21,7 @@ To start using Travis CI, make sure you have: 1. Go to [Travis-ci.com](https://travis-ci.com) and [*Sign up with GitHub*](https://travis-ci.com/signin). -2. Accept the Authorization of Travis CI. You'll be redirected to GitHub. +2. Accept the Authorization of Travis CI. You'll be redirected to GitHub. For any doubts on the Travis CI GitHub Authorized OAuth App access rights message, please read more details [below](/user/tutorial#travis-ci-github-oauth-app-access-rights) 3. Click on your profile picture in the top right of your Travis Dashboard, click Settings and then the green *Activate* button, and select the repositories you want to use with Travis CI. @@ -49,6 +49,10 @@ To start using Travis CI, make sure you have: 6. Check the build status page to see if your build [passes or fails](/user/job-lifecycle/#breaking-the-build) according to the return status of the build command by visiting [Travis CI](https://travis-ci.com/auth) and selecting your repository. +#### Travis CI GitHub OAuth App access rights + +{{ site.data.snippets.github_oauth_access_rights }} + ## To get started with Travis CI using Bitbucket