如何使用Jenkinsfile

时间:2018-01-12 08:15:54

标签: node.js git api jenkins continuous-integration

我是詹金斯的新手。我有一个小的Node .JS服务器,测试用例是用Mocha编写的(集成测试用例,而不是单元测试用例)。我正在尝试使用Jenkins为此创建CI管道。我的Jenkins文件如下所示:

 #!/usr/bin/env groovy

pipeline {

    agent {
        docker {
            image 'node'
            args '-u root'
        }
    }

    stages {
        stage('Build') {
            steps {
                echo 'Installing Dependencies...'
                sh 'npm install'
            }
        }
        stage('Run') {
            steps {
                echo 'Starting application...'
                sh 'npm start'
            }
        }
        stage('Test') {
            steps {
                echo 'Testing...'
                sh 'npm test'
            }
        }
    }
 }

在运行阶段,使用命令node server.js启动服务器。一旦服务器启动,我希望对该服务器执行测试用例。但我注意到,Jenkins从未执行Test阶段,因为服务器仍然启动(这是我想要的),并且不会退出它。 如何启动服务器并对该服务器运行测试阶段?

2 个答案:

答案 0 :(得分:1)

您应该在运行服务器之前运行测试。测试不应该依赖于正在运行的服务器。测试应该需要任何所需的测试,然后你应该运行服务器。

https://github.com/jenkinsci/pipeline-examples/tree/master/jenkinsfile-examples/nodejs-build-test-deploy-docker-notify

答案 1 :(得分:-1)

我通过创建单独的构建作业然后将它们链接在一起来解决这个问题。在运行阶段,我使用“cd”命令将目录更改为build文件夹并启动服务器。在测试阶段,我也这样做,但是,在运行阶段启动的服务器上执行测试用例。

感谢大家的意见。