Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env groovy
- pipeline {
- agent { node { label 'php71' } }
- environment {
- packageName='my-package'
- packageVersion=''
- groupId='vznl'
- nexus_endpoint='http://nexus.devtools.io'
- nexus_username='jenkins'
- nexus_password='J3nkins'
- }
- stages{
- // Package dependencies
- stage('Install dependencies') {
- steps {
- sh '''
- echo Skip composer installation
- #composer install --prefer-dist --optimize-autoloader --no-interaction
- '''
- }
- }
- // Unit tests
- stage('Unit Tests') {
- steps {
- sh '''
- echo Running PHP code coverage tests...
- #composer test
- '''
- }
- }
- // Create artifact
- stage('Package') {
- steps {
- echo 'Create package refs'
- sh """
- mkdir -p ./build/zpk
- VERSIONTAG=$(grep 'version' composer.json)
- REGEX='"version": "([0-9]+.[0-9]+.[0-9]+)"'
- if [[ ${VERSIONTAG} =~ ${REGEX} ]]
- then
- env.packageVersion=${BASH_REMATCH[1]}
- /usr/bin/zs-client packZpk --folder=. --destination=./build/zpk --name=${env.packageName}-${env.packageVersion}.zpk --version=${env.packageVersion}
- else
- echo "No version found!"
- exit 1
- fi
- """
- }
- }
- // Publish ZPK package to Nexus
- stage('Publish packages') {
- steps {
- echo "Publish ZPK Package"
- sh "curl -u ${env.nexus_username}:${env.nexus_password} --upload-file ./build/zpk/${env.packageName}-${env.packageVersion}.zpk ${env.nexus_endpoint}/repository/zpk-packages/${groupId}/${env.packageName}-${env.packageVersion}.zpk"
- archive includes: './build/**/*.{zpk,rpm,deb}'
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment