src > resources > application.properties
민감한 파일을 application.properties(yml) 파일로 많이 관리한다.

github에 있는 캐싱 때문에 yml 파일이 추적이 되고 있다.
# ignore할 수 있는 cach를 리프레시
git rm -r --cached .
Error
warning: in the working copy of '.java', LF will be replaced by CRLF the next time Git touches it
맥 또는 리눅스를 쓰는 개발자와 윈도우 쓰는 개발자가 Git으로 협업할 때 발생하는 Whitespace 에러라고 한다.
유닉스 시스템에서는 한 줄의 끝이 LF(Line Feed) 로 이루어지는 반면, 윈도우에서는 줄 하나가 CR(Carriage Return) 와 LF(Line Feed) , 즉 CRLF로 이루어지기 때문이다.
따라서 어느 한 쪽을 선택ㅎ살 지 Git에게 혼란이 온 것이다.
이를 자동 변환 시켜주는 core.autocrlf 라는 기능을 켜는 것이다.
이 기능은 개발자가 git에 코드를 추가했을 때(예컨대 커밋할 때)에는 CRLF를 LF로 변환해주고, git의 코드를 개발자가 조회할 때 (예컨대 clone을 한다거나 할 때)에는 LF를 CRLF로 변환시켜준단다.
core.autocrlf -> 너무 감사합니다!
.
.
.
.gitignore 파일에 application.yml을 추가를 안해서 발생한 에러였다...
LF CRLF 알았으니까... 괜찮다고 하자...


git pull origin main
git pull을 당기면 yml 파일이 당겨지진 않는다.
yml 파일을 직접 만들어 줘야하면 수동 배포가 된다.
# 코드 수정
name: Deploy To EC2
on:
push:
branches:
- main
jobs:
Deploy:
runs-on: ubuntu-latest
steps:
- name: SSH(원격접속)로 EC2에 접속하기
uses: appleboy/ssh-action@v1.0.3
# 라이브러리 스크립트 안에서 secrets 변수를 사용하고 싶다.
# 변수를 사용하려면 env: 를 사용해야 한다.
# 환경 변수에 관련된 변수를 선언해.
env:
APPLICATION_PROPERTIES: ${{ secrets.APPLICATION_PROPERTIES }}
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USERNAME }}
key: ${{ secrets.EC2_PRIVATE_KEY }}
# 어떤 변수를 쓸 지 선언을 해야만
envs: APPLICATION_PROPERTIES
script_step: true
script: |
cd /home/ubuntu/board-server
# 원래 기존에 있던 yml 파일 삭제
rm -rf src/main/resources/application.yml
git pull origin main
# 여기에 있는 변수값들을 요 파일에 작성하게끔 해준다
# yml 파일을 다시 생성
# 이렇게 쓸 수 있다.
echo "$APPLICATION_PROPERTIES" > src/main/resources/application.yml
./gradlew clean build
sudo fuser -k -n tcp 8080 || true
nohup java -jar build/libs/*SNAPSHOT.jar > ./output.log 2 >& 1 &
Pass environment variable to shell script
- name: pass environment
uses: appleboy/ssh-action@v1.0.3
+ env:
+ FOO: "BAR"
+ BAR: "FOO"
+ SHA: ${{ github.sha }}
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.KEY }}
port: ${{ secrets.PORT }}
+ envs: FOO,BAR,SHA
script: |
echo "I am $FOO"
echo "I am $BAR"
echo "sha: $SHA"

업데이트는 secrets에서 수동으로 수정해줘야 한다.

Commit - Push - Build - Test - Success
# 테스트 코드 실행
./gradlew test
# 테스트까지 포함되어 있다
./gradlew clean build

위의 코드에서 BUILD FAILED가 되고 더이상 진행하지 않는다.