GitLab CI secret variables for Gradle publish
Here is how I resolved it (unfortunately the official GitLab doco is very focused on Maven... :(
apply plugin: 'java'
apply plugin: 'maven-publish'
compileJava.options.encoding = 'UTF-8'
group = 'com.example'
version = '1.0.9'
task zipSource(type: Zip) {
from file('files/test.zip')
archiveClassifier = 'testZip'
}
publishing {
repositories {
maven {
name 'GitLab'
url 'https://gitlab.my-company.com/api/v4/projects/2302/packages/maven'
credentials(HttpHeaderCredentials) {
name = "Job-Token"
value = System.getenv("CI_JOB_TOKEN")
}
authentication {
header(HttpHeaderAuthentication)
}
}
}
publications {
mavenJava(MavenPublication) {
artifactId = 'project1-sample'
//deploy jar vom Java
from components.java
//deploy arbitrary Zip file
artifact zipSource
}
}
}
You don't need env.
prefinx in your .gitlab-ci.yml
. You don't need to re-export the variables as well.
If you have defined a variables named MAVEN_REPO_USER
and MAVEN_REPO_PASS
in Gitlab CI/CD settings for the project, you can just use them in Gradle script:
repositories {
maven {
credentials {
username System.getenv("MAVEN_REPO_USER")
password System.getenv("MAVEN_REPO_PASS")
}
url "…"
}
}
you can use environment variables directly to set gradle properties, see full documentation here.
in your case set artifactUser
and artifactPass
as env variables (best as secrect ones).