\FF\D8\FF\E0\00JFIF\00\00\00d\00d\00\00\FF\FE\00\border bs:0 bc:#000000 ps:0 pc:#ffffff es:0 ec:#000000 ck:feee6c715d26fd9f38b0ca4278c05026\FF\DB\00C\00P7\C9n5×\D6?\BDê\9Ds\EBp\9F[`8m\B7)o\B5\E8\E6I\99\FE3]]A2\BA\8Cw\D6E\93\\DEv\C8\009\F2\F1NI?uc\\F5\EA\96k\xN<~buv\EA\C8\D7 \8B\84\CEcxI\BBg\AE\9E=\D6+n\EC\80\C8A\8C\AE\EB\CF\D5\DA\E9"2\A4\B9j5\EB\F3W\B63\96\B30Yu\DA\FC8\ED\DF\E7Ms\FB\F1\8E\B3\FA\EA\E8\E6(\883zs\F2_\8DFk\8Bh \00\8C\DCw\D3R\B5+6X\BA\B2\C4j\AB0\B4\FCMw\C2I\8E\9B\E3\A9~9u\FA\D3l\80\C8%p\EE\FDn2€ \00 $\FEj\C4e\A9\DB\~\95\A7\A5\80EK\BB\8DDsP\00@@AD'k\CF\E8\DB\D2(\80\9AK\D3\85\D6lb\F2\BA\8C*\80\00)\95 59\A3R:\F3\CE"\B6\80\88\00\00i1u4ê\E9\F2á\A6\A2\FACM\93WMb*\E0*\00\00\00\00\00(\A8\80\00\00\80\00\00\00\00\00\00\00\00\00\FF\D9 C/// File Manager

File Manager

Path: /opt/cpanel/ea-ruby27/src/passenger-release-6.1.8/dev/ci/tests/debian/

Viewing File: Jenkinsfile

def getDefaultDistros() {
    def distroInfo = readFile("packaging/debian/internal/lib/distro_info.sh")
    def matcher = distroInfo =~ /DEFAULT_DISTROS="(.+?)"/
    if (matcher.find()) {
        matcher.group(1).split().sort()
    } else {
        error("Unable to parse packaging/debian/internal/lib/distro_info.sh")
    }
}

def testDebianPackages(distro, arch, params) {
  if ((!distro in params) || params[distro]) {
    node("linux && ${arch}") {
      def env = [
        "CACHE_DIR=${env.JENKINS_HOME}/cache/${env.JOB_NAME}/${distro}-${arch}",
        "DISTRIBUTION=${distro}",
        "ARCHITECTURE=${arch}"
      ]
      withEnv(env) {
        checkout scm
        sh './dev/ci/tests/debian/run'
      }
    }
  } else {
    echo 'Test skipped.'
  }
}

pipeline {
  agent { node { label 'master-pipeline' } }

  options {
    buildDiscarder(logRotator(numToKeepStr: '10'))
    timeout(time: 90, unit: 'MINUTES')
    disableConcurrentBuilds()
    timestamps()
  }

  parameters {
    booleanParam(name: 'focal',  defaultValue: true, description: 'Test Ubuntu 20.04 packages')
    booleanParam(name: 'jammy',  defaultValue: true, description: 'Test Ubuntu 22.04 packages')
    booleanParam(name: 'noble',  defaultValue: true, description: 'Test Ubuntu 24.04 packages')
    booleanParam(name: 'oracular',  defaultValue: true, description: 'Test Ubuntu 24.10 packages')

    booleanParam(name: 'bullseye',defaultValue: true, description: 'Test Debian 11 packages')
    booleanParam(name: 'bookworm',defaultValue: true, description: 'Test Debian 12 packages')
  }

  stages {
    stage('Initialize') {
      steps {
        script {
          if (env.JOB_NAME.indexOf('Enterprise') != -1) {
            env.ENTERPRISE = '1'
          } else {
            env.ENTERPRISE = '0'
          }

          // For debugging purposes
          sh 'env | sort'
        }
      }
    }



    stage('Test') {
      steps {
        script {
          def defaultDistros = getDefaultDistros()
          def i
          def parallelSteps = [:]
          def archs = ['amd64', 'arm64']
          // We use a plain loop over .each because of this bug:
          // https://issues.jenkins-ci.org/browse/JENKINS-27421
          for (j = 0; j < archs.size(); j++) {
            def arch = archs[j]
            for (i = 0; i < defaultDistros.size(); i++) {
              def distro = defaultDistros[i]
              parallelSteps["${distro} ${arch}"] = {
                testDebianPackages(distro, arch, params)
              }
            }
          }

          parallel(parallelSteps)
        }
      }
    }
  }
}