Merge branch 'v3' of https://github.com/cocos2d/cocos2d-x into v3_keypad_fix

This commit is contained in:
samuele3hu 2014-06-13 14:39:11 +08:00
commit 9b3b6c0e53
15 changed files with 167 additions and 218 deletions

View File

@ -841,6 +841,7 @@ Developers:
sachingarg05 sachingarg05
Re-added orientation change callback in java activity Re-added orientation change callback in java activity
GLProgram should not abort() if shader compilation fails, returning false is better.
dplusic dplusic
Fixed that cc.pGetAngle may return wrong value Fixed that cc.pGetAngle may return wrong value
@ -882,6 +883,12 @@ Developers:
Added TextField::getStringLength() Added TextField::getStringLength()
Add shadow, outline, glow filter support for UIText Add shadow, outline, glow filter support for UIText
QiuleiWang
Fix the bug that calculated height of multi-line string was incorrect on iOS
Rumist
Fix the bug that the result of Director->convertToUI() is error.
Retired Core Developers: Retired Core Developers:
WenSheng Yang WenSheng Yang
Author of windows port, CCTextField, Author of windows port, CCTextField,

View File

@ -11,12 +11,15 @@ cocos2d-x-3.2 ???
[FIX] Android: 3d model will be black when coming from background [FIX] Android: 3d model will be black when coming from background
[FIX] Android: don't trigger EVENT_COME_TO_BACKGROUND event when go to background [FIX] Android: don't trigger EVENT_COME_TO_BACKGROUND event when go to background
[FIX] Cocos2dxGLSurfaceView.java: prevent flickering when opening another activity [FIX] Cocos2dxGLSurfaceView.java: prevent flickering when opening another activity
[FIX] Director: Director->convertToUI() returns wrong value.
[FIX] GLProgram: not abort if shader compilation fails, just retuan false.
[FIX] GLProgramState: sampler can not be changed [FIX] GLProgramState: sampler can not be changed
[FIX] Image: Set jpeg save quality to 90 [FIX] Image: Set jpeg save quality to 90
[FIX] Image: premultiply alpha when loading png file to resolve black border issue [FIX] Image: premultiply alpha when loading png file to resolve black border issue
[FIX] Label: label is unsharp if it's created by smaller font [FIX] Label: label is unsharp if it's created by smaller font
[FIX] Label: Label's display may go bonkers if invoking Label::setString() with outline feature enabled [FIX] Label: Label's display may go bonkers if invoking Label::setString() with outline feature enabled
[FIX] Label: don't release cached texture in time [FIX] Label: don't release cached texture in time
[FIX] Label: calculated height of multi-line string was incorrect on iOS
[FIX] Lua-binding: compiling error on release mode [FIX] Lua-binding: compiling error on release mode
[FIX] Lua-binding: Add xxtea encrypt support [FIX] Lua-binding: Add xxtea encrypt support
[FIX] Node: setPhysicsBody() can not work correctly if it is added to a Node [FIX] Node: setPhysicsBody() can not work correctly if it is added to a Node
@ -26,6 +29,7 @@ cocos2d-x-3.2 ???
[FIX] Repeat: will run one more over in rare situations [FIX] Repeat: will run one more over in rare situations
[FIX] Scale9Sprite: support culling [FIX] Scale9Sprite: support culling
[FIX] Schedule: schedulePerFrame() can not be called twice [FIX] Schedule: schedulePerFrame() can not be called twice
[FIX] ShaderTest: 7 times performance improved of blur effect
[FIX] SpriteFrameCache: fix memory leak [FIX] SpriteFrameCache: fix memory leak
[FIX] Texture2D: use image's pixel format to create texture [FIX] Texture2D: use image's pixel format to create texture
[FIX] TextureCache: addImageAsync() may repeatedly generate Image for the same image file [FIX] TextureCache: addImageAsync() may repeatedly generate Image for the same image file

View File

