Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将jenkins配置为在同一jenkins文件中的多个节点(一个用于linux,一个用于windows)上构建?_Linux_Windows_Jenkins - Fatal编程技术网

如何将jenkins配置为在同一jenkins文件中的多个节点(一个用于linux,一个用于windows)上构建?

如何将jenkins配置为在同一jenkins文件中的多个节点(一个用于linux,一个用于windows)上构建?,linux,windows,jenkins,Linux,Windows,Jenkins,因为我是詹金斯的新手,所以即使在网上搜索了很长时间,我似乎也找不到一个适合我情况的正确解决方案。 我在tfs中有两个存储库位置。location1具有在linux环境中执行构建所需的jenkins文件和其他文件,location2具有相同的源文件,但在windows环境中进行构建所需的jenkins文件和bat文件 现在,需要删除包含windows文件的存储库位置2,并且现在需要将其中的windows功能添加到其他存储库位置1。因此,从本质上讲,存储库需要具有能够在linux和windows上工

因为我是詹金斯的新手,所以即使在网上搜索了很长时间,我似乎也找不到一个适合我情况的正确解决方案。 我在tfs中有两个存储库位置。location1具有在linux环境中执行构建所需的jenkins文件和其他文件,location2具有相同的源文件,但在windows环境中进行构建所需的jenkins文件和bat文件

现在,需要删除包含windows文件的存储库位置2,并且现在需要将其中的windows功能添加到其他存储库位置1。因此,从本质上讲,存储库需要具有能够在linux和windows上工作的Jenkins文件。我不知道该怎么办。我读到我们可以做多种配置的工作。但是我该怎么做呢

目前,我为Linux one提供的Jenkins文件如下:

node('CentOs_Build_server)
{ 
stage('checkout')
    {
        checkout scm
    }

    stage('clean workspace')
    {
        sh '''
        git clean -fdx
        '''
    }

    stage('dependencies')
    {
                }

    stage('build')
    {
                }


    stage('archive artifacts')
    {
        archiveArtifacts 'build/*.rpm'
    }

        catch (err) {

    currentBuild.result = "FAILURE"

    echo "project build error: ${err}"

    throw err
}
}
 node master

ws('D:\\Jenkins_Workspace\\OpcUaFramework_Latest')
{currentBuild.result = "SUCCESS"

try {
    stage('checkout')
    {
        checkout scm
    }

    stage('clean workspace')
    {
        bat '''
        git clean -fdx
        '''
    }

    stage('build')
    {
        bat '''
            " INSTALL.vcxproj /p:Configuration=Debug 
            rem MSBuild         }




    stage('archive artifacts')
    {
        archiveArtifacts '**/*.msi, **/*.zip'
    }



catch (err) 

{
    currentBuild.result = "FAILURE"
    echo "project build error: ${err}"
    throw err

}
}
}
windows的jenkins文件如下所示:

node('CentOs_Build_server)
{ 
stage('checkout')
    {
        checkout scm
    }

    stage('clean workspace')
    {
        sh '''
        git clean -fdx
        '''
    }

    stage('dependencies')
    {
                }

    stage('build')
    {
                }


    stage('archive artifacts')
    {
        archiveArtifacts 'build/*.rpm'
    }

        catch (err) {

    currentBuild.result = "FAILURE"

    echo "project build error: ${err}"

    throw err
}
}
 node master

ws('D:\\Jenkins_Workspace\\OpcUaFramework_Latest')
{currentBuild.result = "SUCCESS"

try {
    stage('checkout')
    {
        checkout scm
    }

    stage('clean workspace')
    {
        bat '''
        git clean -fdx
        '''
    }

    stage('build')
    {
        bat '''
            " INSTALL.vcxproj /p:Configuration=Debug 
            rem MSBuild         }




    stage('archive artifacts')
    {
        archiveArtifacts '**/*.msi, **/*.zip'
    }



catch (err) 

{
    currentBuild.result = "FAILURE"
    echo "project build error: ${err}"
    throw err

}
}
}
我对这一切真的不是很有经验。如果有人能告诉你新的詹金斯档案应该是什么样子,那就太好了


编辑:我应该使用多配置项目还是自由式项目也可以用于并行构建运行

下面是一个简单的示例,将使用同一个Jenkins文件在两个不同的节点上并行运行两个构建:

parallel (
    "Linux": {
        node('Linux')
        {
            # build steps
        }
    },
    "Windows": {
        node('Windows') 
        { 
            # build steps
        }
    }
)
节点步骤选择已配置了正确标签的节点

这可以在每个节点的节点配置屏幕中设置

管道构建不是自由式作业。
多分支管道是关于构建存储库的多个分支,而不是构建所需的配置。

您发布的代码似乎比您的问题合理的代码要多。请阅读并了解如何制作,提供MCVE帮助用户回答您的问题,以及未来用户与您的问题相关。感谢您的回答。请你帮我回答问题的第二部分好吗?