본문 바로가기
  • 개발 삽질 블로그
TroubleShooting

[CI/CD] GitHub Actions ./gradledew perpission denied 이슈

by 갹둥 2024. 10. 27.

문제 상황

프로젝트를 진행하면서 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해도 될 것 같습니다.

저는 곧 바꿀 예정이지만 아직 윈도우를 사용중이기 때문에 프로젝트를 올리기 전에 실행파일 권한을 신경써주어야겠습니다...