워크플로우 파일 오류 ( yml 문법)

김용재·2024년 11월 19일

상황

깃 액션을 통해 자바 파일들을 빌드하려고 하는데 위 부분에서 실패했다.
gradle.yml 파일( 워크플로우 구성 파일) 내 빌드파일 생성하는 코드는 다음과 같이 작성했다.


./gradlew clean build :application/eureka:build

다음과 같은 오류가 발생하고 actions failed 가 되었다 .

What went wrong:
Cannot locate tasks that match ':application/eureka:build' as project 'application/eureka' not found in root project 'ForTickets'.

해결과정

의심가는 상황은 다음과 같았다.

1.clean과 build를 동시에 하려고 하는 것

터미널창에서는 동시에 해도 되지만 위 상황이 문제가 되는건가하는 의심이 들었다.
그래서 clean 과 빌드를 나누어 코드를 작성했는데 여전히 같은 문제가 발생했다.
나중에 해결하고 보니 접근자체를 터미널에 포커스를 맞출것이 아니라 yml문법으로 했어야했다.

2.gradlew를 찾지 못하는 문제?

내 프로젝트는 msa 구조를 위해서 멀티모듈을 통해 프로젝트를 구성했다.
그렇기 때문에 가장 바깥쪽을 제외하고 내부 프로젝트들에게는 gradlew 파일이 존재하지 않는다.
각 프로젝트별로 gradlew를 추가하고 다시 실행했으나 여전히 같은 문제가 발생했다.

3.yml 문법 문제

github actions의 찬찬히 다시 읽어보니 위에서 작성한 코드는 각각 한줄씩 인식하도록 생각을 했는데 통으로 인식하고 있었다. ./gradlew clean ./gradlew build 이렇게 한줄씩 이해하니
clean./gradlew 라는 것을 실행할 수는 없었고 다음과같은 오류를 뱉는 것이 납득이 되었다.

./gradlew' not found in root project 'ForTickets' and its subprojects.

이러니까 .. gradlew 문제라고 처음에 오해했던 것이다.
yml 의 문법을 검색해보니 멀티라인에 관한 내용을 알 수 있었다.
두 줄 이상의 명령어를 입력할때는 다음과 같이 작성되어야 한다 .

    틀린경우 
    run: 
    	hello world
    	hello world 

    결과물 : hello worldhelloworld 

    옳은 경우 
    run: 
    	hello world\n
    	hello world 

    	or 
    run: |
    	hello world 
    	hello world 

    결과물 : hello world
    			 hello world 

정리

문제를 직면했을때 내가 어떤걸 모르고 어떤걸 알고있는지 정확하게 파악한뒤 문제에 접근해야한다.
추측도 좋지만 일단 내가 상황속에서 어느부분을 정확히 알고있는지를 적고 시작하자.

profile
멋진 내가 되기 위한 발걸음

0개의 댓글