
pl.allegro.tech.build.axion.release.domain.RepositoryConfig.groovy Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of axion-release-plugin Show documentation
Show all versions of axion-release-plugin Show documentation
Gradle release and version management plugin
The newest version!
package pl.allegro.tech.build.axion.release.domain
import org.gradle.api.file.Directory
import org.gradle.api.file.RegularFileProperty
import org.gradle.api.provider.Property
import org.gradle.api.provider.Provider
import org.gradle.api.tasks.Input
import org.gradle.api.tasks.InputFile
import org.gradle.api.tasks.Optional
import javax.inject.Inject
abstract class RepositoryConfig extends BaseExtension {
private static final String CUSTOM_KEY_PROPERTY = 'release.customKey'
private static final String CUSTOM_KEY_FILE_PROPERTY = 'release.customKeyFile'
private static final String CUSTOM_KEY_PASSWORD_PROPERTY = 'release.customKeyPassword'
private static final String USERNAME_PROPERTY = 'release.customUsername'
private static final String PASSWORD_PROPERTY = 'release.customPassword'
private static final String RELEASE_PUSH_TAGS_ONLY_PROPERTY = 'release.pushTagsOnly'
private static final String ATTACH_REMOTE_PROPERTY = 'release.attachRemote'
private static final String OVERRIDDEN_BRANCH_NAME = 'release.overriddenBranchName'
private static final String OVERRIDDEN_IS_CLEAN = 'release.overriddenIsClean'
private static final String DISABLE_SSH_AGENT = 'release.disableSshAgent'
private static final String FETCH_TAGS_PROPERTY = 'release.fetchTags'
@Inject
RepositoryConfig(Directory repositoryDirectory) {
pushTagsOnly.convention(false)
type.convention("git")
remote.convention("origin")
customUsername.convention(gradleProperty(USERNAME_PROPERTY))
customPassword.convention(gradleProperty(PASSWORD_PROPERTY))
customKeyPassword.convention(gradleProperty(CUSTOM_KEY_PASSWORD_PROPERTY))
customKey.convention(gradleProperty(CUSTOM_KEY_PROPERTY))
customKeyFile.convention(gradleProperty(CUSTOM_KEY_FILE_PROPERTY)
.map({ layout.projectDirectory.file(it) }))
directory.convention(repositoryDirectory.asFile.absolutePath)
}
@Input
@Optional
abstract Property getType()
@Input
@Optional
abstract Property getDirectory()
@Input
@Optional
abstract Property getRemote()
@Input
@Optional
abstract Property getCustomKey()
@InputFile
@Optional
abstract RegularFileProperty getCustomKeyFile()
@Input
@Optional
abstract Property getCustomKeyPassword()
@Input
@Optional
abstract Property getCustomUsername()
@Input
@Optional
abstract Property getCustomPassword()
@Input
@Optional
abstract Property getPushTagsOnly()
Provider pushTagsOnly() {
gradlePropertyPresent(RELEASE_PUSH_TAGS_ONLY_PROPERTY).orElse(pushTagsOnly)
}
Provider attachRemote() {
gradleProperty(ATTACH_REMOTE_PROPERTY)
}
Provider overriddenBranch() {
gradleProperty(OVERRIDDEN_BRANCH_NAME)
}
Provider overriddenIsClean() {
gradlePropertyAsBoolean(OVERRIDDEN_IS_CLEAN)
}
Provider disableSshAgent() {
gradlePropertyPresent(DISABLE_SSH_AGENT).orElse(false)
}
Provider fetchTags() {
gradlePropertyPresent(FETCH_TAGS_PROPERTY).orElse(false)
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy