# circleci

10개의 포스트
post-thumbnail

CI/CD 플랫폼과 기본 개념 알아보기

이번 글에서는 CI/CD가 무엇인지, 어떤 DevOps 플랫폼이 있는지, 동작을 이해할 때 도움되는 용어들을 알아보겠습니다. 저도 1년 반 전에만 해도 CI 개념을 잘 몰랐지만 SDK 자동화 도입하면서 CircleCI, Github Action을 다룰 기회가 많았습니다. 개발팀에서 본인이 DevOps 작업을 많이 하지 않더라도 작동 원리를 알아두면 도움이 될 거라 생각합니다. 아무래도 외부 환경에 메세지를 보내거나 빌드하는 과정에서 언젠가 에러가 발생할 수 있습니다. 제 글을 통해 개념을 익혀뒀다가 필요할 때 앞장서서 문제를 해결할 수 있으면 좋겠습니다. CI가 뭐지? - Continuous Inte

2023년 8월 15일
·
2개의 댓글
·

python segmentation fault

celery를 이용하여 주기적인 task를 돌리는 기능을 진행했다. 그런데, circleCI에서 계속해서 migrate하는 부분에서 segmentation fault가 뜨는 것이다. 이 기능을 해결하기 위해 장장 3일이 걸렸는데, 해결하고 나니 너무 허무했다... 깊게 생각해보지 않으려 했던 나 자신을 원망한다. 찾아보니 보통 C로 작성했을 때 보통 아래와 같은 원인으로 난다고 한다. null 값을 가리키는 포인터에 접근할 경우 할당 받은 메모리 공간을 넘은 곳을 건드린 경우 더 이상 존재하지 않는 메모리 영역을 가리킬 경우 read-only 표시 메모리 영역에 쓰려고 할 경우 일반적인 파이썬 프로그램 자체는 C로 작성한 프로그램 처럼 Segmentation Fault 를 발생하며 죽는 경우는 거의 없지만, 아래와 같은 이유로 날 수 있다고 한다. 코드 상의 문제 (도달할 수 없는 메모리에 액세스 하는 코드를 작성했을 때) 호환되지 않는 패키지 간의 충

2022년 10월 31일
·
0개의 댓글
·

git에 push 과정중 circleCI 오류 해결

circleCI 에러.. 이미 push 후 PR까지 한 것에 대해 수정요청이 왔다. "기존 구독신청에서 신문구독으로 텍스트 수정하는 간단작업" ☠️ 이.지.만..! ARC통해 변경 및 Push를 하니 엥?? circleCI 오류랜다. 읽어보니.. 해결1 test 과정에서 'default.test.jsx'에서 'should match snapshot'문제라고 떳고, This is probably not a problem with npm. There is likely additional logging output above. "npm의 문제가 아닙니다. 위에 추가 로깅 출력이 있을 수 있습니다(?)" 이라는 에러 문구가 있었습니다.뭔소릴까. 이에 대한 해결책은 아래 순서로 해결할 수 있었다. > 1. npm cache 삭제 npm cache clean -f node_moudles,package-lock.json삭제 rm -rf

2022년 4월 21일
·
0개의 댓글
·
post-thumbnail

CircleCI와 Docker로 CI/CD 파이프라인 구축하기

CI/CD란? Continuous Integration/Continous Deployment(혹은 Delivery)의 약자로, 지속적인 통합과 지속적인 배포를 의미합니다. Continuous Integration 빌드 및 테스트를 자동화해줍니다 예시) Github에 Push CI 도구( CircleCI, Jenkins, TravisCI 등.. )에서 자동으로 빌드 및 테스트 실행 실패 혹은 성공의 결과를 알려줌 Continuous Deployment(Delivery) 배포를 자동화의 개념 예시) CI 도구를 통해 자동으로 빌드 및 테스트가 성공적으로 끝났으면 CD 시작 CD는 2가지의 예시를 생각 할 수 있음 production 서버에서 원래 동작하던 애플리케이션을 중단시키고, 바로 새로운 애플리케이션 시작 production 서버에서 새로운 애플리케이션을 다른 포트로 실행하고, reverse proxy 시켜줌

2021년 7월 21일
·
0개의 댓글
·
post-thumbnail

CircleCI와 Slack 연동하기

CircleCI의 빌드 결과에 따라서 Slack에 메세지를 보내도록 설정할 수 있습니다. 과거에는 CircleCI App을 간단하게 추가하여 사용할 수 있었는데, 이제는 방식이 조금 변경되어 직접 CircleCI Orb를 설치 해 사용하여야 합니다. > 🌱 이 포스트는 백지에서부터 Slack 메세지가 전송되기까지의 전 과정을 다룹니다. *CircleCI Orb: CircleCI가 사용하는 패키지 같은 개념으로 받아들이면 좋습니다. 1. Slack Legacy Bot 만들기 우선, CircleCI가 사용할 Slack app을 만들어야 합니다. 슬랙 API 페이지 https://api.slack.com/ 의 New App 버튼을 눌러 새 앱을 생성해 줍니다. ![](https://images.velog.io/images/bluestragglr/post/5cfbee7f-f963-4b5

2021년 3월 28일
·
2개의 댓글
·
post-thumbnail

차근차근 따라하는 CircleCI로 S3 자동배포 구성하기

