Git Product home page Git Product logo

isabella232 / common-custom-user-data-gradle-plugin Goto Github PK

View Code? Open in Web Editor NEW

This project forked from gradle/common-custom-user-data-gradle-plugin

0.0 0.0 0.0 529 KB

Gradle plugin that enhances published build scans by adding a set of tags, links and custom values that have proven to be useful for many projects building with Gradle Enterprise.

Home Page: https://gradle.com/enterprise

License: Apache License 2.0

Java 97.21% Groovy 2.79%

common-custom-user-data-gradle-plugin's Introduction

This repository is maintained by the Gradle Enterprise Solutions team, as one of several publicly available repositories:

Common Custom User Data Gradle Plugin

Verify Build Plugin Portal Revved up by Gradle Enterprise

The Common Custom User Data Gradle plugin for Gradle Enterprise enhances published build scans by adding a set of tags, links and custom values that have proven to be useful for many projects building with Gradle Enterprise.

You can leverage this plugin for your project in one of two ways:

  1. Apply the published plugin directly in your build and immediately benefit from enhanced build scans
  2. Copy this repository and develop a customized version of the plugin to standardize Gradle Enterprise usage across multiple projects

Applying the published plugin

The Common Custom User Data Gradle plugin is available in the Gradle Plugin Portal. This plugin requires the Gradle Enterprise Gradle plugin to also be applied in your build in order to have an effect.

In order for the Common Custom User Gradle plugin to become active, you need to register it in the settings.gradle file of your project. The settings.gradle file is the same file where you have already declared the Gradle Enterprise Gradle plugin.

See here for an example.

Version compatibility

This table details the version compatibility of the Common Custom User Data Gradle plugin with the Gradle Enterprise Gradle plugin.

Common Custom User Data Gradle plugin versions Gradle Enterprise Gradle plugin versions Gradle version
1.0+ 3.0+ 5.0+
1.7+ 1.8+ 4.0+

Captured data

The additional tags, links and custom values captured by this plugin include:

  • A tag representing the operating system
  • A tag representing how the build was invoked, be that from your IDE (IDEA, Eclipse, Android Studio) or from the command-line
  • A tag representing builds run on CI, together with a set of tags, links and custom values specific to the CI server running the build
  • For Git repositories, information on the commit id, branch name, status, and whether the checkout is dirty or not

See CustomBuildScanEnhancements.java for details on what data is captured and under which conditions.

Configuration overrides

This plugin also allows overriding various Gradle Enterprise related settings via system properties and environment variables:

  • Gradle Enterprise general configuration
  • Remote build cache configuration
  • Local build cache configuration

See Overrides.java for the override behavior.

You can use the system properties and environment variables to override Gradle Enterprise related settings temporarily without having to modify the build scripts. For example, to disable the local build cache when running a build:

./gradlew -Dgradle.cache.local.enabled=false build
Click to see the complete set of available system properties and environment variables in the table below.
Gradle Enterprise / Build Cache API System property Environment variable
gradleEnterprise.server gradle.enterprise.url GRADLE_ENTERPRISE_URL
gradleEnterprise.allowUntrustedServer gradle.enterprise.allowUntrustedServer GRADLE_ENTERPRISE_ALLOWUNTRUSTEDSERVER
buildCache.local.setEnabled gradle.cache.local.enabled GRADLE_CACHE_LOCAL_ENABLED
buildCache.local.setPush gradle.cache.local.push GRADLE_CACHE_LOCAL_PUSH
buildCache.local.setDirectory gradle.cache.local.directory GRADLE_CACHE_LOCAL_DIRECTORY
buildCache.local.setRemoveUnusedEntriesAfterDays gradle.cache.local.removeUnusedEntriesAfterDays GRADLE_CACHE_LOCAL_REMOVEUNUSEDENTRIESAFTERDAYS
buildCache.remote.setEnabled gradle.cache.remote.enabled GRADLE_CACHE_REMOTE_ENABLED
buildCache.remote.setPush gradle.cache.remote.push GRADLE_CACHE_REMOTE_PUSH
buildCache.remote.setUrl gradle.cache.remote.url GRADLE_CACHE_REMOTE_URL
buildCache.remote.setAllowUntrustedServer gradle.cache.remote.allowUntrustedServer GRADLE_CACHE_REMOTE_ALLOWUNTRUSTEDSERVER
--- gradle.cache.remote.shard GRADLE_CACHE_REMOTE_SHARD

Developing a customized version of the plugin

For more flexibility, we recommend creating a copy of this repository so that you may develop a customized version of the plugin and publish it internally for your projects to consume.

This approach has a number of benefits:

  • Tailor the build scan enhancements to exactly the set of tags, links and custom values you require
  • Standardize the configuration for connecting to Gradle Enterprise and the remote build cache in your organization, removing the need for each project to specify this configuration

If your customized plugin provides all required Gradle Enterprise configuration, then a consumer project will get all the benefits of Gradle Enterprise simply by applying the plugin. The project sources provide a good template to get started with your own plugin.

Refer to the Javadoc for more details on the key types available for use.

See the Gradle User Manual for more details on publishing Gradle plugins to an internal repository.

Changelog

Refer to the release history to see detailed changes on the versions.

Learn more

Visit our website to learn more about Gradle Enterprise.

License

The Gradle Enterprise Common Custom User Data Gradle plugin is open-source software released under the Apache 2.0 License.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.