properties([ parameters([ gitParameter( branch: '', branchFilter: 'origin/(.*)', defaultValue: 'origin/main', description: '', name: 'BRANCH', quickFilterEnabled: false, selectedValue: 'DEFAULT', sortMode: 'NONE', tagFilter: '*', useRepository: 'git@github.com:DarkflameUniverse/NexusDashboard.git', type: 'PT_BRANCH' ) ]) ]) node('worker'){ stage('Clone Code'){ checkout([ $class: 'GitSCM', branches: [[name: params.BRANCH]], extensions: [], userRemoteConfigs: [ [ credentialsId: 'aronwk', url: 'git@github.com:DarkflameUniverse/NexusDashboard.git' ] ] ]) } def tag = '' stage("Build Container"){ if (params.BRANCH.contains('main')){ tag = 'latest' } else { tag = params.BRANCH.replace('\\', '-') } sh "docker build -t aronwk/nexus-dashboard:${tag} ." } stage("Push Container"){ withCredentials([usernamePassword(credentialsId: 'docker-hub-token', passwordVariable: 'password', usernameVariable: 'username')]) { sh "docker login -u ${username} -p ${password}" sh "docker push aronwk/nexus-dashboard:${tag}" sh 'docker logout' } } }