현상
- local환경에서 gradle build 성공 되던 project가
- github action gradle build 에서 compile error 가 발생
- 발생 메세지
> Task :compileTestKotlin
e: java.nio.file.InvalidPathException: Malformed input or input contains unmappable characters: /runner/_work/service/build/classes/kotlin/test/com/test/services/test/api/test1/test2/Test1$createAccount ?? ResponseDto ??$1.class
원인
- testcase class 내에 method명을 한글/영어 혼용한 경우, 발생
- ex) 아래 처럼 혼용 된 경우, complie error
- fun 'test 성공'
- fun 'test fail'
해결
- github action내 정의 된 gradle build에 환경변수를 추가한다
- lang, lc_all 환경변수
- file encoding option
- 설정
- name: Set locale to Korean UTF-8
run: sudo locale-gen ko_KR.UTF-8
env:
LANG: ko_KR.UTF-8
LC_ALL: ko_KR.UTF-8
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3
with:
arguments: |
clean
build
--no-daemon
env:
LANG: ko_KR.UTF-8
LC_ALL: ko_KR.UTF-8
JAVA_TOOL_OPTIONS: "-Dfile.encoding=UTF-8"