@ -1,4 +1,4 @@
/**************************************************************************** /****************************************************************************
Copyright (c) 2008-2010 Ricardo Quesada Copyright (c) 2008-2010 Ricardo Quesada
Copyright (c) 2010-2013 cocos2d-x.org Copyright (c) 2010-2013 cocos2d-x.org
Copyright (c) 2011 Zynga Inc. Copyright (c) 2011 Zynga Inc.
@ -763,6 +763,18 @@ Vec2 Director::convertToUI(const Vec2& glPoint)
Vec4 glCoord(glPoint.x, glPoint.y, 0.0, 1); Vec4 glCoord(glPoint.x, glPoint.y, 0.0, 1);
transform.transformVector(glCoord, &clipCoord); transform.transformVector(glCoord, &clipCoord);
/*
BUG-FIX #5506
a = (Vx, Vy, Vz, 1)
b = (a×M)T
Out = 1 bw(bx, by, bz)
*/
clipCoord.x = clipCoord.x / clipCoord.w;
clipCoord.y = clipCoord.y / clipCoord.w;
clipCoord.z = clipCoord.z / clipCoord.w;
Size glSize = _openGLView->getDesignResolutionSize(); Size glSize = _openGLView->getDesignResolutionSize();
float factor = 1.0/glCoord.w; float factor = 1.0/glCoord.w;
return Vec2(glSize.width*(clipCoord.x*0.5 + 0.5) * factor, glSize.height*(-clipCoord.y*0.5 + 0.5) * factor); return Vec2(glSize.width*(clipCoord.x*0.5 + 0.5) * factor, glSize.height*(-clipCoord.y*0.5 + 0.5) * factor);

View File

