목록Architecture/CICD (4)
ecsimsw
디렉토리 구조 자동 파일 저장프로젝트 코드 디렉토리 구조 파일 저장을 자동화하거나, 특정 디렉토리 파일 내용을 매번 업데이트 해야할 때가 많다. 이를 Github actions를 이용하여 자동화한다. 사용할만한 경우가 많고, Github actions를 처음 공부하기에 좋은 예시가 될 것 같아 공유한다. 코드name: directory liston: push: branches: - mainjobs: update: runs-on: ubuntu-latest permissions: write-all steps: - name: Checkout code uses: actions/checkout@v2 - name: Append directory tr..
요구 사항 : trigger filtering by tag name 회사에서 젠킨스 Trigger를 사용해서 레포지토리에서 발생하는 web hook을 받아 빌드를 자동으로 할 수 있도록 하는 작업을 맡게 되었다. 문제는 한 레포지토리 안에서, branch나 comment가 아닌, tag 이름으로 구분되는 Job이었다. - 한 코드 저장소 안에서 tag로 구분된 여러 JOB이 있었다. - 태그가 생성되는 이벤트를 받아 이 여러 JOB 빌드를 실행시켜야 하는데, JOB에 해당하는 tag가 아닐 경우 빌드를 실행시키지 않는 필터링이 추가되어야 한다. Webhook request 안의 정보를 이용해서 깔끔하게 필터링 할 수 있는 방법을 고민했고, 괜찮은 플러그인을 찾아 소개하게 되었다. 1. Generic We..
배경 이번 프로젝트의 경우에는 jdk8이 문제가 없던 상황에서 잘 쓰다가 jdk11이 필요한 상황이었다. 예를 들면 rabbitMQ나 sonarqube를 사용하는데 11 이상이 필요한 것을 확인했다. dev 서버, prod 서버, 프론트 서버, 딥러닝 학습 서버,,, 이번 프로젝트 안에서 기존에 젠킨스 설정을 잡아둔게 너무 많아 새로 젠킨스를 설치할 수는 없었고, 결국 버전을 바꾸기로 했다. 그 과정이 명확하게 설명이 된 블로그가 없길래 한번 정리해본다. default version : 8 도커를 이용해서 젠킨스 설치 시 기본으로 설치되는 jdk 버전은 8이다. 젠킨스 서버 내부에서 jdk 를 설치하고, 버전을 지정할 수 있는데 무료는 젠킨스9 까지이다. 그런데 젠킨스에서 설치 지원을 안한다는거지 젠킨스..
젠킨스 삽질 과정에서 배운 것들 Jenkins를 설정하면서 다음을 배웠다. 1. 리눅스 가상 메모리 설정 (스왑 파일 생성) aws 프리티어 인스턴스가 지나치게 느려 메모리 문제임을 확인하고 가상 메모리를 설정하였다. 코틀린 빌드 시간이 말도 안되게 느렸고, 가상 메모리로 해당 문제를 해결할 수 있었다. (결국 용량 문제로 Medium으로 갈아탔다.. ) 스왑 파일을 사용하여 Amazon EC2 인스턴스의 스왑 공간으로 메모리 할당 1. dd 명령을 사용하여 루트 파일 시스템에 스왑 파일을 생성합니다. 명령에서 bs는 블록 크기이고 count는 블록 수입니다. 스왑 파일의 크기는 dd 명령의 블록 크기 옵션에 블록 수 옵션을 곱 aws.amazon.com 2. 리눅스 포트포워딩 (iptables) 젠킨스..