groovy 在步骤中找不到此类DSL方法'openShiftInstall'

pbwdgjma  于 2022-11-01  发布在  其他
关注(0)|答案(2)|浏览(186)

下面是一个简单的函数:

def openShiftInstall(char CLUSTER_URL, char TOKEN) {
    sh '''
        oc login --token='''TOKEN''' --server='''CLUSTER_URL'''

        if helm history --max 1 $ARTIFACT_ID 2>/dev/null | grep FAILED | cut -f1 | grep -q 1; then
           helm delete --purge $ARTIFACT_ID
        fi

        helm upgrade --install -f container-root/helm/values-devref.yaml --set image.version=$RELEASE_VERSION $ARTIFACT_ID container-root/helm --namespace ${NAMESPACE} --debug
    '''
}

在这一阶段

environment {
                                    NAMESPACE = 'test'

                                    OC_a_DEV_TOKEN = 123
                                    OC_b_DEV_TOKEN = 456
                                    OC_a_DEV_CLUSTER_URL = 'https://api.ocp4-a.net:443'
                                    OC_b_DEV_CLUSTER_URL = 'https://api.ocp4-b.net:443'

                                }
                                steps {
                                    container('oc') {
                                        script {
                                            openShift.openShiftInstall("${OC_a_DEV_CLUSTER_URL}", "${OC_a_DEV_TOKEN}")
                                            //openShift.openShiftInstall(${OC_b_DEV_CLUSTER_URL}, ${OC_b_DEV_TOKEN})
                                        }
                                    }
                                }

我得到这个错误:

java.lang.NoSuchMethodError: No such DSL method 'openShiftInstall' found among steps

有人能帮我弄明白我在这里做错了什么吗?
也许有一个更好的解决方案来循环通过多个集群安装不同的参数?现在我只是试图运行相同的函数两次,但即使是一个不工作的参数。

w6lpcovy

w6lpcovy1#

您似乎在函数openShiftInstall中接受了一个Char,但您传递的是一个字符串。请按如下所示更改方法签名。

def openShiftInstall(def CLUSTER_URL, def TOKEN) {
    sh '''
        oc login --token='''TOKEN''' --server='''CLUSTER_URL'''

        if helm history --max 1 $ARTIFACT_ID 2>/dev/null | grep FAILED | cut -f1 | grep -q 1; then
           helm delete --purge $ARTIFACT_ID
        fi

        helm upgrade --install -f container-root/helm/values-devref.yaml --set image.version=$RELEASE_VERSION $ARTIFACT_ID container-root/helm --namespace ${NAMESPACE} --debug
    '''
}
wgx48brx

wgx48brx2#

我更改为下面的,它似乎现在工作。

def openShiftInstall(String CLUSTER_URL, String TOKEN) {
    unstash 'lapc-docker-root'
    sh '''
        oc login --token=''' + TOKEN + ''' --server=''' + CLUSTER_URL + '''

        if helm history --max 1 $ARTIFACT_ID 2>/dev/null | grep FAILED | cut -f1 | grep -q 1; then
           helm delete --purge $ARTIFACT_ID
        fi

        helm upgrade --install -f container-root/helm/values-devref.yaml --set image.version=$RELEASE_VERSION $ARTIFACT_ID container-root/helm --namespace ${NAMESPACE} --debug
    '''
}

相关问题