@ -215,25 +215,13 @@ static inline void lazyCheckIOS7()
static CGSize _calculateStringSize(NSString *str, id font, CGSize *constrainSize) static CGSize _calculateStringSize(NSString *str, id font, CGSize *constrainSize)
{ {
NSArray *listItems = [str componentsSeparatedByString: @"\n"];
CGSize dim = CGSizeZero;
CGSize textRect = CGSizeZero; CGSize textRect = CGSizeZero;
textRect.width = constrainSize->width > 0 ? constrainSize->width textRect.width = constrainSize->width > 0 ? constrainSize->width
: 0x7fffffff; : 0x7fffffff;
textRect.height = constrainSize->height > 0 ? constrainSize->height textRect.height = constrainSize->height > 0 ? constrainSize->height
: 0x7fffffff; : 0x7fffffff;
for (NSString *s in listItems) CGSize dim = [str sizeWithFont:font constrainedToSize:textRect];
{
CGSize tmp = [s sizeWithFont:font constrainedToSize:textRect];
if (tmp.width > dim.width)
{
dim.width = tmp.width;
}
dim.height += tmp.height;
}
dim.width = ceilf(dim.width); dim.width = ceilf(dim.width);
dim.height = ceilf(dim.height); dim.height = ceilf(dim.height);

View File

@ -138,9 +138,17 @@ GLProgram::~GLProgram()
{ {
CCLOGINFO("%s %d deallocing GLProgram: %p", __FUNCTION__, __LINE__, this); CCLOGINFO("%s %d deallocing GLProgram: %p", __FUNCTION__, __LINE__, this);
// there is no need to delete the shaders. They should have been already deleted. if (_vertShader)
CCASSERT(_vertShader == 0, "Vertex Shaders should have been already deleted"); {
CCASSERT(_fragShader == 0, "Fragment Shaders should have been already deleted"); glDeleteShader(_vertShader);
}
if (_fragShader)
{
glDeleteShader(_fragShader);
}
_vertShader = _fragShader = 0;
if (_program) if (_program)
{ {
@ -436,7 +444,7 @@ bool GLProgram::compileShader(GLuint * shader, GLenum type, const GLchar* source
} }
free(src); free(src);
abort(); return false;;
} }
return (status == GL_TRUE); return (status == GL_TRUE);
} }

View File

@ -255,27 +255,10 @@ int LuaStack::executeString(const char *codes)
int LuaStack::executeScriptFile(const char* filename) int LuaStack::executeScriptFile(const char* filename)
{ {
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
std::string code("require \""); std::string code("require \"");
code.append(filename); code.append(filename);
code.append("\""); code.append("\"");
return executeString(code.c_str()); return executeString(code.c_str());
#else
std::string fullPath = FileUtils::getInstance()->fullPathForFilename(filename);
++_callFromLua;
int nRet = luaL_dofile(_state, fullPath.c_str());
--_callFromLua;
CC_ASSERT(_callFromLua >= 0);
// lua_gc(_state, LUA_GCCOLLECT, 0);
if (nRet != 0)
{
CCLOG("[LUA ERROR] %s", lua_tostring(_state, -1));
lua_pop(_state, 1);
return nRet;
}
return 0;
#endif
} }
int LuaStack::executeGlobalFunction(const char* functionName) int LuaStack::executeGlobalFunction(const char* functionName)

View File

@ -421,22 +421,16 @@ class SpriteBlur : public Sprite
{ {
public: public:
~SpriteBlur(); ~SpriteBlur();
void setBlurSize(float f);
bool initWithTexture(Texture2D* texture, const Rect& rect); bool initWithTexture(Texture2D* texture, const Rect& rect);
void initGLProgram(); void initGLProgram();
static SpriteBlur* create(const char *pszFileName); static SpriteBlur* create(const char *pszFileName);
void setBlurRadius(float radius);
void setBlurSampleNum(float num);
protected: protected:
float _blurRadius;
int _blurRadius; float _blurSampleNum;
Vec2 _pixelSize;
int _samplingRadius;
//gaussian = cons * exp( (dx*dx + dy*dy) * scale);
float _scale;
float _cons;
float _weightSum;
}; };
SpriteBlur::~SpriteBlur() SpriteBlur::~SpriteBlur()
@ -472,14 +466,7 @@ bool SpriteBlur::initWithTexture(Texture2D* texture, const Rect& rect)
_eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this); _eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);
#endif #endif
auto s = getTexture()->getContentSizeInPixels(); initGLProgram();
_pixelSize = Vec2(1/s.width, 1/s.height);
_samplingRadius = 0;
this->initGLProgram();
getGLProgramState()->setUniformVec2("onePixelSize", _pixelSize);
return true; return true;
} }
@ -495,43 +482,23 @@ void SpriteBlur::initGLProgram()
auto glProgramState = GLProgramState::getOrCreateWithGLProgram(program); auto glProgramState = GLProgramState::getOrCreateWithGLProgram(program);
setGLProgramState(glProgramState); setGLProgramState(glProgramState);
auto size = getTexture()->getContentSizeInPixels();
getGLProgramState()->setUniformVec2("resolution", size);
getGLProgramState()->setUniformFloat("blurRadius", _blurRadius);
getGLProgramState()->setUniformFloat("sampleNum", 7.0f);
} }
void SpriteBlur::setBlurSize(float f) void SpriteBlur::setBlurRadius(float radius)
{ {
if(_blurRadius == (int)f) _blurRadius = radius;
return; getGLProgramState()->setUniformFloat("blurRadius", _blurRadius);
_blurRadius = (int)f; }
_samplingRadius = _blurRadius; void SpriteBlur::setBlurSampleNum(float num)
if (_samplingRadius > 10)
{ {
_samplingRadius = 10; _blurSampleNum = num;
} getGLProgramState()->setUniformFloat("sampleNum", _blurSampleNum);
if (_blurRadius > 0)
{
float sigma = _blurRadius / 2.0f;
_scale = -0.5f / (sigma * sigma);
_cons = -1.0f * _scale / 3.141592f;
_weightSum = -_cons;
float weight;
int squareX;
for(int dx = 0; dx <= _samplingRadius; ++dx)
{
squareX = dx * dx;
weight = _cons * exp(squareX * _scale);
_weightSum += 2.0 * weight;
for (int dy = 1; dy <= _samplingRadius; ++dy)
{
weight = _cons * exp((squareX + dy * dy) * _scale);
_weightSum += 4.0 * weight;
}
}
}
log("_blurRadius:%d",_blurRadius);
getGLProgramState()->setUniformVec4("gaussianCoefficient", Vec4(_samplingRadius, _scale, _cons, _weightSum));
} }
// ShaderBlur // ShaderBlur
@ -551,22 +518,43 @@ std::string ShaderBlur::subtitle() const
return "Gaussian blur"; return "Gaussian blur";
} }
ControlSlider* ShaderBlur::createSliderCtl() void ShaderBlur::createSliderCtls()
{ {
auto screenSize = Director::getInstance()->getWinSize(); auto screenSize = Director::getInstance()->getWinSize();
{
ControlSlider *slider = ControlSlider::create("extensions/sliderTrack.png","extensions/sliderProgress.png" ,"extensions/sliderThumb.png"); ControlSlider *slider = ControlSlider::create("extensions/sliderTrack.png","extensions/sliderProgress.png" ,"extensions/sliderThumb.png");
slider->setAnchorPoint(Vec2(0.5f, 1.0f)); slider->setAnchorPoint(Vec2(0.5f, 1.0f));
slider->setMinimumValue(0.0f); // Sets the min value of range slider->setMinimumValue(0.0f);
slider->setMaximumValue(25.0f); // Sets the max value of range slider->setMaximumValue(25.0f);
slider->setScale(0.6f);
slider->setPosition(Vec2(screenSize.width / 2.0f, screenSize.height / 3.0f)); slider->setPosition(Vec2(screenSize.width / 4.0f, screenSize.height / 3.0f));
slider->addTargetWithActionForControlEvents(this, cccontrol_selector(ShaderBlur::onRadiusChanged), Control::EventType::VALUE_CHANGED);
// When the value of the slider will change, the given selector will be call
slider->addTargetWithActionForControlEvents(this, cccontrol_selector(ShaderBlur::sliderAction), Control::EventType::VALUE_CHANGED);
slider->setValue(2.0f); slider->setValue(2.0f);
addChild(slider);
_sliderRadiusCtl = slider;
return slider; auto label = Label::createWithTTF("Blur Radius", "fonts/arial.ttf", 12.0f);
addChild(label);
label->setPosition(Vec2(screenSize.width / 4.0f, screenSize.height / 3.0f - 24.0f));
}
{
ControlSlider *slider = ControlSlider::create("extensions/sliderTrack.png","extensions/sliderProgress.png" ,"extensions/sliderThumb.png");
slider->setAnchorPoint(Vec2(0.5f, 1.0f));
slider->setMinimumValue(0.0f);
slider->setMaximumValue(11.0f);
slider->setScale(0.6f);
slider->setPosition(Vec2(screenSize.width * 3 / 4.0f, screenSize.height / 3.0f));
slider->addTargetWithActionForControlEvents(this, cccontrol_selector(ShaderBlur::onSampleNumChanged), Control::EventType::VALUE_CHANGED);
slider->setValue(7.0f);
addChild(slider);
_sliderNumCtrl = slider;
auto label = Label::createWithTTF("Blur Sample Num", "fonts/arial.ttf", 12.0f);
addChild(label);
label->setPosition(Vec2(screenSize.width * 3 / 4.0f, screenSize.height / 3.0f - 24.0f));
}
} }
@ -575,9 +563,7 @@ bool ShaderBlur::init()
if( ShaderTestDemo::init() ) if( ShaderTestDemo::init() )
{ {
_blurSprite = SpriteBlur::create("Images/grossini.png"); _blurSprite = SpriteBlur::create("Images/grossini.png");
auto sprite = Sprite::create("Images/grossini.png"); auto sprite = Sprite::create("Images/grossini.png");
auto s = Director::getInstance()->getWinSize(); auto s = Director::getInstance()->getWinSize();
_blurSprite->setPosition(Vec2(s.width/3, s.height/2)); _blurSprite->setPosition(Vec2(s.width/3, s.height/2));
sprite->setPosition(Vec2(2*s.width/3, s.height/2)); sprite->setPosition(Vec2(2*s.width/3, s.height/2));
@ -585,19 +571,24 @@ bool ShaderBlur::init()
addChild(_blurSprite); addChild(_blurSprite);
addChild(sprite); addChild(sprite);
_sliderCtl = createSliderCtl(); createSliderCtls();
addChild(_sliderCtl);
return true; return true;
} }
return false; return false;
} }
void ShaderBlur::sliderAction(Ref* sender, Control::EventType controlEvent) void ShaderBlur::onRadiusChanged(Ref* sender, Control::EventType)
{ {
ControlSlider* slider = (ControlSlider*)sender; ControlSlider* slider = (ControlSlider*)sender;
_blurSprite->setBlurSize(slider->getValue()); _blurSprite->setBlurRadius(slider->getValue());
}
void ShaderBlur::onSampleNumChanged(Ref* sender, Control::EventType)
{
ControlSlider* slider = (ControlSlider*)sender;
_blurSprite->setBlurSampleNum(slider->getValue());
} }
// ShaderRetroEffect // ShaderRetroEffect

