๋ฐฐ์น˜๋ฅผ ์ˆ˜๋™์œผ๋กœ ๋Œ๋ ค์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค๋ฉด, DBMS์— ์ƒˆ ๋ฒ„์ „์ด ๋‚˜์™”์„ ๋•Œ ๋ฐ”๋กœ ๋ฐฐ์น˜๋ฅผ ๋Œ๋ ค์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ๋  ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ! 

 

์›น์— [์ˆ˜๋™ ๋ฐฐ์น˜] ๊ฐ™์€ ๋ฒ„ํŠผ์„ ๋งŒ๋“ค์–ด ๋†“๊ณ  ๋ˆ„๋ฅด๋ฉด ์  ํ‚จ์Šค์—์„œ ๋ฐฐ์น˜๊ฐ€ ๋Œ๊ฒŒ ํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ

์  ํ‚จ์Šค์—์„œ ์ œ๊ณตํ•˜๋Š” ์›๊ฒฉ์œผ๋กœ ๋นŒ๋“œ ์œ ๋ฐœ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

 

๊ทธ๋Ÿฌ๋ฉด ์  ํ‚จ์Šค์— ์„ค์ •ํ•ด ๋†“์€ ์žฌ์‹œ๋„ ํšŸ์ˆ˜, ๋‘๋ ˆ์ด ๋ฉ”์‹ ์ € ์•Œ๋ฆผ ๊ธฐ๋Šฅ, ๋กœ๊ทธ ํ™•์ธ ๊ธฐ๋Šฅ์„ ๋ชจ๋‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

์•„๋ž˜ ๋ฐฉ๋ฒ•์„ ๋”ฐ๋ผ์„œ ์›๊ฒฉ์œผ๋กœ ๋นŒ๋“œ๋ฅผ ์œ ๋ฐœํ•ด๋ณด์ž!

 


1. ํ† ํฐ ๋ฐœ๊ธ‰

  • Dashboard > ์‚ฌ๋žŒ

 

  • admin์ด๋ž€ ์ด๋ฆ„์œผ๋กœ ์‚ฌ์šฉ์ž๋ฅผ ๋“ฑ๋กํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— admin ํด๋ฆญ!

 

  • ์„ค์ •์œผ๋กœ ๋“ค์–ด๊ฐ€์„œ API Token ๋ฐœ๊ธ‰

๋‹ค์‹œ ๋“ค์–ด๊ฐ€๋ฉด ๊ฐ’์ด ์‚ฌ๋ผ์ ธ ์žˆ์œผ๋‹ˆ ์ž˜ ๋ณต์‚ฌํ•ด๋‘์ž!

 

2. Job ์„ค์ •

  • ์›๊ฒฉ์œผ๋กœ ๋นŒ๋“œ ์œ ๋ฐœ ์ฒดํฌ ๋ฐ ํ† ํฐ ์ด๋ฆ„ ์„ค์ •

ํ† ํฐ ์ด๋ฆ„์€ ๋‚˜์ค‘์— ํ˜ธ์ถœํ•  ๋•Œ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋„์–ด์“ฐ๊ธฐ ์—†์ด ์งง๊ฒŒ ์ ์–ด์ฃผ๋ฉด ๋œ๋‹ค.

 

3. ์›๊ฒฉ์œผ๋กœ ๋นŒ๋“œ

1) Job Build

  • Parameter๊ฐ€ ์—†๋Š” build
curl -i -X POST 'http://<jenkins_username>:<jenkins_api_token>@<jenkins_url>/job/<job_name>/build?token= <token_name>'

 

๊ฐ’์„ ์ฑ„์›Œ๋„ฃ๊ณ  ํ„ฐ๋ฏธ๋„์—์„œ ์‹คํ–‰ํ•ด๋ณด๋ฉด ์  ํ‚จ์Šค job์ด ์ž˜ ์‹คํ–‰๋œ๋‹ค!

 

ํŒŒ์ด์ฌ์—์„œ ๊ตฌํ˜„ํ•˜๊ณ ์ž ํ•˜๋ฉด

