미니프로젝트 6일차. 오늘은 AWS 엘라스틱 빈스토크와 깃헙 Actions로 CI/CD를 구현했다. 진행 도중 깃헙 secrets에 저장했던 비밀 변수가 적용이 안되는 에러가 있었다. TIL에는 그걸 정리해보려 한다.
- name: Deploy to EB
uses: einaregilsson/beanstalk-deploy@v20
with:
aws_access_key: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws_secret_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
application_name: project
environment_name: project-env
version_label: github-action-${{steps.current-time.outputs.formattedTime}}
region: ap-northeast-2
deployment_package: deploy/deploy.zip
yml파일은 이렇게 구성했고 몇번 체크했지만 이상이 없었다.
시도 : 여러 방식으로 secrets 저장 방법을 바꿔봤지만 계속 잘 되지 않았다.
해결 :
이번 프로젝트에서는 github 구성을 Organization으로 저장소를 하나 만들고 팀원들이 fork 와서 작업 후 pull request로 반영을 하도록 구성을 했었다.
그런데 secret을 Organization에만 등록을 해두니 pull request로 했을때 fork한 팀원들이 secrets에 접근을 하지 못해 발생한 문제였다.
그래서 포크한 팀원들도 secret을 적용해서 쓰거나 main에서 push할때만 반영하도록 해서 main에서 ci/cd 변경점을 돌리는 방법으로 해결했다.
알게된 점 : fork한 팀원은 organizaion의 secrets에 pull request로 접근하지 못한다.
@Entity에서 String으로 설정하면 DB에는 varchar(255)로 설정된다.
예를들어 게시글의 content를 @Size(min = 10, max = 2000)으로 설정하고 Entity는 String으로 두면 DB에서 저장할수 있는 범위를 초과해서 DB 에러가 발생한다.
그러므로 테이블 세팅시 미리 DB 칼럼의 type을 확인하고 세팅해둬야 한다.
ALTER로 변경하는 쿼리는 여기를 참고