# 이슈 상황
Github Action을 이용한 배포 자동화 시스템 구축 할때
gradlew을 통한 빌드를 위한 gradle.yml을 작성할때
발단 1. 현재 프로젝트는 하나의 레포지토리에 front / backend 두개로 나뉘어 있음. 그렇기 때문에 backend브런치에 gradle.yml을 작성해야함. -> 기본 작성시에는 자동으로 main에 작성되게 됨
발단 2. 인텔리제이로 스프링 부트 프로젝트를 설정했고 root경로가 래핑되어 잡혀 버림
## 이슈 키워드
Run chmod +x /backend/server/gradlew
chmod: cannot access '/backend/server/gradlew': No such file or directory
Error: Process completed with exit code 1.
A Gradle build should contain a 'settings.gradle' or 'settings.gradle.kts' file in its root directory. It may also contain a 'build.gradle' or 'build.gradle.kts' file.
# 해결
## 발단 1
- gradle.yml을 만들고 난후, main에 바로 커밋을 하는것이 아니다. backend브런치에서 서브 브런치를 판 후, .github/workflows/gradle.yml파일을 개별 생성 한 후, 내용 작성 후 커밋하자
## 발단 2
- 경로를 찾지 못하는 에러가 발생했다.
- working-directory를 . 로 설정 후 경로를 잡아주는 방식으로 변경했더니 아래와 같이, setting.gradle을 찾을 수 없다는 에러가 발생한다.
- 위에 까지 에러를 종합해보면 어찌저찌 gradlew까지 접근은 성공했지만, 이후 build과정에서 찾게 되는 setting.gradle에 대한 경로가 잡히지 않는 것으로 보인다. 해당 이슈는 인텔리제이로 생성한 프로젝트 때문에 backend/server와 같이 프로젝트가 한번더 상위에 묶여 버렸다.
### 해결 방법
name: Spring Boot & Gradle CI/CD
on:
push:
branches: [ "backend" ]
pull_request:
branches: [ "backend" ]
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up JDK 11
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'temurin'
- name: Grant execute permission for gradlew
run: chmod +x ./gradlew
working-directory: backend/server
# working-directory: .
- name: Build with Gradle
run : ./gradlew clean build --exclude-task test # Test 생략
working-directory: backend/server
# working-directory: .
- working-direcotry를 프로젝트의 디렉토리로 잡아주어 해결했다.
'• 개발 > Spring boot' 카테고리의 다른 글
[SpringBoot] Amazon Linux 2 AMI JDK11 설치 및 타임존 설정하기 (0) | 2023.08.08 |
---|---|
[SpringBoot&트러블슈팅] ddl-auto를 validate로 변경했을때 missing table 에러 해결하기 (0) | 2023.08.01 |
[SpringBoot&트러블슈팅] 연관관계 편의 메소드에서 @Builder를 사용할때 발생하는 NPE (0) | 2023.07.06 |
[트러블슈팅] 타임리프에서 소수점 반올림 하는 방법 (0) | 2023.05.20 |
[Spring boot] 스프링부트 배포시 타임리프(Thymeleaf) 경로 에러 (0) | 2023.02.17 |