更改特定错误

时间:2017-01-30 12:11:53

标签: jenkins docker

我有一个Jenkins的工作,应该只使用Docker插件启动一个docker容器。 如果容器已停止,则作业正确运行,但如果容器已在运行,则构建步骤将因

而返回失败
com.github.dockerjava.api.exception.NotModifiedException

错误。

这基本上是Jenkins的预期行为,但在我的情况下,我想将其设置为不稳定,以便为用户提供更有意义的响应。

之后我尝试使用TextFinder添加一个条件构建步骤,该TextFinder扫描控制台输出以查找错误,但似乎在docker构建步骤失败后它没有被执行。

有没有办法只针对此错误更改构建状态?

2 个答案:

答案 0 :(得分:0)

在Jenkins中,您可以为该作业添加Groovy PostBuild Script

exceptionTextRegex = '.*com.github.dockerjava.api.exception.NotModifiedException.*'

if(manager.logContains(exceptionTextRegex)) {
    manager.buildUnstable()
}

答案 1 :(得分:0)

感谢您指点我正确的方向。 Groovy PoistBuild确实是答案,但脚本更大一些:

#include <iostream>
#include <string>
#include <vector>

#include <iostream>
using namespace std;

template<int N, int M>
bool funkcja (char (&a)[N][M], char (&b)[M]);

int main()
{

    char T[3][7]={{'A', 'L', 'A', 'M','A', 'k', 'o'},
            {'M', 'A','M','K','O','T','A'},
            {'T', 'E','Q','U','I','L','A'}};

    char tab[7]={ 'A', 'L', 'A', 'M','A', 'k', 'o' }; 

    cout<<funkcja(T, tab)<<endl;

    return 0;
}

template<int N, int M>
bool funkcja (char (&a)[N][M], char (&b)[M])
{
    int licznik=0;

    for (int i=0;i<N;i++)
    {
        for (int j=0; j<M;j++)
        {
                if (a[i][j]==b[j])
                {
                    licznik++;
                    if (licznik==M) return true;
                }
                else {
                    licznik=0;
                }
        }
        licznik=0;
    }
    return false;
}