github.com/olli-ai/jx/v2@v2.0.400-0.20210921045218-14731b4dd448/pkg/cmd/create/test_data/jenkinsfiles/Jenkinsfile.nodejs (about)

     1  pipeline {
     2    agent {
     3      label "jenkins-nodejs"
     4    }
     5    environment {
     6      ORG = 'jstrachan'
     7      APP_NAME = 'mynode1'
     8      CHARTMUSEUM_CREDS = credentials('jenkins-x-chartmuseum')
     9    }
    10    stages {
    11      stage('CI Build and push snapshot') {
    12        when {
    13          branch 'PR-*'
    14        }
    15        environment {
    16          PREVIEW_VERSION = "0.0.0-SNAPSHOT-$BRANCH_NAME-$BUILD_NUMBER"
    17          PREVIEW_NAMESPACE = "$APP_NAME-$BRANCH_NAME".toLowerCase()
    18          HELM_RELEASE = "$PREVIEW_NAMESPACE".toLowerCase()
    19        }
    20        steps {
    21          container('nodejs') {
    22            sh "npm install"
    23            sh "npm test"
    24  
    25            sh 'export VERSION=$PREVIEW_VERSION && skaffold run -f skaffold.yaml'
    26  
    27            sh "jx step validate --min-jx-version 1.2.36"
    28            sh "jx step post build --image \$JENKINS_X_DOCKER_REGISTRY_SERVICE_HOST:\$JENKINS_X_DOCKER_REGISTRY_SERVICE_PORT/$ORG/$APP_NAME:$PREVIEW_VERSION"
    29          }
    30  
    31          dir('./charts/preview') {
    32            container('nodejs') {
    33              sh "make preview"
    34              sh "jx preview --app $APP_NAME --dir ../.."
    35            }
    36          }
    37        }
    38      }
    39      stage('Build Release') {
    40        when {
    41          branch 'master'
    42        }
    43        steps {
    44          container('nodejs') {
    45            // ensure we're not on a detached head
    46            sh "git checkout master"
    47            sh "git config --global credential.helper store"
    48            sh "jx step validate --min-jx-version 1.1.73"
    49            sh "jx step git credentials"
    50            // so we can retrieve the version in later steps
    51            sh "echo \$(jx-release-version) > VERSION"
    52          }
    53          dir('./charts/mynode1') {
    54            container('nodejs') {
    55              sh "make tag"
    56            }
    57          }
    58          container('nodejs') {
    59            sh "npm install"
    60            sh "npm test"
    61  
    62            sh 'export VERSION=`cat VERSION` && skaffold run -f skaffold.yaml'
    63            sh "jx step validate --min-jx-version 1.2.36"
    64            sh "jx step post build --image \$JENKINS_X_DOCKER_REGISTRY_SERVICE_HOST:\$JENKINS_X_DOCKER_REGISTRY_SERVICE_PORT/$ORG/$APP_NAME:\$(cat VERSION)"
    65          }
    66        }
    67      }
    68      stage('Promote to Environments') {
    69        when {
    70          branch 'master'
    71        }
    72        steps {
    73          dir('./charts/mynode1') {
    74            container('nodejs') {
    75              sh 'jx step changelog --version v\$(cat ../../VERSION)'
    76  
    77              // release the helm chart
    78              sh 'make release'
    79  
    80              // promote through all 'Auto' promotion Environments
    81              sh 'jx promote -b --all-auto --timeout 1h --version \$(cat ../../VERSION)'
    82            }
    83          }
    84        }
    85      }
    86    }
    87    post {
    88      always {
    89        cleanWs()
    90      }
    91    }
    92  }