Jenkins로 AWS Lambda 함수의 CI/CD 파이프라인을 구축하기

Developer Ant·2023년 2월 21일
1

현재 node.js를 serverless로 구성하는 환경이고 빌드와 배포는 serverless 명령어로 실행이 되는 상태입니다.

이를 jenkins로 git에 push될때마다 jenkins에서 git clone후 npm install을 진행하고 serverless deploy 하는 과정을 pipeline으로 구성해볼 계획입니다.

project의 root directory에 Jenkinsfile이라는 이름으로 아래와 같이 만듭니다.

pipeline {
    parameters {
        string(name: 'STAGES', defaultValue: 'dev', description: 'Comma-separated list of stages to deploy')
    }
    agent any
    tools {
        nodejs "node-18.14.1"
    }
    stages {
        stage('Build') {
            steps {
                sh 'npm install'
            }
        }
        stage('Deploy') {
            steps {
                script {
                    for (stage in params.STAGES.split(',')) {
                        sh "serverless deploy -s ${stage}"
                    }
                }
            }
        }
    }
}

pipeline : 파이프라인을 정의하는 블록으로, 파이프라인의 전체 구조를 정의합니다.
parameters : 파라미터를 정의하는 블록으로, STAGES라는 이름의 파라미터를 정의합니다. defaultValue는 기본값을, description은 파라미터에 대한 설명을 제공합니다.
agent : 빌드 에이전트를 지정하는 블록으로, any를 사용하여 모든 에이전트에서 실행 가능하도록 합니다.
tools : 도구를 지정하는 블록으로, nodejs를 사용하여 Node.js 버전 18.14.1을 사용할 것을 지정합니다.
stages : 파이프라인의 단계를 정의하는 블록으로, Build와 Deploy 두 단계를 정의합니다.
steps : 각 단계에서 실행할 명령어를 정의하는 블록입니다. Build 단계에서는 npm install을 실행하고, Deploy 단계에서는 script 블록을 사용하여 STAGES 파라미터에서 지정한 모든 스테이지에 대해 serverless deploy 명령어를 실행합니다.

이제 Jenkins에서 작업을 만들어보겠습니다.


위와 같이 test라는 이름으로 Pipeline을 선택하여 작업을 만듭니다.


위와 같이 build when a change is pushed to bitbucket을 선택합니다. (저는 bitbucket을 사용합니다. 따로 설치하지 않았다면 github이 뜰거에요.)
그리고 URL에 git clone 뒤에 해당하는 url을 적어넣습니다.

이 옵션을 선택하면 push가 일어날때마다 빌드를 하겠다는 의미입니다.


위의 노란색 부분을 따라 선택하시고 채워넣으시면 됩니다.

SCM탭에는 Git과 Mercurial이 있는데, 대부분 Git으로 하시면 될겁니다.

Git : 분산 버전 관리 시스템으로, Linux 커널 개발자인 리누스 토발즈가 개발한 오픈 소스 소프트웨어입니다. Git은 브랜치와 머지 등의 기능을 강력하게 지원하며, GitHub과 같은 인기 있는 웹 호스팅 서비스와 함께 사용되어 널리 사용되고 있습니다.
Mercurial : 또 다른 분산 버전 관리 시스템으로, Git과 비슷한 기능을 제공합니다. Mercurial은 Git보다 조금 더 직관적인 명령어를 사용하며, 맥OS나 Windows와 같은 다양한 플랫폼에서 더 잘 작동할 수 있는 장점이 있습니다.

그 외, Branches to build는 어떤 브랜치를 빌드할 것인지를 선택하는 부분입니다. 원하는 브랜치를 적어주시면 됩니다.

다 저장하시고 파라미터와 함께 빌드하기를 선택하면 STAGES 매개변수에 dev가 맞는지 확인하는 화면이 뜹니다.

위와 같이 나올 겁니다. default가 dev로 되어있기때문에 dev가 나올 것이고 빌드하기를 선택하면!

위와 같이 CI/CD가 잘 동작함을 볼 수 있습니다.

앞으로 git repository에 push가 일어날때마다 자동으로 배포가 이뤄질거에요!

profile
develop for me

0개의 댓글