mirror of
https://github.com/gradle/actions.git
synced 2025-04-19 17:29:20 +08:00
Allow configuring credentials for custom Gradle plugin repository (#61)
This commit is contained in:
parent
b00d9dd511
commit
579fbbe722
@ -663,15 +663,17 @@ with a valid [Develocity access key](https://docs.gradle.com/enterprise/gradle-p
|
|||||||
|
|
||||||
The `init-script` supports several additional configuration parameters that you may find useful. All configuration options (required and optional) are detailed below:
|
The `init-script` supports several additional configuration parameters that you may find useful. All configuration options (required and optional) are detailed below:
|
||||||
|
|
||||||
| Variable | Required | Description |
|
| Variable | Required | Description |
|
||||||
|-----------------------------------| --- | --- |
|
|-----------------------------------| --- |--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
| DEVELOCITY_INJECTION_ENABLED | :white_check_mark: | enables Develocity injection |
|
| DEVELOCITY_INJECTION_ENABLED | :white_check_mark: | enables Develocity injection |
|
||||||
| DEVELOCITY_URL | :white_check_mark: | the URL of the Develocity server |
|
| DEVELOCITY_URL | :white_check_mark: | the URL of the Develocity server |
|
||||||
| DEVELOCITY_ALLOW_UNTRUSTED_SERVER | | allow communication with an untrusted server; set to _true_ if your Develocity instance is using a self-signed certificate |
|
| DEVELOCITY_ALLOW_UNTRUSTED_SERVER | | allow communication with an untrusted server; set to _true_ if your Develocity instance is using a self-signed certificate |
|
||||||
| DEVELOCITY_ENFORCE_URL | | enforce the configured Develocity URL over a URL configured in the project's build; set to _true_ to enforce publication of build scans to the configured Develocity URL |
|
| DEVELOCITY_ENFORCE_URL | | enforce the configured Develocity URL over a URL configured in the project's build; set to _true_ to enforce publication of build scans to the configured Develocity URL |
|
||||||
| DEVELOCITY_PLUGIN_VERSION | :white_check_mark: | the version of the [Develocity Gradle plugin](https://docs.gradle.com/enterprise/gradle-plugin/) to apply |
|
| DEVELOCITY_PLUGIN_VERSION | :white_check_mark: | the version of the [Develocity Gradle plugin](https://docs.gradle.com/enterprise/gradle-plugin/) to apply |
|
||||||
| DEVELOCITY_CCUD_PLUGIN_VERSION | | the version of the [Common Custom User Data Gradle plugin](https://github.com/gradle/common-custom-user-data-gradle-plugin) to apply, if any |
|
| DEVELOCITY_CCUD_PLUGIN_VERSION | | the version of the [Common Custom User Data Gradle plugin](https://github.com/gradle/common-custom-user-data-gradle-plugin) to apply, if any |
|
||||||
| GRADLE_PLUGIN_REPOSITORY_URL | | the URL of the repository to use when resolving the Develocity and CCUD plugins; the Gradle Plugin Portal is used by default |
|
| GRADLE_PLUGIN_REPOSITORY_URL | | the URL of the repository to use when resolving the Develocity and CCUD plugins; the Gradle Plugin Portal is used by default |
|
||||||
|
| GRADLE_PLUGIN_REPOSITORY_USERNAME | | the username for the repository URL to use when resolving the Develocity and CCUD plugins |
|
||||||
|
| GRADLE_PLUGIN_REPOSITORY_PASSWORD | | the password for the repository URL to use when resolving the Develocity and CCUD plugins; Consider using secrets to pass the value to this variable |
|
||||||
|
|
||||||
## Publishing to scans.gradle.com
|
## Publishing to scans.gradle.com
|
||||||
|
|
||||||
|
@ -21,6 +21,8 @@ initscript {
|
|||||||
}
|
}
|
||||||
|
|
||||||
def pluginRepositoryUrl = getInputParam('gradle.plugin-repository.url')
|
def pluginRepositoryUrl = getInputParam('gradle.plugin-repository.url')
|
||||||
|
def pluginRepositoryUsername = getInputParam('gradle.plugin-repository.username')
|
||||||
|
def pluginRepositoryPassword = getInputParam('gradle.plugin-repository.password')
|
||||||
def gePluginVersion = getInputParam('develocity.plugin.version')
|
def gePluginVersion = getInputParam('develocity.plugin.version')
|
||||||
def ccudPluginVersion = getInputParam('develocity.ccud-plugin.version')
|
def ccudPluginVersion = getInputParam('develocity.ccud-plugin.version')
|
||||||
|
|
||||||
@ -32,7 +34,19 @@ initscript {
|
|||||||
logger.lifecycle("Develocity plugins resolution: $pluginRepositoryUrl")
|
logger.lifecycle("Develocity plugins resolution: $pluginRepositoryUrl")
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
maven { url pluginRepositoryUrl }
|
maven {
|
||||||
|
url pluginRepositoryUrl
|
||||||
|
if (pluginRepositoryUsername && pluginRepositoryPassword) {
|
||||||
|
logger.lifecycle("Using credentials for plugin repository")
|
||||||
|
credentials {
|
||||||
|
username(pluginRepositoryUsername)
|
||||||
|
password(pluginRepositoryPassword)
|
||||||
|
}
|
||||||
|
authentication {
|
||||||
|
basic(BasicAuthentication)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -205,6 +205,26 @@ class TestDevelocityInjection extends BaseInitScriptTest {
|
|||||||
testGradleVersion << ALL_VERSIONS
|
testGradleVersion << ALL_VERSIONS
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def "can configure alternative repository for plugins with credentials when Develocity plugin is applied by the init script"() {
|
||||||
|
assumeTrue testGradleVersion.compatibleWithCurrentJvm
|
||||||
|
|
||||||
|
when:
|
||||||
|
def config = testConfig().withPluginRepository(new URI('https://plugins.grdev.net/m2')).withPluginRepositoryCredentials("john", "doe")
|
||||||
|
def result = run(testGradleVersion, config)
|
||||||
|
|
||||||
|
then:
|
||||||
|
outputContainsDevelocityPluginApplicationViaInitScript(result, testGradleVersion.gradleVersion)
|
||||||
|
outputContainsDevelocityConnectionInfo(result, mockScansServer.address.toString(), true)
|
||||||
|
outputMissesCcudPluginApplicationViaInitScript(result)
|
||||||
|
outputContainsPluginRepositoryInfo(result, 'https://plugins.grdev.net/m2', true)
|
||||||
|
|
||||||
|
and:
|
||||||
|
outputContainsBuildScanUrl(result)
|
||||||
|
|
||||||
|
where:
|
||||||
|
testGradleVersion << ALL_VERSIONS
|
||||||
|
}
|
||||||
|
|
||||||
def "stops gracefully when requested CCUD plugin version is <1.7"() {
|
def "stops gracefully when requested CCUD plugin version is <1.7"() {
|
||||||
assumeTrue testGradleVersion.compatibleWithCurrentJvm
|
assumeTrue testGradleVersion.compatibleWithCurrentJvm
|
||||||
|
|
||||||
@ -311,10 +331,16 @@ class TestDevelocityInjection extends BaseInitScriptTest {
|
|||||||
assert 1 == result.output.count(geConnectionInfo)
|
assert 1 == result.output.count(geConnectionInfo)
|
||||||
}
|
}
|
||||||
|
|
||||||
void outputContainsPluginRepositoryInfo(BuildResult result, String gradlePluginRepositoryUrl) {
|
void outputContainsPluginRepositoryInfo(BuildResult result, String gradlePluginRepositoryUrl, boolean withCredentials = false) {
|
||||||
def repositoryInfo = "Develocity plugins resolution: ${gradlePluginRepositoryUrl}"
|
def repositoryInfo = "Develocity plugins resolution: ${gradlePluginRepositoryUrl}"
|
||||||
assert result.output.contains(repositoryInfo)
|
assert result.output.contains(repositoryInfo)
|
||||||
assert 1 == result.output.count(repositoryInfo)
|
assert 1 == result.output.count(repositoryInfo)
|
||||||
|
|
||||||
|
if (withCredentials) {
|
||||||
|
def credentialsInfo = "Using credentials for plugin repository"
|
||||||
|
assert result.output.contains(credentialsInfo)
|
||||||
|
assert 1 == result.output.count(credentialsInfo)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void outputEnforcesDevelocityUrl(BuildResult result, String geUrl, boolean geAllowUntrustedServer) {
|
void outputEnforcesDevelocityUrl(BuildResult result, String geUrl, boolean geAllowUntrustedServer) {
|
||||||
@ -350,6 +376,8 @@ class TestDevelocityInjection extends BaseInitScriptTest {
|
|||||||
boolean enforceUrl = false
|
boolean enforceUrl = false
|
||||||
String ccudPluginVersion = null
|
String ccudPluginVersion = null
|
||||||
String pluginRepositoryUrl = null
|
String pluginRepositoryUrl = null
|
||||||
|
String pluginRepoUsername = null
|
||||||
|
String pluginRepoPassword = null
|
||||||
|
|
||||||
TestConfig withCCUDPlugin(String version = CCUD_PLUGIN_VERSION) {
|
TestConfig withCCUDPlugin(String version = CCUD_PLUGIN_VERSION) {
|
||||||
ccudPluginVersion = version
|
ccudPluginVersion = version
|
||||||
@ -367,6 +395,12 @@ class TestDevelocityInjection extends BaseInitScriptTest {
|
|||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TestConfig withPluginRepositoryCredentials(String pluginRepoUsername, String pluginRepoPassword) {
|
||||||
|
this.pluginRepoUsername = pluginRepoUsername
|
||||||
|
this.pluginRepoPassword = pluginRepoPassword
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
def getEnvVars() {
|
def getEnvVars() {
|
||||||
Map<String, String> envVars = [
|
Map<String, String> envVars = [
|
||||||
DEVELOCITY_INJECTION_ENABLED: "true",
|
DEVELOCITY_INJECTION_ENABLED: "true",
|
||||||
@ -378,6 +412,8 @@ class TestDevelocityInjection extends BaseInitScriptTest {
|
|||||||
if (enforceUrl) envVars.put("DEVELOCITY_ENFORCE_URL", "true")
|
if (enforceUrl) envVars.put("DEVELOCITY_ENFORCE_URL", "true")
|
||||||
if (ccudPluginVersion != null) envVars.put("DEVELOCITY_CCUD_PLUGIN_VERSION", ccudPluginVersion)
|
if (ccudPluginVersion != null) envVars.put("DEVELOCITY_CCUD_PLUGIN_VERSION", ccudPluginVersion)
|
||||||
if (pluginRepositoryUrl != null) envVars.put("GRADLE_PLUGIN_REPOSITORY_URL", pluginRepositoryUrl)
|
if (pluginRepositoryUrl != null) envVars.put("GRADLE_PLUGIN_REPOSITORY_URL", pluginRepositoryUrl)
|
||||||
|
if (pluginRepoUsername != null) envVars.put("GRADLE_PLUGIN_REPOSITORY_USERNAME", pluginRepoUsername)
|
||||||
|
if (pluginRepoPassword != null) envVars.put("GRADLE_PLUGIN_REPOSITORY_PASSWORD", pluginRepoPassword)
|
||||||
|
|
||||||
return envVars
|
return envVars
|
||||||
}
|
}
|
||||||
@ -394,6 +430,8 @@ class TestDevelocityInjection extends BaseInitScriptTest {
|
|||||||
if (enforceUrl) jvmArgs.add("-Ddevelocity.enforce-url=true")
|
if (enforceUrl) jvmArgs.add("-Ddevelocity.enforce-url=true")
|
||||||
if (ccudPluginVersion != null) jvmArgs.add("-Ddevelocity.ccud-plugin.version=$ccudPluginVersion")
|
if (ccudPluginVersion != null) jvmArgs.add("-Ddevelocity.ccud-plugin.version=$ccudPluginVersion")
|
||||||
if (pluginRepositoryUrl != null) jvmArgs.add("-Dgradle.plugin-repository.url=$pluginRepositoryUrl")
|
if (pluginRepositoryUrl != null) jvmArgs.add("-Dgradle.plugin-repository.url=$pluginRepositoryUrl")
|
||||||
|
if (pluginRepoUsername != null) jvmArgs.add("-Dgradle.plugin-repository.username=$pluginRepoUsername")
|
||||||
|
if (pluginRepoPassword != null) jvmArgs.add("-Dgradle.plugin-repository.password=$pluginRepoPassword")
|
||||||
|
|
||||||
return jvmArgs.collect { it.toString() } // Convert from GStrings
|
return jvmArgs.collect { it.toString() } // Convert from GStrings
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user