View File

@ -92,11 +92,14 @@ public:
virtual std::string title() const override; virtual std::string title() const override;
virtual std::string subtitle() const override; virtual std::string subtitle() const override;
virtual bool init(); virtual bool init();
ControlSlider* createSliderCtl(); void createSliderCtls();
void sliderAction(Ref* sender, Control::EventType controlEvent); void onRadiusChanged(Ref* sender, Control::EventType controlEvent);
void onSampleNumChanged(Ref* sender, Control::EventType controlEvent);
protected: protected:
SpriteBlur* _blurSprite; SpriteBlur* _blurSprite;
ControlSlider* _sliderCtl; ControlSlider* _sliderRadiusCtl;
ControlSlider* _sliderNumCtrl;
}; };
class ShaderRetroEffect : public ShaderTestDemo class ShaderRetroEffect : public ShaderTestDemo

View File

@ -249,80 +249,42 @@ class EffectBlur : public Effect
{ {
public: public:
CREATE_FUNC(EffectBlur); CREATE_FUNC(EffectBlur);
virtual void setTarget(EffectSprite *sprite) override; virtual void setTarget(EffectSprite *sprite) override;
void setBlurRadius(float radius);
void setGaussian(float value); void setBlurSampleNum(float num);
void setCustomUniforms();
void setBlurSize(float f);
protected: protected:
bool init(float blurSize=3.0); bool init(float blurRadius = 10.0f, float sampleNum = 5.0f);
int _blurRadius; float _blurRadius;
Vec2 _pixelSize; float _blurSampleNum;
int _samplingRadius;
float _scale;
float _cons;
float _weightSum;
}; };
void EffectBlur::setTarget(EffectSprite *sprite) void EffectBlur::setTarget(EffectSprite *sprite)
{ {
Size s = sprite->getTexture()->getContentSizeInPixels(); Size size = sprite->getTexture()->getContentSizeInPixels();
_pixelSize = Vec2(1/s.width, 1/s.height); _glprogramstate->setUniformVec2("resolution", size);
_glprogramstate->setUniformVec2("onePixelSize", _pixelSize); _glprogramstate->setUniformFloat("blurRadius", _blurRadius);
_glprogramstate->setUniformFloat("sampleNum", _blurSampleNum);
} }
bool EffectBlur::init(float blurSize) bool EffectBlur::init(float blurRadius, float sampleNum)
{ {
initGLProgramState("Shaders/example_Blur.fsh"); initGLProgramState("Shaders/example_Blur.fsh");
auto s = Size(100,100); _blurRadius = blurRadius;
_blurSampleNum = sampleNum;
_blurRadius = 0;
_pixelSize = Vec2(1/s.width, 1/s.height);
_samplingRadius = 0;
setBlurSize(blurSize);
_glprogramstate->setUniformVec2("onePixelSize", _pixelSize);
_glprogramstate->setUniformVec4("gaussianCoefficient", Vec4(_samplingRadius, _scale, _cons, _weightSum));
return true; return true;
} }
void EffectBlur::setBlurSize(float f) void EffectBlur::setBlurRadius(float radius)
{ {
if(_blurRadius == (int)f) _blurRadius = radius;
return; }
_blurRadius = (int)f;
_samplingRadius = _blurRadius; void EffectBlur::setBlurSampleNum(float num)
if (_samplingRadius > 10)
{ {
_samplingRadius = 10; _blurSampleNum = num;
}
if (_blurRadius > 0)
{
float sigma = _blurRadius / 2.0f;
_scale = -0.5f / (sigma * sigma);
_cons = -1.0f * _scale / 3.141592f;
_weightSum = -_cons;
float weight;
int squareX;
for(int dx = 0; dx <= _samplingRadius; ++dx)
{
squareX = dx * dx;
weight = _cons * exp(squareX * _scale);
_weightSum += 2.0 * weight;
for (int dy = 1; dy <= _samplingRadius; ++dy)
{
weight = _cons * exp((squareX + dy * dy) * _scale);
_weightSum += 4.0 * weight;
}
}
}
} }
// Outline // Outline

