在Jenkins-fi中加入测试阶段

2024-09-30 10:35:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将测试阶段添加到我的Jenkins文件中。你知道吗

我在詹金斯家安装了码头工人。你知道吗

我使用以下命令运行测试:

docker-compose run web python manage.py test

这是我的詹金斯档案:

node{
    stage('Checkout'){
        def dockerHome = tool 'docker'
        env.PATH = "${dockerHome}/bin"
        checkout scm
    }

    stage('Build image') {
        withEnv(['PATH+EXTRA=/usr/sbin:/usr/bin:/sbin:/bin']){
            sh "docker login --username=mygituks --password=mdj1646MDJ"
            sh "docker build -t my_git_uks -f Dockerfile ."
            sh "docker tag my_git_uks gituks/uks-git-2019:second"
        }
    }
    stage('Run Tests') {
        withEnv(['PATH+EXTRA=/usr/sbin:/usr/bin:/sbin:/bin']){
            def testsError = null
            try {
                sh "docker-compose run web python manage.py test"
            }
            catch(err) {
                testsError = err
                echo "Failure"
            }
        }

    }
    stage('Push image') {
        withEnv(['PATH+EXTRA=/usr/sbin:/usr/bin:/sbin:/bin']){
            sh "docker push gituks/uks-git-2019:second"
        }
    }
}

我得到一个错误: docker compose:未找到命令

这是我也尝试过的事情之一,我得到了一个错误: 测试.sh:行3:python:未找到命令

我补充道测试.sh地址:

#!/bin/bash

python manage.py test

把我的测试阶段改为:

 stage('Run Tests') {
        withEnv(['PATH+EXTRA=/usr/sbin:/usr/bin:/sbin:/bin']){
            def testsError = null
            try {
                sh "bash test.sh"
            }
            catch(err) {
                testsError = err
                echo "Failure"
            }
        }

希望有人能帮我解决这个问题或给我任何提示。你知道吗

已解决

node{
    stage('Checkout'){
        def dockerHome = tool 'docker'
        env.PATH = "${dockerHome}/bin"
        PATH = "$PATH:/usr/bin"
        checkout scm
    }

    stage('Build image') {
        withEnv(['PATH+EXTRA=/usr/sbin:/usr/bin:/sbin:/bin']){
            sh "docker login --username=mygituks --password=mdj1646MDJ"
            sh "docker build -t my_git_uks -f Dockerfile ."
            sh "docker tag my_git_uks gituks/uks-git-2019:second"
        }
    }
    stage('Run Tests') {
        withEnv(['PATH+EXTRA=/usr/sbin:/usr/bin:/sbin:/bin']){
            echo "PATH is: $PATH"
            sh "docker exec my_git_web python manage.py test"
        }

    }
    stage('Push image') {
        withEnv(['PATH+EXTRA=/usr/sbin:/usr/bin:/sbin:/bin']){
            sh "docker push gituks/uks-git-2019:second"
        }
    }
}

Tags: pathdockerpytestgitbinmanagemy
1条回答
网友
1楼 · 发布于 2024-09-30 10:35:39

您的代理上可能没有安装docker compose。你知道吗

您可以:

  1. 在代理上安装docker compose:(取自docker official docs`)
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  1. 试着用Docker with Docker image
docker.image("docker").inside() {
  sh "docker-compose run web python manage.py test"
}

相关问题 更多 >

    热门问题