내 잡다한 노트

Jenkins의 Scripted Pipeline에선 Groovy만 되는건가요? 본문

DevOps/Jenkins

Jenkins의 Scripted Pipeline에선 Groovy만 되는건가요?

peanutwalnut 2024. 11. 27. 21:23

Jenkins의 Scripted PipelineGroovy 언어를 기반으로 작성됩니다. Scripted Pipeline은 Jenkins Pipeline의 저수준 구문으로, Jenkins가 Groovy를 사용하여 동작하기 때문에 Scripted Pipeline은 Groovy로 작성해야 합니다.

 

왜 Groovy만 사용 가능한가?

  1. Jenkins의 내부 구현이 Groovy 기반
    • Jenkins는 내부적으로 Groovy를 기반으로 동작하며, Scripted Pipeline은 이를 직접 활용하는 방식입니다.
  2. Groovy는 JVM 기반
    • Jenkins는 Java 기반으로 동작하며, Groovy는 JVM(Java Virtual Machine) 위에서 실행되므로 호환성이 뛰어납니다.

 

다른 언어를 사용할 수 없는 이유는?

  • Jenkins는 기본적으로 Groovy를 인터프리터로 사용하므로, 다른 언어를 Scripted Pipeline에서 직접 사용할 수 없습니다.
  • 하지만 Jenkins 파이프라인 내에서 다른 언어로 작성된 스크립트를 호출하는 것은 가능합니다.

 

다른 언어를 활용하려면?

다른 언어를 직접 사용하기는 어렵지만, Jenkins 파이프라인에서 외부 스크립트를 호출하거나 명령어를 실행할 수 있습니다.

(1) Shell Script 사용

  • Groovy 스크립트 안에서 Shell 스크립트를 실행하여 Bash, Python, Node.js 등을 호출할 수 있습니다.

예: Bash 스크립트 호출

node {
    stage('Run Shell Script') {
        sh '''
        echo "Running a bash script"
        ls -al
        '''
    }
}

 

(2) Python Script 호출

  • Python 스크립트를 실행하여 작업을 수행할 수 있습니다.

예: Python 실행

node {
    stage('Run Python Script') {
        sh '''
        python3 -c "print('Hello from Python!')"
        '''
    }
}

 

 

Declarative Pipeline도 Groovy 기반인가요?

  • 네, Declarative Pipeline도 Groovy를 기반으로 합니다.
  • 그러나 Declarative Pipeline은 Groovy의 제한된 하위 집합으로 작성되며, 구조화된 고수준 구문을 사용합니다.

Scripted Pipeline은 Groovy의 모든 기능을 사용할 수 있지만, Declarative Pipeline은 문법이 제한되어 있어 더 간단하고 안정적인 파이프라인을 작성하는 데 적합합니다.

'DevOps > Jenkins' 카테고리의 다른 글

Jenkins의 Organization Folers  (0) 2024.12.16
Declarative pipeline과 Scripted pipeline의 비교  (0) 2024.12.13
Jenkinsfile 이란?  (0) 2024.11.27
Jenkins New item 페이지  (0) 2024.11.24
Jenkins agent  (0) 2024.11.24