오늘은 깃 액션으로 CI를 도전했다.
젠킨스와 깃 액션 중, 어떤 걸 할까 고민을 많이 했는데
깃 액션으로 하기로 했다.
이유는?
- GitHub와 통합 되어있음
- 젠킨스는 따로 서버를 열어야하고 WebHook을 사용해서 깃허브에서 푸쉬 된 걸 잡아주는 설정을 해야한다.
- 근데 깃허브는 그런 거 설정 안해도 된다.
- 따로 서버를 안 올려도 되니, 푸쉬하는 시간을 자유롭게 할 수 있음
- 템플릿 존재
- 깃허브 액션은 템플릿이 존재한다.
- 각종 상황에 맞게 템플릿을 선택하고 응용해서 사용이 가능
- 엄청 깊게 들어가지 않을 것이니, 템플릿이 존재하면 좋음
- yml 파일로 설정
- 적응하면 읽기 쉬워진다. 엄청
- 읽는 거 근데 적응하는데 1시간도 안 걸린다.
name: Gradle Package
on:
push:
branches: [dev]
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v3
- name: Run chmod to make gralew executable
run: chmod +x ./gradlew
- name: Create appliction-test.properties
run: |
touch ./src/main/resources/application-test.properties
echo "${{ secrets.APPLICATION_TEST }}" > ./src/main/resources/application-test.properties
cat ./src/main/resources/application-test.properties
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
settings-path: ${{ github.workspace }} # location for the settings.xml file
- name: Restore dependencies
run: ./gradlew dependencies
# MySQL TestDB로 SQL 사용하려 했지만 H2로 변경
# - name: Start MySQL with Docker Compose
# run: docker-compose up -d
- name: Start Redis
uses: supercharge/redis-github-action@1.1.0
with:
redis-version: 6
- name: Build with Gradle
run: |
./gradlew build -x test
- name: Test with Gradle
run: |
./gradlew test
깃 액션에는 Job이라는 개념이 존재
Job은 하나의 처리 단위다. 여러개 설정 가능
나는 하나만 했다.
Create application-test.properties 부분 설명
Gradle 에서 환경 변수를 못읽는 에러가 발생했다. 그래서 env로 이것 저것 환경 변수를 추가 해봤지만 안됐다.
그래서 touch로 파일 생성 후 안에 Secret에서 설정해준 환경변수 없는 쌩값들로 적힌 설정들을 전부 넣어줬다.
아마추어 같은 방법이지만...
이게 최선이었다... 🥲
TestDB를 MySQL로 사용하려했는데, 접속을 못하는 상황이 발생해서, url등 전부 다 해봤지만 안돼서 h2로 바꿨다.
저게 파일이 글들이 많이 적어보이는데,, 저 글들이 저만큼 적어지기 전까지 얼마나 많은 시도들이 있었는ㄴ지.... 오늘 15시간 정도 계속 부딪혔다 이젠.... 지쳤어......ㅠㅠㅠㅠㅠㅠㅠㅠㅠ
내일은 CD까지 구현해야함...
'TIL' 카테고리의 다른 글
TIL 2024-01-04 SQL에 배열을 어떻게 저장할까? (0) | 2024.01.05 |
---|---|
TIL 2024-01-03 깃 액션으로 CD 구현하기 (0) | 2024.01.03 |
TIL 2023-12-31 통합 테스트 환경변수 오류 날 때 환경변수 자동 설정하기 (0) | 2023.12.31 |
TIL 2023-12-29 CI/CD 흐름 (0) | 2023.12.30 |
TIL 2023-12-28 스프링 단위 테스트랑 통합 환경 테스트 차이가 뭘까? (0) | 2023.12.29 |