Create jenkins file for new jenkins.
Change version scheme to tag based versions.
This commit is contained in:
parent
64c8f67939
commit
1f65388118
2 changed files with 90 additions and 12 deletions
65
Jenkinsfile
vendored
Normal file
65
Jenkinsfile
vendored
Normal file
|
@ -0,0 +1,65 @@
|
|||
@Library('forge-shared-library')_
|
||||
|
||||
pipeline {
|
||||
agent {
|
||||
docker {
|
||||
image 'gradlewrapper:latest'
|
||||
args '-v gradlecache:/gradlecache'
|
||||
}
|
||||
}
|
||||
environment {
|
||||
GRADLE_ARGS = --no-daemon' // No daemon for now as FG3 kinda derps. //'-Dorg.gradle.daemon.idletimeout=5000'
|
||||
}
|
||||
|
||||
stages {
|
||||
stage('fetch') {
|
||||
steps {
|
||||
git(url: 'https://github.com/MinecraftForge/MinecraftForge.git', changelog: true)
|
||||
}
|
||||
}
|
||||
cache(maxCacheSize: 250/*MB*/, caches: [
|
||||
[$class: 'ArbitraryFileCache', excludes: 'log.txt', includes: '**/*', path: '${WORKSPACE}/projects/forge/build/extractRangeMap'] //Cache the rangemap to help speed up builds
|
||||
]){
|
||||
stage('buildandtest') {
|
||||
steps {
|
||||
sh './gradlew ${GRADLE_ARGS} --refresh-dependencies --continue build test'
|
||||
script {
|
||||
env.MYVERSION = sh(returnStdout: true, script: './gradlew properties -q | grep "version:" | awk \'{print $2}\'').trim()
|
||||
}
|
||||
}
|
||||
post {
|
||||
success {
|
||||
writeChangelog(currentBuild, 'build/changelog.txt')
|
||||
archiveArtifacts artifacts: 'build/changelog.txt', fingerprint: false
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('publish') {
|
||||
when {
|
||||
not {
|
||||
changeRequest()
|
||||
}
|
||||
}
|
||||
environment {
|
||||
FORGE_MAVEN = credentials('forge-maven-forge-user')
|
||||
CROWDIN = credentials('forge-crowdin')
|
||||
KEYSTORE = credentials('forge-jenkins-keystore-old')
|
||||
KEYSTORE_KEYPASS = credentials('forge-jenkins-keystore-old-keypass')
|
||||
KEYSTORE_STOREPASS = credentials('forge-jenkins-keystore-old-keypass')
|
||||
}
|
||||
steps {
|
||||
sh './gradlew ${GRADLE_ARGS} forge:publish -PforgeMavenUser=${FORGE_MAVEN_USR} -PforgeMavenPassword=${FORGE_MAVEN_PSW} -PkeystoreKeyPass=${KEYSTORE_KEYPASS} -PkeystoreStorePass=${KEYSTORE_STOREPASS} -Pkeystore=${KEYSTORE} -PcrowdinKey=${CROWDIN}'
|
||||
//We're testing so use the test group
|
||||
sh 'curl --user ${FORGE_MAVEN} http://files.minecraftforge.net/maven/manage/promote/latest/net.minecraftforge.test.forge/${MYVERSION}'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
post {
|
||||
always {
|
||||
archiveArtifacts artifacts: 'build/libs/**/*.jar', fingerprint: true
|
||||
junit 'build/test-results/*/*.xml'
|
||||
jacoco sourcePattern: '**/src/*/java'
|
||||
}
|
||||
}
|
||||
}
|
37
build.gradle
37
build.gradle
|
@ -30,9 +30,6 @@ plugins {
|
|||
}
|
||||
apply plugin: 'eclipse'
|
||||
|
||||
group = 'net.minecraftforge'
|
||||
version = '1.0.0'
|
||||
|
||||
project(':mcp') {
|
||||
apply plugin: 'net.minecraftforge.gradle.forgedev.mcp'
|
||||
mcp {
|
||||
|
@ -92,9 +89,20 @@ project(':forge') {
|
|||
}
|
||||
ext {
|
||||
MC_VERSION = '1.13'
|
||||
SPEC_VERSION = '15.24.0'
|
||||
SPEC_VERSION = '24.0' // This is overwritten by git tag, but here so dev time doesnt explode
|
||||
// The new versioning sceme is <MCVersion>-<ForgeMC>.<RB>.<CommitsSinceRB>
|
||||
// ForgeMC is a unique identifier for every MC version we have supported.
|
||||
// Essentially, the same as the old, except dropping the first number, and the builds are no longer unique.
|
||||
MCP_ARTIFACT = project(':mcp').mcp.config
|
||||
MCP_VERSION = project(':mcp').mcp.config.version.split('-')[1] // The timestamp only.
|
||||
|
||||
if (project.hasProperty('keystore')) {
|
||||
jarsigner = [
|
||||
storepass: project.properties.keystoreStorePass,
|
||||
keypass: project.properties.keystoreKeyPass,
|
||||
keystore: project.properties.keystore
|
||||
]
|
||||
}
|
||||
}
|
||||
patcher {
|
||||
parent = project(':clean')
|
||||
|
@ -122,17 +130,22 @@ project(':forge') {
|
|||
}
|
||||
|
||||
def getVersion = {
|
||||
def out = MC_VERSION.replace('-', '_') + '-' + SPEC_VERSION + '.' + (System.getenv('BUILD_NUMBER') ?: project.ext.properties.buildNumber ?: 0)
|
||||
//TAG-offset-hash
|
||||
def raw = grgit.describe(longDescr: true)
|
||||
def desc = (raw == null ? '0.0-0-unknown' : grgit.describe(longDescr: true)).split('-') as List
|
||||
def hash = desc.remove(desc.size() - 1)
|
||||
def offset = desc.remove(desc.size() - 1)
|
||||
def tag = desc.join('-')
|
||||
def branch = grgit.branch.current().name
|
||||
if (branch != null && branch != 'master' && branch != 'HEAD' && branch != MC_VERSION && branch != MC_VERSION + '.0') {
|
||||
if (!(branch.endsWith('.x') && MC_VERSION.startsWith(branch.substring(0, branch.length() -2))))
|
||||
out += "-${branch}"
|
||||
}
|
||||
println('Version: ' + out)
|
||||
return out
|
||||
if (branch in ['master', 'HEAD', MC_VERSION, MC_VERSION + '.0'])
|
||||
branch = null
|
||||
if (branch != null && branch.endsWith('.x') && MC_VERSION.startsWith(branch.substring(0, branch.length() - 2))) //1.13.x
|
||||
branch = null
|
||||
SPEC_VERSION = tag
|
||||
return "${tag}.${offset}${t -> if (branch != null) t << '-' + branch}"
|
||||
}
|
||||
|
||||
group = 'net.minecraftforge'
|
||||
group = 'net.minecraftforge.test' //TODO: remove when we jenkins is working
|
||||
version = getVersion()
|
||||
applyPatches {
|
||||
canonicalizeAccess true
|
||||
|
|
Loading…
Reference in a new issue