문제 상황
프로젝트를 진행하면서 GitHub Actions로 CI를 구축하고 있었습니다.
그러던 중 아래와 같은 에러를 만나게 되었습니다...이전 프로젝트에서 actions 사용할 때 이 부분은 신경 쓰지 않고 그냥 넘어갔었는데...
./gradledew에 실행 권한이 없다는 것 인데요
원인
왜 이전 프로젝트와 다르게 실행 권한이 없나 찾아봤더니
Springboot 세팅을 한 사람(It's me)의 개발환경이 Window이기 때문이라고 합니다. 이전 프로젝트 세팅해주신 팀원분은 mac을 사용하셨습니다.
Windows에서 생성된 파일은 기본적으로 644 권한을 가지며, 실행 파일로 인식되지 않습니다. 따라서 GitHub Actions에서 빌드할 때 문제가 발생할 수 있습니다. GitHub Actions는 기본적으로 Linux 환경에서 실행됩니다. 즉, Windows에서 작성한 gradlew 파일이 644 권한으로 푸시된다면, GitHub Actions에서 이 파일은 실행할 수 없는 상태가 됩니다.
해결
linux 환경에서 실행 권한 추가하기 위해 chmod +x gradlew를 수동으로 실행하여 실행 권한을 추가해야 합니다.
이미 저장소에 push해놓은 상태이기 때문에 실행 권한을 추가하기 위해
아래와 같이 workflow 스크립트를 수정하였습니다.
- name: Set up JDK
uses: actions/setup-java@v2
with:
java-version: '17'
distribution: 'temurin'
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build with Gradle
uses: gradle/gradle-build-action@v2.4.2
with:
arguments: build
잘 실행됩니다...다른 부분에서 에러를 만났지만요. 이부분을 또 해결하러 가야합니다.
mac이나 linux환경에서 개발중이시라면 직접 chmod해서 push해도 될 것 같습니다.
저는 곧 바꿀 예정이지만 아직 윈도우를 사용중이기 때문에 프로젝트를 올리기 전에 실행파일 권한을 신경써주어야겠습니다...
'TroubleShooting' 카테고리의 다른 글
[GitHub] BFG Repo-Cleaner를 이용하여 깃허브에 올라간민감 정보 지우기 (0) | 2024.11.02 |
---|---|
[Spring] JwtTokenFilter Exception 예외 처리하기(feat. Security Exceptions) (0) | 2024.10.11 |