From 501d940558b11e2d3fe18c3b3d26692f2f3f2fdb Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Tue, 3 Oct 2023 20:00:40 -0400 Subject: [PATCH] add Gradle docs --- docs/integrations/frameworks/gradle.mdx | 91 +++++++++++++++++++++++++ docs/mint.json | 6 ++ 2 files changed, 97 insertions(+) create mode 100644 docs/integrations/frameworks/gradle.mdx diff --git a/docs/integrations/frameworks/gradle.mdx b/docs/integrations/frameworks/gradle.mdx new file mode 100644 index 000000000..5005433d0 --- /dev/null +++ b/docs/integrations/frameworks/gradle.mdx @@ -0,0 +1,91 @@ +--- +title: "Gradle" +description: "How to use Infisical to inject environment variables with Gradle" +--- + +# Using Infisical with Gradle + +By integrating [Infisical CLI](../../cli/overview) with Gradle, you can configure your builds and scripts to different environments, CI/CD pipelines, and more without explicitly setting variables in the command line. + +This documentation provides an overview of how to use Infisical with [Gradle](https://gradle.org/). + +## Basic Usage + +To run a Gradle task with Infisical, you can use the `run` command. The basic structure is: + +``` +infisical run -- [Your command here] +``` + +For example, to run the `generateFile` task in Gradle: + +```groovy build.gradle +task generateFile { + doLast { + String content = System.getenv('ENV_NAME_FROM_INFISICAL') ?: 'Default Content' + file('output.txt').text = content + println "Generated output.txt with content: $content" + } +} +``` + +``` +infisical run -- gradle generateFile +``` + +With this command, Infisical will automatically inject the environment variables associated with the current Infisical project into the Gradle process. +Your Gradle script can then access these variables using `System.getenv('VARIABLE_NAME')`. + +## More Examples + +### 1. Building a Project with a Specific Profile + +Assuming you have different build profiles (e.g., 'development', 'production'), you can use Infisical to switch between them: + +``` +infisical run -- gradle build +``` + +Inside your `build.gradle`, you might have: + +```groovy build.gradle +if (System.getenv('PROFILE') == 'production') { + // production-specific configurations +} +``` + +### 2. Running Tests with Different Database Configurations + +If you want to run tests against different database configurations: + +``` +infisical run -- gradle test +``` + +Your test configuration in `build.gradle` can then adjust the database URL accordingly: + +```groovy build.gradle +test { + systemProperty 'db.url', System.getenv('DB_URL') +} +``` + +### 3. Generating Artifacts with Versioning + +For automated CI/CD pipelines, you might want to inject a build number or version: + +``` +infisical run -- gradle assemble +``` + +And in `build.gradle`: + +```groovy build.gradle +version = System.getenv('BUILD_NUMBER') ?: '1.0.0-SNAPSHOT' +``` + +## Advantages of Using Infisical with Gradle + +1. **Flexibility**: Easily adapt your Gradle builds to different environments without modifying the build scripts or setting environment variables manually. +2. **Reproducibility**: Ensure consistent builds by leveraging the environment variables from the related Infisical project. +3. **Security**: Protect sensitive information by using Infisical's secrets management without exposing them in scripts or logs. diff --git a/docs/mint.json b/docs/mint.json index 975687508..f89db202e 100644 --- a/docs/mint.json +++ b/docs/mint.json @@ -276,6 +276,12 @@ "integrations/platforms/pm2" ] }, + { + "group": "Build Tool Integrations", + "pages": [ + "integrations/frameworks/gradle" + ] + }, { "group": "Overview", "pages": ["sdks/overview"]