본문 바로가기

CI,CD/Github Actions

(5)
Cache dependency 로 워크플로우 효율적으로 실행하기 굳이 또 해야돼? 로부터 시작했다. 지금까지 깃헙 액션을 하면서 Test와 Build 양쪽 모두에 npm install 작업이 있었고, 해당 작업은 10초가량 걸렸다. 그런데 이 깃허브 액션이 무료 플랜이 있긴 하지만 깃헙이 바보가 아닌이상 프리 플랜이 넘어가면 당연히 돈을 내야된다 특히 기업에서 쓸수록 더 그렇다. 그리고 npm install 같은거 해봐서 알겠지만 기본적으로 라이브러리 하나 설치하는데 수백개의 요소들이 다운받아진다. 어쨋건 이 dependency 관련 작업이 시간도 잡아먹고 리소스도 잡아먹는데 이걸 굳이 두번 세번씩 해야되나? 라고 생각하던 참에 캐싱 기능을 알게 되었다. 거의 모든 깃헙 액션의 작업은 Marketplace에서 가져온 기능이라고 보면 되고, with에 path와 key..
아티팩트(Artifact)와 결과값(Output) 사용해보기 아티팩트의 사전적 정의는 인공 피조물이란 뜻인데... 저 사진의 아티팩트는 던전앤파이터라는 게임에서 나온 장면이다. 본인의 크리처라는 애들을 함께 데리고 다니는데 그냥 쉽게 말해서 애완견 같은 애들이다. 일종의 버프를 주면서 캐릭터를 강화시키는 애들인데... 그런 크리처(Creature 크리처는 자연의 산물이다) 에 아티팩트(인공 피조물)을 주어 인공적으로 강화한다(?) 뭐 이런 뜻인것 같다. 이걸 깃헙 액션에서는 깃헙 액션의 작업을 하면서 만들어진 인공의 결과물 정도로 생각하면 된다. 이걸 업로드 할수도 있고, 다운로드 할 수도 있다. 간단하게 알아보자 문법도 쉽다 upload-artifact를 사용해서 dist에 있는 파일들을 dist-files라는 이름으로 업로드 하는것이다. 그리고 깃헙액션을 실행..
Github Actions - 기본적인 작업구조 이해 SQL과 더불어서 초 간단한 문법(문법이랄것도 없음)과 구성이다 알파벳 읽을줄 알면 될 정도이다. name : 이름이다 on : 이게 좀 중요한데 어떤 작업으로 trigger가 될 건지 명시하는 곳이다. 본문에서는 코드를 github에 push 할때 이 workflow를 수행해 주세요 라고 하는 것이다. jobs: 수행할 일의 이름이다. 그 일을 지금 deploy라고 한 것 뿐이다. 보면 알겠지만, 이른바 하위 개념에서 탭을 눌러서 indent를 유지하는게 중요하다 파이썬 코드나, config 파일 작성할때랑 같은 개념이다. runs on: 깃허브에서 이 워크플로우를 가상 머신에다가 프로비저닝(가동 준비 정도 되겠다) 해서 돌려주는데 어떤거 쓸거냐는 소리다. 보통 그냥 ubuntu-latest(우분투 최..
Github Actions 하기 전 반드시 체크해야하는 두가지! (remote rejected) 별것도 아닌걸로 삽질을 거의 30분이상 했다. 1. 깃허브 Personal access tokens 를 반드시 확인하자 아마 웹개발에 입문한지 얼마 안된 사람들이 주 타겟층이 될텐데... 깃헙 토큰을 발급받을때 사용범위를 'repo'만 설정해놓고 (다른것들은 그냥 신경쓰지 말라는 설명을 했을 수 있다) 'workflow'를 설정을 안해놓으면 위와같은 에러창이 뜬다. 재발급 받은 토큰 화면이다. 이전에는 repo만 가능했다. 2. .github/workflows 에서 s 빼먹으면 깃헙에서 인식을 못한다 정말 황당한 스펠링 실수지만 의외로 이런거 많다(...) 아무리 yml 파일로 workflow를 만들었어도 트리거가 실행되도 아무런 인식이 안되는 사태가 발생한다.
Github actions 의 기초이자 핵심 Workflow, Job, step 단위테스트 공부중 이런 생각을 했다. '이걸 매번 npm run test로 실행시켜야되나?' 그 외에도 팀 플젝을 하다 보면 새로운 브랜치가 생기거나 풀 리퀘스트가 들어와서 합쳐지면 으레 하는 작업들을 자동화할 필요성이 있다. 대표적인 예가 node modules에 있는 의존성 관련 문제다. 매번 새로운 라이브러리 설치하면 팀원들에게 공지하고 npm install 하는게 여간 귀찮은게 아니었다 (이거 안하면 뜬금없이 잘 되던게 오류메시지가 뜨고, 당황한다) 그래서 나온게 CI / CD툴들이고, 그중에서도 제일 친숙한 Github Actions를 공부하기 시작했다. 사실 해보니 생각보다 굉장히 쉬운데, 제일 기초적이지만 꼭 알아야되는 핵심이 바로 이거다. Workflow는 각각의 작업 단위라고 생각하면 된..