pipeline {
    agent any
    stages {
        stage('Gradle') {
            steps {
                withCredentials([usernamePassword(credentialsId: 'alttd-publish-user', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) {
                    sh '''
                        chmod +x gradlew
                        ./gradlew build -PalttdDevPublishUser=$USERNAME -PalttdDevPublishPass=$PASSWORD
                    '''
                }
            }
        }

        stage('Publish to Maven') {
            steps {
                withCredentials([usernamePassword(credentialsId: 'alttd-publish-user', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) {
                    sh '''
                        chmod +x gradlew
                        ./gradlew :api:publish -PalttdDevPublishUser=$USERNAME -PalttdDevPublishPass=$PASSWORD
                    '''
                }
            }
        }

        stage('Archive') {
            steps {
                archiveArtifacts artifacts: 'plugin/build/libs/DataLockLib*.jar, api/build/libs/DataLockLibApi*.jar', followSymlinks: false
            }
        }

        stage('discord') {
            when {
                anyOf {
                    branch 'main'
                    branch 'master'
                }
            }
            steps {
                discordSend description: "Build: ${BUILD_NUMBER}", showChangeset: true, result: currentBuild.currentResult, title: currentBuild.fullProjectName, webhookURL: env.discordwebhook
            }
        }
    }
}
