railway기본설정은 main에 푸시가 되면 자동으로 cd를 수행하는 역할을 한다
ci과정은 dev브랜치를 main으로 pr날리면 github actions가 ci작업을 수행하고, 테스트가 성공하면 merge가 되기 때문에 railway의 자동 배포가 수행되는것. 하지만 테스트가 실패하면 배포가 수행되지 않는다
railway는 main에 무사히 merge되었을때만 코드를 자동으로 pull해서 빌드후에 배포를 수행하는것
ci할때는 보통 테스트 수행, lint검사, coverage리포트 생성, 보안검사 등을 하고
cd는 빌드하고 앱 자동으로 실행하는 과정
맞다, Docker Hub에 이미지를 푸시(push)하는 작업은 CI가 끝난 후, 즉 모든 테스트를 통과한 다음에 CD(Continuous Deployment, 배포)의 일부로 수행하는 것이 정석이다.
지금은 cd과정은 docker hub에 푸시할수 있지만 굳이 안쓰고.. 빌드도 railway에서 자동수행해주기 때문에
cd과정은 railway에게 전적으로 맡기는거고
ci는 자동으로 테스트 돌린다음에 main으로 merge되는걸로만 하기
railway에도 wait for ci기능이 있음 main에 바로 푸시하더라도 wait for ci켜놓으면 테스트코드 먼저 수행하고 통과하면 cd수행함