-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathJenkinsfile
94 lines (92 loc) · 2.82 KB
/
Jenkinsfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#!/usr/bin/env groovy
// so much of this is yoinked from hexdebug, thanks kyra
RELEASE_BRANCHES = ["main"]
pipeline {
agent any
tools {
jdk "jdk-21" // valid options are: "jdk-8", "jdk-16", "jdk-17" or "jdk-21", choose which one you need
}
parameters {
booleanParam(
name: "PUBLISH_MAVEN_RELEASE",
description: "Publish release to Maven (default: publish snapshot)",
defaultValue: false,
)
booleanParam(
name: "PUBLISH_CURSEFORGE",
description: "Publish to CurseForge",
defaultValue: false,
)
booleanParam(
name: "PUBLISH_MODRINTH",
description: "Publish to Modrinth",
defaultValue: false,
)
booleanParam(
name: "PUBLISH_GITHUB",
description: "Publish to GitHub",
defaultValue: false,
)
}
stages {
stage('Clean') {
steps {
echo 'Cleaning Project'
sh 'chmod +x gradlew'
sh './gradlew clean'
}
}
stage('Build') {
steps {
echo 'Building'
sh './gradlew build'
}
}
stage("Publish") {
when {
expression { env.BRANCH_NAME in RELEASE_BRANCHES }
}
stages {
stage("Publish: Maven") {
steps {
sh "./gradlew publish"
}
}
stage("Publish: GitHub") {
when {
expression { params.PUBLISH_GITHUB }
}
environment {
GITHUB_TOKEN = credentials("github-release-pat")
GITHUB_REPOSITORY = "SamsTheNerd/inline"
}
steps {
sh "./gradlew publishGithub"
}
}
stage("Publish: CurseForge") {
when {
expression { params.PUBLISH_CURSEFORGE }
}
environment {
CURSEFORGE_API_KEY = credentials("curseforge-token")
}
steps {
sh "./gradlew publishCurseforge"
}
}
stage("Publish: Modrinth") {
when {
expression { params.PUBLISH_MODRINTH }
}
environment {
MODRINTH_API_KEY = credentials("modrinth-pat")
}
steps {
sh "./gradlew publishModrinth"
}
}
}
}
}
}