103 lines
3.1 KiB
Groovy
103 lines
3.1 KiB
Groovy
pipeline {
|
|
options { timestamps() }
|
|
agent any
|
|
environment {
|
|
PROJECT = "GlitchInTheSystem"
|
|
EXPORT = "export"
|
|
BUCKET_NAME = "sumu-games-pkg-us-east-1"
|
|
ITCH_ADDRESS = "joebmanley/glitchinthesystem"
|
|
}
|
|
stages {
|
|
stage('Test')
|
|
{
|
|
when
|
|
{
|
|
expression
|
|
{
|
|
fileExists 'Scripts/testing.gd'
|
|
}
|
|
}
|
|
steps{
|
|
sh("godot -s Scripts/testing.gd")
|
|
}
|
|
}
|
|
stage('Build') {
|
|
steps {
|
|
script
|
|
{
|
|
sh("mkdir Builds")
|
|
if(env.BRANCH_NAME != "develop")
|
|
{
|
|
env.EXPORT = "export_debug"
|
|
}
|
|
sh("""
|
|
mkdir Builds/Linux
|
|
mkdir Builds/Linux/${PROJECT}
|
|
godot --${export} Linux/X11 Builds/Linux/${PROJECT}/${PROJECT}
|
|
""")
|
|
sh("""
|
|
mkdir Builds/Windows
|
|
mkdir Builds/Windows/${PROJECT}
|
|
godot --${export} "Windows Desktop" Builds/Windows/${PROJECT}/${PROJECT}.exe
|
|
""")
|
|
sh("""
|
|
mkdir Builds/Mac
|
|
mkdir Builds/Mac/${PROJECT}
|
|
godot --${export} "Mac OSX" Builds/Mac/${PROJECT}/${PROJECT}
|
|
""")
|
|
sh("""
|
|
mkdir Builds/html5
|
|
mkdir Builds/html5/${PROJECT}
|
|
godot --${export} "HTML5" Builds/html5/index.html
|
|
""")
|
|
}
|
|
}
|
|
}
|
|
stage('Package Artifacts')
|
|
{
|
|
steps
|
|
{
|
|
dir ("Builds/Linux/") {
|
|
sh("zip ../${PROJECT}-linux.zip ${PROJECT} -r")
|
|
}
|
|
dir ("Builds/Windows/") {
|
|
sh("zip ../${PROJECT}-windows.zip ${PROJECT} -r")
|
|
}
|
|
dir ("Builds/Mac/") {
|
|
sh("zip ../${PROJECT}-mac.zip ${PROJECT} -r")
|
|
}
|
|
dir ("Builds/html5/") {
|
|
sh("zip ../${PROJECT}-html5.zip * -r")
|
|
}
|
|
}
|
|
}
|
|
stage('Ship to S3')
|
|
{
|
|
steps {
|
|
sh("aws s3 cp Builds/${PROJECT}-linux.zip s3://${BUCKET_NAME}/${PROJECT}/${env.BRANCH_NAME}/${PROJECT}-linux.zip")
|
|
sh("aws s3 cp Builds/${PROJECT}-windows.zip s3://${BUCKET_NAME}/${PROJECT}/${env.BRANCH_NAME}/${PROJECT}-windows.zip")
|
|
sh("aws s3 cp Builds/${PROJECT}-mac.zip s3://${BUCKET_NAME}/${PROJECT}/${env.BRANCH_NAME}/${PROJECT}-mac.zip")
|
|
sh("aws s3 cp Builds/${PROJECT}-html5.zip s3://${BUCKET_NAME}/${PROJECT}/${env.BRANCH_NAME}/${PROJECT}-html5.zip")
|
|
}
|
|
}
|
|
stage('Ship to Itch.io')
|
|
{
|
|
when {
|
|
expression {
|
|
env.BRANCH_NAME == 'develop'
|
|
}
|
|
}
|
|
steps {
|
|
sh("butler push Builds/${PROJECT}-linux.zip ${ITCH_ADDRESS}:linux --userversion ${env.BRANCH_NAME}")
|
|
sh("butler push Builds/${PROJECT}-windows.zip ${ITCH_ADDRESS}:windows --userversion ${env.BRANCH_NAME}")
|
|
sh("butler push Builds/${PROJECT}-mac.zip ${ITCH_ADDRESS}:osx --userversion ${env.BRANCH_NAME}")
|
|
sh("butler push Builds/${PROJECT}-html5.zip ${ITCH_ADDRESS}:html5 --userversion ${env.BRANCH_NAME}")
|
|
}
|
|
}
|
|
}
|
|
post {
|
|
always {
|
|
cleanWs()
|
|
}
|
|
}
|
|
} |