View File

@ -1,5 +1,3 @@
// Shader taken from: http://webglsamples.googlecode.com/hg/electricflower/electricflower.html
#ifdef GL_ES #ifdef GL_ES
precision mediump float; precision mediump float;
#endif #endif
@ -7,50 +5,42 @@ precision mediump float;
varying vec4 v_fragmentColor; varying vec4 v_fragmentColor;
varying vec2 v_texCoord; varying vec2 v_texCoord;
uniform vec4 gaussianCoefficient; uniform vec2 resolution;
uniform vec2 onePixelSize; uniform float blurRadius;
uniform float sampleNum;
void main() { vec3 blur(vec2);
if(gaussianCoefficient.x > 0.0) {
vec4 sum = vec4(0.0);
vec2 offset;
float weight;
float squareX;
for(float dx = 0.0; dx <= gaussianCoefficient.x; dx += 1.0) { void main(void)
squareX = dx * dx; {
weight = gaussianCoefficient.z * exp(squareX * gaussianCoefficient.y); vec3 col = blur(v_texCoord);
gl_FragColor = vec4(col, 1.0) * v_fragmentColor;
offset.x = -dx * onePixelSize.x;
offset.y = 0.0;
sum += texture2D(CC_Texture0, v_texCoord + offset) * weight;
offset.x = dx * onePixelSize.x;
sum += texture2D(CC_Texture0, v_texCoord + offset) * weight;
for(float dy = 1.0; dy <= gaussianCoefficient.x; dy += 1.0) {
weight = gaussianCoefficient.z * exp((squareX + dy * dy) * gaussianCoefficient.y);
offset.x = -dx * onePixelSize.x;
offset.y = -dy * onePixelSize.y;
sum += texture2D(CC_Texture0, v_texCoord + offset) * weight;
offset.y = dy * onePixelSize.y;
sum += texture2D(CC_Texture0, v_texCoord + offset) * weight;
offset.x = dx * onePixelSize.x;
sum += texture2D(CC_Texture0, v_texCoord + offset) * weight;
offset.y = -dy * onePixelSize.y;
sum += texture2D(CC_Texture0, v_texCoord + offset) * weight;
} }
}
sum -= texture2D(CC_Texture0, v_texCoord) * gaussianCoefficient.z; vec3 blur(vec2 p)
sum /= gaussianCoefficient.w; {
gl_FragColor = sum * v_fragmentColor; if (blurRadius > 0.0 && sampleNum > 1.0)
} {
else { vec3 col = vec3(0);
gl_FragColor = texture2D(CC_Texture0, v_texCoord) * v_fragmentColor; vec2 unit = 1.0 / resolution.xy;
float r = blurRadius;
float sampleStep = r / sampleNum;
float count = 0.0;
for(float x = -r; x < r; x += sampleStep)
{
for(float y = -r; y < r; y += sampleStep)
{
float weight = (r - abs(x)) * (r - abs(y));
col += texture2D(CC_Texture0, p + vec2(x * unit.x, y * unit.y)).rgb * weight;
count += weight;
} }
} }
return col / count;
}
return texture2D(CC_Texture0, p).rgb;
}