@api_view(['POST'])
def trigger_build(request):
    # ์  ํ‚จ์Šค ๋นŒ๋“œ ์ฃผ์†Œ - ํŒŒ๋ผ๋ฏธํ„ฐ : ํ† ํฐ
    jenkins_url = f"http://{jenkins_username}:{jenkins_password}@{jenkins_server}/job/{jenkins_job_name}/build?token={jenkins_token}"

    try:
        response = requests.post(jenkins_url)  # ์  ํ‚จ์Šค ๋นŒ๋“œ ์ฃผ์†Œ๋กœ post ์š”์ฒญ ๋ณด๋‚ด๊ธฐ

        if response.status_code == 201:  # ์š”์ฒญ ์„ฑ๊ณต
            print("[Success] Jenkins trigger builds remotely!")
            return HttpResponse("Jenkins build triggered successfully!", status=201)
        else:  # ์š”์ฒญ ์‹คํŒจ
            print("[Fail] Failed to trigger builds remotely. Status code:", response.status_code)
            return HttpResponse("Failed to trigger Jenkins build. Status code: " + str(response.status_code), status=500)

    except Exception as e:  # ์˜ˆ์™ธ ๋ฐœ์ƒ
        print("[Fail] Failed to trigger builds remotely. Exception:", e)
        return HttpResponse("Failed to trigger Jenkins build. Exception: " + str(e), status=500)

 

  • Build with Parameter
curl -X POST 'http://[IP]:[PORT]/job/[JOB_NAME]/build buildWithParameters --data [PARAM1]=[VALUE1] --data [PARAM2]=[VALUE2] --user [USER_NAME]:[USER_API_TOKEN]'

 

@api_view(['GET'])
def trigger_build_with_parameters(request):
    try:
        # ์  ํ‚จ์Šค ๋นŒ๋“œ ์ฃผ์†Œ - ํŒŒ๋ผ๋ฏธํ„ฐ : ํ† ํฐ, ํŒŒ๋ผ๋ฏธํ„ฐ
        jenkins_url = f"http://{jenkins_username}:{jenkins_password}@{jenkins_server}/job/{jenkins_job_name}/buildWithParameters?token={jenkins_token}&params={params}"
        response = requests.post(jenkins_url)  # ์  ํ‚จ์Šค ๋นŒ๋“œ ์ฃผ์†Œ๋กœ post ์š”์ฒญ ๋ณด๋‚ด๊ธฐ

        if response.status_code == 201:  # ์š”์ฒญ ์„ฑ๊ณต
            print("[Success] Jenkins trigger builds remotely!")
            return HttpResponse("Jenkins build triggered successfully!", status=201)
        else:  # ์š”์ฒญ ์‹คํŒจ
            print("[Fail] Failed to trigger builds remotely. Status code:", response.status_code)
            return HttpResponse("Failed to trigger Jenkins build. Status code: " + str(response.status_code), status=500)

    except Exception as e:  # ์˜ˆ์™ธ ๋ฐœ์ƒ
        print("[Fail] Failed to trigger builds remotely. Exception:", e)
        return HttpResponse("Failed to trigger Jenkins build. Exception: " + str(e), status=500)

 

2) Job Build ์กฐํšŒ

curl -X GET 'http://[IP]:[PORT]/job/[JOB_NAME]/api/json --user [USER_NAME]:[USER_API_TOKEN]'

 

3) Job Build ๊ฒฐ๊ณผ ์กฐํšŒ

 curl -X GET 'http://[IP]:[PORT]/job/[JOB_NAME]/[BUILD_NUM]/api/json --user [USER_NAME]:[USER_API_TOKEN]'

 

๋นŒ๋“œ ๋„˜๋ฒ„๋ฅผ ํ™•์ธํ•˜๊ธฐ ์–ด๋ ค์šธ ๊ฒฝ์šฐ

BUILD_NUM ๋Œ€์‹  lastStableBuild๋ฅผ ์ž…๋ ฅํ•  ๊ฒฝ์šฐ ๊ฐ€์žฅ ์ตœ์‹ ์˜ ๋นŒ๋“œ ๊ฒฐ๊ณผ๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

๊ฐ ์กฐํšŒ ๊ฒฐ๊ณผ๋Š” json, xml, python ํƒ€์ž…์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

 curl -X GET 'http://[IP]:[PORT]/job/[JOB_NAME]/lastStableBuild/api/json --user [USER_NAME]:[USER_API_TOKEN]'

 

 

 

 

 

 

์ฐธ๊ณ  ์‚ฌ์ดํŠธ

+ Recent posts