CircleCI Configuration! 막 붙여서 때우지 말고 알고 씁시다 😎 0. 무엇을 하게 되나요? 자동배포 구성은 크게 두 단계로 진행됩니다. 프로젝트 빌드 업로드 프로젝트 빌드의 경우에는 로컬에서 직접 빌드할때와 거의 같은 방법으로 진행됩니다. 다만, 매번 패키지를 install 해 주는 것이 시간도 오래 걸리고 불필요한 작업이기 때문에 캐시를 이용하는 과정이 추가됩니다. 업로드의 경우, CircleCI Orb를 이용합니다. Orb는 CircleCI의 프로세스 중 자주 사용되는 것을 라이브러리처럼 만들어 둔 것이라고 생각하시면 편합니다. yarn 대신 npm을 사용해도 똑같이 진행할 수 있습니다. 아래에서는 문맥상의 편리함을 위하여 yarn을 사용하는 경우로만 전제하고 진행합니다. 1. 프로젝트 빌드하기 0. node.js를 사용하도록 세팅하기 아시다시피 yarn은 node.js 패키지 매니저입니다. 프로젝트의 정상적

2020년 12월 18일
·
0개의 댓글
·
post-thumbnail

CI/CD w/ CircleCI + Docker Hub + AWS EC2

현재의 개발 후 배포 프로세스에 대해서는 지난 포스팅에 정리를 했다. 어차피 다 스크립트를 손으로 실행시키는 방식인데, 이것들 조금만 엮으면 자동 배포가 가능하겠다 싶었다. 그리고 며칠 뒤 삽질을 거쳐서 ` Github Merge -> CircleCI -> Build and Push Docker Image -> SSH & Trigger Deploy Script on AWS, via CircleCI ` 로 이어지는 자동배포를 완성했다. 사실 Git Merge 이전에 PR 이 생성되어야 하고 PR 생성시 Circle 이 Test 들을 돌려주는 과정이 있어야 하는데 아직 테스트가 없어서 (...) master branch 에 merge 되는 경우 그 이후 과정만 자동화를 했다. 일단 본인은 J

2020년 5월 8일
·
0개의 댓글
·

CircleCI 맛보기

협업 진행시 가장 문제가 되는 부분 중 하나는 한 사람이 개발을 하지 않기 때문에 조각난 파일들을 한 프로젝트에 모아서 매번 확인을 진행해야 하는데 매번 push를 할 때마다 확인을 하는 것은 쉬운 일이 아닙니다. 또 수정 사항을 배포를 위해 매번 서버에 가서 관련 파일들을 새로 내려 받는 일 또한 번거로운 일 입니다. 그래서 '그러한 수고를 자동으로 해결할 수 없을까'라는 고민에서 만들어진 것이 CircleCI와 같은 서비스입니다. Git에 Push를 하면 자동으로 테스트를 진행하여 검사 결과를 알려 주어 문제점에 대해 바로 알림을 보내 줍니다. 그리고 문제가 없다면 서버에 배포까지 자동으로 이루어지기 때문에 협업과 배포의 과정에 대한 수고를 대폭 줄일 수 있습니다. 왜 사용하는가? CircleCI (Continuous integration)는 협업 시 파일의 충돌이나 에러가 날 수 있는 상황에 대하여 Git과 연동하여 Push 진행시 자동으로 빌드(테스트), 배포를

2020년 3월 3일
·
1개의 댓글
·
post-thumbnail

AWS S3, CodeDeploy 연동하기

AWS S3, CodeDeploy 연동하기 EC2가 CodeDeploy를 연동 받을 수 있게 IAM 역할을 생성합니다. 먼저 설정하기 전에 사용자를 추가하는 것과 역할을 만드는 것은 다르다는 것을 이해할 필요가 있습니다. > ### IAM 역할이란 무엇입니까? > > IAM 역할은 신뢰하는 개체에 권한을 부여하는 안전한 방법입니다. 개체의 예는 다음을 포함합니다. > > - 다른 계정의 IAM 사용자 > - AWS 리소스에서 작업을 수행해야 하는 EC2 인스턴스에서 실행 중인 애플리케이션 코드 > - 계정 내 리소스에서 작업을 수행하여 기능을 제공해야 하는 AWS 서비스 > - SAML을 통해 인증 연동을 사용하는 사내 디렉토리의 사용자 > > IAM 역할은 권한을 부여하는 더욱 안전한 방법으로 짧은 기간 동안 유효한 키를 발행합니다. 역할 AWS 서비스에만 할당할 수 있는 권한 EC2, CodeDeploy, SQS 등 사용자 AW

2020년 2월 26일
·
1개의 댓글
·
post-thumbnail

AWS-IAM

AWS-IAM 여기서 배포할 때 CodeDeploy서비스를 이용해 jar파일을 전달하기 위해서 먼저 s3을 ci도구와 연동이 필요합니다. (CodeDeploy는 저장 기능이 없기 때문) > Circle CI가 AWS의 S3와 CodeDeploy에도 접근할 수 있도록 해보겠습니다. S3 일종의 파일 서버 이미지 파일을 비롯한 정적 파일들을 관리하거나 배포 파일들을 관리하는 등의 기능을 지원 CodeDeploy CodeDeploy는 깃허브 코드를 가져오는 기능을 지원하기 때문에 빌드도 하고 배포도 할 수 있지만, 그러면 CodeDeploy가 모든 것을 하게 될 떈 항상 빌드를 하게 되니 확장성이 많이 떨어짐 빌드와 배포가 분리되어 있으면 예전에 빌드되어 만들어진 jar를 재사용하면 되기 때문에 분리하는 것을 추천 > 일반적으로 AWS 서비스에 외부 서비스가 접근할 수 없기 때문에 접근 가능한 권한을 가진 key를 생성해서

2020년 2월 26일
·
0개의 댓글
·