TIL/DOCKER

Jenkins #3 Github Repo 와 Jenkins 연동하기 - 성공 버전

아람2 2025. 7. 18. 16:07
반응형

계속 이어서 진행한다 

https://helloahram.tistory.com/246

 

Jenkins #1 로컬 Docker 환경에서 Freestyle Job 실행해보기

정글에서는 AWS Credit 을 받아 AWS 환경을 구성하고 Jenkins 도 설치했지만 여기서는 Local 환경에 Docker 를 이용하여 Jenkins 를 구성해보려고 한다 정글에서 진행한 CI/CD via Jenkins + Docker https://helloahram.tis

helloahram.tistory.com

https://helloahram.tistory.com/247

 

Jenkins #2 Github Repo 와 Jenkins 연동하기 - 실패 버전

https://helloahram.tistory.com/246 여기서 이어서 진행 중 - Jenkins #1 로컬 Docker 환경에서 Freestyle Job 실행해보기정글에서는 AWS Credit 을 받아 AWS 환경을 구성하고 Jenkins 도 설치했지만 여기서는 Local 환경에

helloahram.tistory.com

 

Playwright install-deps 설치

Jenkins Docker 컨테이너에 접속해서 Python 가상 환경을 활성화하고 

Playwright install-deps 를 설치했다 

docker exec -it jenkins-lts bash
source /var/jenkins_home/workspace/Sample_Automation/venv/bin/activate
playwright install-deps

마지막에 debconf 이 Unable 어쩌구저쩌구하는데, debconf 라는 패키지 설정 도구가 UI Dialog 를 띄우지 못 한다는 뜻이다

지금은 CLI 환경이라 UI 를 띄울 수 없어 자동으로 Readline 방식으로 대체하겠다는 안내이니 신경 쓸 필요 없다 

Playwright install 

playwright install 도 진행한다 

install-deps 는 OS 수준의 라이브러리 (LibGTK, libx11 등) 를 설치하는 명령어이고,

그냥 install 은 Chromium, Firefox, Webkit 같은 Playwright 전용 브라우저를 설치하는 명령어이다 

playwright install

그리고 Requirements.txt 도 만들라고 해서, 작업 공간 안에 echo 로 만들어줬다 

cd /var/jenkins_home/workspace/[PROJECT_NAME]
echo "robotframework" > requirements.txt
echo "playwright" >> requirements.txt
echo "robotframework-playwright" >> requirements.txt

 

Job Build #3 

Robot Framework 의 Playwright Library 는

Python 의 asyncio 이벤트 루프 기반인 Async 방식으로 동작한다고 한다 

그런데 내가 작성한 코드는 sync_playwright() 를 사용한 Sync 방식이기 때문에 

이미 실행 중인 Robot Framework 의 비동기 환경 안에서 동기 코드를 실행하려고 하다 보니

이벤트 루프 충돌이 발생했고, 그래서 Build Fail 이 발생하는 것,...!

 

그래서 코드를 비동기 방식으로 다 뜯어 고쳤다^_^ㅎ,...ㅎ

 

Job Build #4 

꺄 드디어 성공했다!!!!

 

Jenkins 에 Build 하려면 Async 를 사용해야 하는군 

앞으로 코드 작성할 때 유의해야겠다 

 


 

정리하자면

1. Local Jenkins 설치 

docker run -d --name jenkins-lts \
  -p 9090:8080 -p 50000:50000 \
  -v jenkins_home:/var/jenkins_home \
  jenkins/jenkins:lts

 

2. Playwright 및 Python 설치 

# Docker 컨테이너에 Playwright 설치 
docker exec -it -u root jenkins-lts bash
apt update && apt install -y python3 python3-pip python3-venv

# 가상환경에 Playwright 의존성 및 브라우저 설치 
source /var/jenkins_home/workspace/<PROJECT_NAME>/venv/bin/activate
playwright install-deps
playwright install

 

3. Jenkins 에 Robot Framework 를 Build 하려면 Async 방식으로 코드 작성하기

 

 

암튼 끝!

 

반응형