나의 잡다한 노트 및 메모
Jenkins의 Scripted Pipeline에선 Groovy만 되는건가요? 본문
Jenkins의 Scripted Pipeline은 Groovy 언어를 기반으로 작성됩니다. Scripted Pipeline은 Jenkins Pipeline의 저수준 구문으로, Jenkins가 Groovy를 사용하여 동작하기 때문에 Scripted Pipeline은 Groovy로 작성해야 합니다.
왜 Groovy만 사용 가능한가?
- Jenkins의 내부 구현이 Groovy 기반
- Jenkins는 내부적으로 Groovy를 기반으로 동작하며, Scripted Pipeline은 이를 직접 활용하는 방식입니다.
- 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 |