로컬에서는 빌드가 잘 되는데 Github Actions에서 gradle build를 하면 위와 같은 에러가 나오는 경우가 있다.
gradle-wrapper.jar가 커밋되지 않았기 때문에 GitHub Actions 환경에서 올바르게 로드되지 않을 가능성이 크다고 나와서 의심되는 부분을 살펴보았다.
gradle-wrapper.jar 파일의 깃 누락이 의심되어서 .gitignore 파일을 수정하고 다시 돌려보았더니 똑같은 에러를 내뱉는다.
(일단 임시적으로 jar로 끝나는 파일들을 gitignore에서 제외했다.)
이런 저런 방법들을 시도해 본 결과, ./gradlew --version을 실행하는데 그에 대한 Gradle Wrapper가 제대로 인식되지 않는 상황이었기 때문이라는 것을 확인할 수 있었다. (GitHub Actions에서 작업은 매번 새로 생성된 가상머신에서 실행되기 때문이다.)
다행히도 다음 코드를 ./gradlew --version의 앞 단계에 추가함으로써 빌드를 정상적으로 진행시킬 수 있었다.
- name: Download Gradle Wrapper
run: ./gradlew wrapper --gradle-version 8.11.1
./gradlew wrapper : Gradle Wrapper를 생성하는 명령어이다. 버전 번호는 gradle-wrapper.properties에 명시된 버전 정보를 확인해보자. 위 명령어를 통해 gradle-wrapper.properties 파일을 업데이트하고, GitHub Actions 환경에서 필요한 gradle-wrapper.jar와 Gradle 실행 파일을 다운로드하게 된다. Gradle 버전을 명시적으로 지정함으로써, 로컬 환경과의 차이로 인해 발생할 수 있는 문제를 방지할 수 있다.
결론적으로는 GitHub Actions 환경에서 Gradle Wrapper의 필수 파일이 누락되거나 환경 설정이 제대로 동작하지 않아 발생하게 된 에러였고, Gradle Wrapper를 다시 설정함으로 인해 로컬 환경과 GitHub Actions 간의 Gradle 설정 차이를 해결할 수 있었다.