1. 원인 및 시도
로컬에서만 관리되는 키 값(local.properties)이 있는데, 이것은 gitignore를 통해 github에 올라가지 않는다.
build.gradle에서는 local.properties에 있는 키 값을 가져와 사용을 해야 하는데, github action을 통해 빌드를 하면 local.properties파일이 없기 때문에 정상적인 빌드가 되지 않는다.
그래서 github 상에서 secret으로 값을 주입을 해서 사용해야 되는데 키 값이 제대로 주입이 안되는 현상이 발생하여 build.gradle에서 키 값을 찾지 못해 null로 리턴하는 현상을 발견하였다.
A problem occurred evaluating project ':app'.
> Parameter specified as non-null is null: method com.android.build.gradle.internal.dsl.BaseFlavor.buildConfigField, parameter value**
시도
- 키 값 주입 순서를 변경 - 같은 오류 발생 (build.gradle line 25- kakao api key)
- 키 값 형식 변경 - 역시 같은 오류 발생 (build.gradle line 25- kakao api key)
- 키 alias 값 변경 - 같은 오류 발생(이름에 대한 문제는 아닌 것으로 확인) (build.gradle line 25 - kakao api key)
- 키 값을 주입하는 flow가 총 4개 있었는데, 1개만 남겨두고 삭제 - 같은 오류가 발생하는데 (build.gradle line 26 - sk api key)으로 오류 발생 위치가 변경 → 해결 방안 떠오름
2. 해결 과정

위 순서 4에서 기술한 방식이다. 총 3개의 키 값을 관리하다가 1개만 남겨두고 다시 action을 실행하였는데, build.gradle 오류 발생 라인이 바뀌었다. 이걸로 한 가지 해결 방법이 떠올랐다. 키 값을 따로 주입하는 것이 아니라 KeySet이라는 하나의 문자열을 만들어 가지고 주입하는 것이였다.
이렇게 생각한 이유는 우측으로 바꿨을 때, build.gradle line 25에서 발생한 오류가 사라졌기 때문이다.
그 말인 즉, 키 값이 한 개만 들어갔을 때는(kakao api key) 정상적으로 동작하는데, 3개를 따로 주입하면 kakao api key를 인식하지 못했다. 그렇다는 건 kakao api key가 local.properties에 주입 되지 않았다는 의미이다.
왼쪽에서는 ‘echo 키값 > 파일’ 명령어를 통해 3번의 키 값 주입이 일어난다. 여기서 문제가 있었다.
한 번 주입할 때마다, local.propeties가 생기고 그 파일 내에 쭉 입력 되는 것이 아니라 파일이 새로 생기는 것 같았다.
이렇게 된다면, 결국 마지막의 tour api key만 주입 되기 떄문에 build.gradle 25번 라인에서 발생한 오류가 설명이 된다.

이러한 가정을 토대로, 키 값을 따로 주입하지 말고 하나로 묶어서 시도를 해보았다.

키 값 관련 빌드 오류는 사라졌고, 계속 빌드가 되어 ktlint를 수행하는 모습을 볼 수 있었다.

ktlint가 알려준 컨벤션을 수정하고 최종적으로 action을 실행시켜보니
정상 빌드가 된 것을 확인 할 수 있었다.
3. 알게 된 점
github actions에 키 값을 주입해줄 때는 따로 주입하지 말고 세트로 만들어서 한 번에 주입해주거나 echo 명령어를 쓸데 덮어쓰기 옵션인 '>'이 아닌 줄 추가 옵션인 '>>' 사용하기