@ -1 +1 @@
Subproject commit 498f24c1683e4725ecaad6168a1aab21b283b8d5 Subproject commit f5037bab73a8fb109e8e34656220bed1a1743087

View File

@ -79,7 +79,7 @@ def main():
print 'pull request #' + str(pr_num) + ' is '+action+', no build triggered' print 'pull request #' + str(pr_num) + ' is '+action+', no build triggered'
return(0) return(0)
data = {"state":"pending", "target_url":target_url} data = {"state":"pending", "target_url":target_url, "context":"Jenkins CI", "description":"Wait available build machine..."}
access_token = os.environ['GITHUB_ACCESS_TOKEN'] access_token = os.environ['GITHUB_ACCESS_TOKEN']
Headers = {"Authorization":"token " + access_token} Headers = {"Authorization":"token " + access_token}

View File

@ -90,7 +90,7 @@ def main():
print 'skip build for pull request #' + str(pr_num) print 'skip build for pull request #' + str(pr_num)
return(0) return(0)
data = {"state":"pending", "target_url":target_url} data = {"state":"pending", "target_url":target_url, "context":"Jenkins CI", "description":"Waiting available build machine..."}
access_token = os.environ['GITHUB_ACCESS_TOKEN'] access_token = os.environ['GITHUB_ACCESS_TOKEN']
Headers = {"Authorization":"token " + access_token} Headers = {"Authorization":"token " + access_token}

