Google Assistant에게 말하기만 하면 Jenkins에서 빌드

할 일



Google Home이나 Android 스마트폰등의 Google Assistant 탑재 디바이스에 「빌드 해」라고 말을 걸기만 하면, Jenkins로 빌드합니다. 각 서비스 간의 연계는 IFTTT을 이용합니다.

전제


  • Jenkins 실행 환경이 있어야합니다
  • Google Home 및 Android 스마트 폰과 같은 Google Assistant 기기가 있어야합니다

  • 구성 1. IFTTT Webhook에서 직접 Jenkins 빌드



    구성으로는 다음과 같습니다. IFTTT Webhook에 Jenkins 빌드 요청을 직접 지정합니다.



    다음은 IFTTT 설정입니다. 왼쪽은 Google Assistant이고 오른쪽은 Webhooks입니다.



    위 설정에 따라 Google Home 및 Android 스마트 폰과 같은 Google Assistant 기기에
    "빌드하고"라고 말하면 (왼쪽 설정),
    http://user:API 토큰@35.184.206.154//jenkins/job/test_build/build?token=testtoken 에 액세스하여(오른쪽 설정) 빌드가 시작됩니다.

    구성 2. IFTTT Webhook → FaaS → Jenkins 빌드



    구성으로는 다음과 같습니다. IFTTT 웹훅에 AWS Lambda 또는 GCP Cloud Functions와 같은 FaaS을 지정하고 거기에서 Jenkins에 빌드 요청을 보냅니다. 여기에서는, 「Google Cloud Functions에서 Slack에 알림 보내기 」로 사용한 Function을 이용해 실시했습니다. 이 구성으로 콜백 처리를 지정할 수도 있습니다.



    IFTTT 설정은 "구성 1"과 동일합니다. 그러나 Webhook 측은 FaaS URL을 지정합니다.
    Cloud Functions 측의 소스는 다음과 같은 느낌입니다.

    index.js
    const request = require('request');
    
    exports.build= function build(req, res) {
    
        var headers = {
            'Content-Type':'text/plain'
        }
    
        var options = {
            url: 'http://user:APIトークン@35.184.206.154/jenkins/job/test_build/build?token=testtoken',
            method: 'GET',
            headers: headers
        }
    
        request(options, function (error, response, body) {
          // コールバック処理
        })
    
        res.status(200).send('Success');
    };
    

    package.json
    {
        "name": "sample-http",
        "version": "0.0.1",
        "dependencies": {
            "request": "^2.81.0"
        }
    }
    

    이상입니다.
    실무로 이용할 수 있을지 어떨지를 제외하고, 무언가의 참고가 되면 좋겠습니다.

    참고



    Jenkins 빌드 작업의 원격 실행에 대해서는 다음을 참고했습니다.
    h tps : // 토모 카즈 코즈마. 코 m / 호 w-- 에우 쿠테 - ㅇ ㅇ 킨 s - 쵸- 레테 ly /
    htp://sym 포 균열. bぉg68. FC2. 소 m/bぉg-엔try-1902. html

    좋은 웹페이지 즐겨찾기