GiitHub Actions를 통해 inputs에 정렬된 일자리 전달

항상 GiitHub Actions의 inputs에게 배열을 맡기고 싶어요.
2020년 9월 17일까지 inputs는string만 지원합니다.
  • Metadata syntax for GitHub Actions - GitHub Docs https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#inputs
  • 나는 이 문제를 해결할 방법을 생각하는 일을 소개한다.

    1. bash로 해석할 수 있는 문자열 수신


    bash에서 기본적으로 배열 구분자는 공백입니다. 항목별로 공백으로 구분된 문자열을 입력하면 됩니다.
    또는 쉼표 구분자로 항목을 입력하고 그 문자열을 분할하면 됩니다.

    쉼표 구분자 배열의 예시를 받아들이다


    inputs:
    	images:
        description: 'Comma separated list of images. The format of item is `name:tag`. e.g. "golang:1.14,quay.io/prometheus/prometheus:v2.20.1"'
        required: true
    
    runs:
    	using: composite
    	steps:
        - run: |
    	IMAGES=${{ inputs.images }}
            for image in ${IMAGES//,/ }; do
              NAME=$(echo $image | cut -d: -f1)
              TAG=$(echo $image | cut -d: -f2)
              kustomize edit set image ${NAME}=${NAME}:${TAG}
            done
          shell: bash
    

    2. 입력으로 JSON 문자열 수신


    JSON 문자열을 수락하면 배열을 처리하기 쉽습니다.
    만약 jq 등을 사용한다면 bash도 처리할 수 있습니다.하지만 JSON은 배열 이상의 것을 표현할 수 있다. 배열만 허용하고 싶다면 친근하지 않을 수도 있다.
  • Bash for Loop Over JSON Array Using JQ | Stark & Wayne https://starkandwayne.com/blog/bash-for-loop-over-json-array-using-jq/
  • 좋은 웹페이지 즐겨찾기