View File

@ -18,7 +18,7 @@ statuses_url = payload['statuses_url']
J = Jenkins(os.environ['JENKINS_URL']) J = Jenkins(os.environ['JENKINS_URL'])
target_url = os.environ['BUILD_URL'] target_url = os.environ['BUILD_URL']
build_number = int(os.environ['BUILD_NUMBER']) build_number = int(os.environ['BUILD_NUMBER'])
data = {"state":"pending", "target_url":target_url} data = {"state":"pending", "target_url":target_url, "context":"Jenkins CI", "description":"Build finished!"}
access_token = os.environ['GITHUB_ACCESS_TOKEN'] access_token = os.environ['GITHUB_ACCESS_TOKEN']
Headers = {"Authorization":"token " + access_token} Headers = {"Authorization":"token " + access_token}
@ -26,9 +26,10 @@ result = J[os.environ['JOB_NAME']].get_build(build_number).get_status()
if(result == STATUS_SUCCESS): if(result == STATUS_SUCCESS):
data['state'] = "success" data['state'] = "success"
data['description'] = "Build successfully!"
else: else:
data['state'] = "failure" data['state'] = "failure"
data['description'] = "Build failed!"
http_proxy = '' http_proxy = ''
if(os.environ.has_key('HTTP_PROXY')): if(os.environ.has_key('HTTP_PROXY')):
http_proxy = os.environ['HTTP_PROXY'] http_proxy = os.environ['HTTP_PROXY']

View File

@ -104,7 +104,7 @@ def main():
set_description(pr_desc, target_url) set_description(pr_desc, target_url)
data = {"state":"pending", "target_url":target_url} data = {"state":"pending", "target_url":target_url, "context":"Jenkins CI", "description":"Build started..."}
access_token = os.environ['GITHUB_ACCESS_TOKEN'] access_token = os.environ['GITHUB_ACCESS_TOKEN']
Headers = {"Authorization":"token " + access_token} Headers = {"Authorization":"token " + access_token}