인프런 커뮤니티 질문&답변

dncjf64님의 프로필 이미지

작성한 질문수

비전공자도 이해할 수 있는 CI/CD 입문·실전

[실습] 일반 프로젝트에서 많이 쓰는 CI/CD 구축 방법

echo로 깃허브 액션내 서버에서 yml 파일 생성시 질문

해결된 질문

작성

·

217

·

수정됨

0

 

 

spring:
  jpa:
    open-in-view: false
    hibernate:
      ddl-auto: none
    properties:
      hibernate.default_batch_fetch_size: 100

---
spring.config.activate.on-profile: local

spring:
  jpa:
    hibernate:
      ddl-auto: create
    properties:
      hibernate:
        format_sql: true
        show_sql: true
  h2:
    console:
      enabled: true

storage:
  datasource:
    core:
      driver-class-name: org.h2.Driver
      jdbc-url: jdbc:h2:mem:core;MODE=MySQL;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
      username: sa
      pool-name: core-db-pool
      data-source-properties:
        rewriteBatchedStatements: true

---
spring.config.activate.on-profile: local-dev

spring:
  jpa:
    properties:
      hibernate:
        show_log: true
        format_sql: true
    show-sql: true

storage:
  datasource:
    core:
      driver-class-name: com.mysql.cj.jdbc.Driver
      jdbc-url: jdbc:mysql://${storage.database.core-db.url}
      username: ${storage.database.core-db.username}
      password: ${storage.database.core-db.password}
      maximum-pool-size: 5
      connection-timeout: 1100
      keepalive-time: 30000
      validation-timeout: 1000
      max-lifetime: 600000
      pool-name: core-db-pool
      data-source-properties:
        socketTimeout: 3000
        cachePrepStmts: true
        prepStmtCacheSize: 250
        prepStmtCacheSqlLimit: 2048
        useServerPrepStmts: true
        useLocalSessionState: true
        rewriteBatchedStatements: true
        cacheResultSetMetadata: true
        cacheServerConfiguration: true
        elideSetAutoCommits: true
        maintainTimeStats: false

위의 yml 파일을 깃허브 액션내 서버에서 생성하려구 합니다.

 

- name: db-core.yml 파일 만들기
  run: echo "${{ secrets.APPLICATION_PROPERTIES }}" > ./storage/db-core/src/main/resources/db-core.yml

액션 스크립트에서 강의와 같이 설정하면

 

아래와 같은 에러가 뜹니다 ㅠㅠ

echo 명령어가 특수문자(---)에 대해서 처리를 못하는 걸까요?

Run echo "***
/home/runner/work/_temp/63b7a555-4d5d-42d4-971d-fe62ef3e0580.sh: line 70: ***
  ***
    ***
    ***
      ***
    ***
      ***

***
***

***
  ***
    ***
      ***
    ***
      ***
        ***
        ***
  ***
    ***
      ***

***
  ***
    ***
      ***
      ***
      ***
      ***
      ***
        ***

***
***

***
  ***
    ***
      ***
        ***
        ***
    ***

***
  ***
    ***
      ***
      ***
      ***
      ***
      ***
      ***
      ***
      ***
      ***
      ***
      ***
        ***
        ***
        ***
        ***
        ***
        ***
        ***
        ***
        ***
        ***
        ***
: bad substitution
Error: Process completed with exit code 1.

답변 1

0

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

안녕하세요 dncjf64님!

 

위 에러를 확인해보니 application.properties 부분에서
${storage.database.core-db.username} 부분 때문에 에러를 발생한 것으로 보이네요!

 

[해결책]

- name: db-core.yml 파일 만들기
  run: echo '${{ secrets.APPLICATION_PROPERTIES }}' > ./storage/db-core/src/main/resources/db-core.yml

리눅스 명령어에서는 쌍따옴표 안에 ${...}의 기호가 들어가면 리눅스의 변수라고 인식해버립니다.
홑따옴표를 쓰게 되면 ${...}를 문자로 인식하게 할 수 있습니다.

따라서 위 코드와 같이 echo 뒤에 쌍따옴표 대신에 홑따옴표를 써보시기 바랍니다!

 

위와 같이 했는데도 에러가 발생한다면 또 질문 남겨주세요:)

dncjf64님의 프로필 이미지

작성한 질문수

질문하기