Skip to main content

๋ณ€์ˆ˜์— ์ •๋ณด ์ €์žฅ

GitHub์€(๋Š”) ๊ฐ GitHub Actions ์›Œํฌํ”Œ๋กœ ์‹คํ–‰์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ผ ์›Œํฌํ”Œ๋กœ ๋˜๋Š” ์—ฌ๋Ÿฌ ์›Œํฌํ”Œ๋กœ์—์„œ ์‚ฌ์šฉํ•  ์‚ฌ์šฉ์ž ์ง€์ • ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹จ์ผ ์›Œํฌํ”Œ๋กœ์— ๋Œ€ํ•œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์ •์˜

๋‹จ์ผ ์›Œํฌํ”Œ๋กœ์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ์ง€์ • ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•˜๋ ค๋ฉด ์›Œํฌํ”Œ๋กœ ํŒŒ์ผ์—์„œ env ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฉ”์„œ๋“œ๋กœ ์„ค์ •ํ•œ ์‚ฌ์šฉ์ž ์ง€์ • ํ™˜๊ฒฝ ๋ณ€์ˆ˜์˜ ๋ฒ”์œ„๋Š” ์ •์˜๋œ ์š”์†Œ๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฒ”์œ„๊ฐ€ ์ง€์ •๋œ ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์›Œํฌํ”Œ๋กœ ํŒŒ์ผ์˜ ์ตœ์ƒ์œ„ ์ˆ˜์ค€์—์„œ env๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ „์ฒด ์›Œํฌํ”Œ๋กœ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • jobs.<job_id>.env๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›Œํฌํ”Œ๋กœ ๋‚ด์˜ ์ž‘์—… ์ฝ˜ํ…์ธ ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  • ์ž‘์—… ๋‚ด์˜ ํŠน์ • ๋‹จ๊ณ„(jobs.<job_id>.steps[*].env๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ)
YAML
name: Greeting on variable day

on:
  workflow_dispatch

env:
  DAY_OF_WEEK: Monday

jobs:
  greeting_job:
    runs-on: ubuntu-latest
    env:
      Greeting: Hello
    steps:
      - name: "Say Hello Mona it's Monday"
        run: echo "$Greeting $First_Name. Today is $DAY_OF_WEEK!"
        env:
          First_Name: Mona

์‹คํ–‰๊ธฐ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์ปจํ…์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ env ๋ณ€์ˆ˜ ๊ฐ’์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ„์˜ ์˜ˆ์‹œ์—์„œ๋Š” echo ๋ช…๋ น, ์ฆ‰ $DAY_OF_WEEK, $Greeting ๋ฐ $First_Name์— ์‹คํ–‰๊ธฐ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋กœ ์‚ฌ์šฉ๋˜๋Š” ์„ธ ๊ฐ€์ง€ ์‚ฌ์šฉ์ž ์ง€์ • ๋ณ€์ˆ˜๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ณ€์ˆ˜์˜ ๊ฐ’์€ ๊ฐ๊ฐ ์›Œํฌํ”Œ๋กœ, ์ž‘์—… ๋ฐ ๋‹จ๊ณ„ ์ˆ˜์ค€์—์„œ ์„ค์ •๋˜๊ณ  ๋ฒ”์œ„๊ฐ€ ์ง€์ •๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ณ€์ˆ˜์˜ ๋ณด๊ฐ„์€ ์‹คํ–‰๊ธฐ์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์›Œํฌํ”Œ๋กœ ๋‹จ๊ณ„ run์˜ ๋ช…๋ น ๋˜๋Š” ์ฐธ์กฐ๋œ ์ž‘์—…์€ ์‹คํ–‰๊ธฐ์—์„œ ์‚ฌ์šฉ ์ค‘์ธ ์…ธ์—์„œ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ์›Œํฌํ”Œ๋กœ์˜ ๋‹ค๋ฅธ ๋ถ€๋ถ„์— ์žˆ๋Š” ๋ช…๋ น์€ GitHub Actions์— ์˜ํ•ด ์ฒ˜๋ฆฌ๋˜๋ฉฐ ์‹คํ–‰๊ธฐ๋กœ ์ „์†ก๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‹คํ–‰๊ธฐ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๋˜๋Š” ์ปจํ…์ŠคํŠธ๋ฅผ run ๋‹จ๊ณ„์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์‹คํ–‰๊ธฐ๋กœ ์ „์†ก๋˜์ง€ ์•Š์€ ์›Œํฌํ”Œ๋กœ ๋ถ€๋ถ„์—์„œ๋Š” ์ปจํ…์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€์ˆ˜ ๊ฐ’์— ์•ก์„ธ์Šคํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ปจํ…์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€์ˆ˜ ๊ฐ’์— ์•ก์„ธ์Šค๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์›Œํฌํ”Œ๋กœ ์ž‘์—…์ด ์‹คํ–‰๊ธฐ ์ปดํ“จํ„ฐ๋กœ ์ „์†ก๋œ ํ›„ ์‹คํ–‰๊ธฐ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๋ณด๊ฐ„์ด ์ˆ˜ํ–‰๋˜๋ฏ€๋กœ ์‹คํ–‰๊ธฐ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์…ธ์— ์ ์ ˆํ•œ ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ˆ์‹œ์—์„œ ์›Œํฌํ”Œ๋กœ๋Š” ubuntu-latest๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ Linux ์‹คํ–‰๊ธฐ๋Š” bash ์…ธ์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ $NAME ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ Windows ์‹คํ–‰๊ธฐ๋Š” PowerShell์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ $env:NAME ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์…ธ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ GitHub Actions์— ๋Œ€ํ•œ ์›Œํฌํ”Œ๋กœ ๊ตฌ๋ฌธ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

์—ฌ๋Ÿฌ ์›Œํฌํ”Œ๋กœ์— ๋Œ€ํ•œ ๊ตฌ์„ฑ ๋ณ€์ˆ˜ ์ •์˜ํ•˜๊ธฐ

์—ฌ๋Ÿฌ ์›Œํฌํ”Œ๋กœ์—์„œ ์‚ฌ์šฉํ•  ๊ตฌ์„ฑ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค๊ณ  ์กฐ์ง, ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋˜๋Š” ํ™˜๊ฒฝ ์ˆ˜์ค€์—์„œ ์ •์˜ํ•  ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ๊ตฌ์„ฑ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์กฐ์ง ์ˆ˜์ค€์—์„œ ๋„๊ตฌ๋ฅผ ๋นŒ๋“œํ•˜๊ธฐ ์œ„ํ•ด ์ „๋‹ฌ๋œ ๋งค๊ฐœ ๋ณ€์ˆ˜์˜ ๊ธฐ๋ณธ๊ฐ’์„ ์„ค์ •ํ•œ ๋‹ค์Œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์†Œ์œ ์ž๊ฐ€ ์‚ฌ๋ก€๋ณ„๋กœ ์ด๋Ÿฌํ•œ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์žฌ์ •์˜ํ•˜๋„๋ก ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ตฌ์„ฑ ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•˜๋ฉด vars ์ปจํ…์ŠคํŠธ์—์„œ ์ž๋™์œผ๋กœ ๊ตฌ์„ฑ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ vars ์ปจํ…์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์„ฑ ๋ณ€์ˆ˜ ๊ฐ’์— ์•ก์„ธ์Šคํ•˜๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ ๊ตฌ์„ฑ ๋ณ€์ˆ˜ ๋งŒ๋“ค๊ธฐ

๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์†Œ์œ ์ž๋งŒ ๊ฐœ์ธ ๊ณ„์ • ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ GitHub์— ๋น„๋ฐ€ ๋˜๋Š” ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. GitHub์—์„œ ์กฐ์ง ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ๋น„๋ฐ€์ด๋‚˜ ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜๋ ค๋ฉด write ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ, ํ˜‘๋ ฅ์ž ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ๋Š” ์‚ฌ์šฉ์ž๋งŒ REST API๋ฅผ ํ†ตํ•ด ๊ฐœ์ธ ๊ณ„์ • ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋˜๋Š” ์กฐ์ง ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ ๋น„๋ฐ€ ๋˜๋Š” ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. GitHub์—์„œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ๊ธฐ๋ณธ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

  2. ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ด๋ฆ„ ์•„๋ž˜์—์„œ ์„ค์ •์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. "์„ค์ •" ํƒญ์ด ํ‘œ์‹œ๋˜์ง€ ์•Š์œผ๋ฉด ๋“œ๋กญ๋‹ค์šด ๋ฉ”๋‰ด๋ฅผ ์„ ํƒํ•œ ๋‹ค์Œ ์„ค์ •์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    ํƒญ์„ ๋ณด์—ฌ ์ฃผ๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ํ—ค๋”์˜ ์Šคํฌ๋ฆฐ์ƒท. "์„ค์ •" ํƒญ์ด ์ง„ํ•œ ์ฃผํ™ฉ์ƒ‰ ์œค๊ณฝ์„ ์œผ๋กœ ๊ฐ•์กฐ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

  3. ์‚ฌ์ด๋“œ๋ฐ”์˜ "๋ณด์•ˆ" ์„น์…˜์—์„œ ๋น„๋ฐ€ ๋ฐ ๋ณ€์ˆ˜๋ฅผ ์„ ํƒํ•˜๊ณ  ์ž‘์—…์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  4. ๋ณ€์ˆ˜ ํƒญ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    "์ž‘์—… ๋น„๋ฐ€ ๋ฐ ๋ณ€์ˆ˜" ํŽ˜์ด์ง€์˜ ์Šคํฌ๋ฆฐ์ƒท. "๋ณ€์ˆ˜" ํƒญ์ด ์ง„ํ•œ ์ฃผํ™ฉ์ƒ‰ ์œค๊ณฝ์„ ์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

  5. ์ƒˆ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋ณ€์ˆ˜๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  6. ์ด๋ฆ„ ํ•„๋“œ์— ๋ณ€์ˆ˜์˜ ์ด๋ฆ„์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

  7. ๊ฐ’ ํ•„๋“œ์— ๋ณ€์ˆ˜ ๊ฐ’์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

  8. ๋ณ€์ˆ˜ ์ถ”๊ฐ€๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

ํ™˜๊ฒฝ์— ๋Œ€ํ•œ ๊ตฌ์„ฑ ๋ณ€์ˆ˜ ๋งŒ๋“ค๊ธฐ

๊ฐœ์ธ ๊ณ„์ • ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ํ™˜๊ฒฝ์— ๋Œ€ํ•œ ๋น„๋ฐ€ ๋˜๋Š” ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์†Œ์œ ์ž์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์กฐ์ง ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ํ™˜๊ฒฝ์— ๋Œ€ํ•œ ๋น„๋ฐ€ ๋˜๋Š” ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด admin ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ™˜๊ฒฝ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ฐฐํฌ ํ™˜๊ฒฝ ๊ด€๋ฆฌ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

  1. GitHub์—์„œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ๊ธฐ๋ณธ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

  2. ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ด๋ฆ„ ์•„๋ž˜์—์„œ ์„ค์ •์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. "์„ค์ •" ํƒญ์ด ํ‘œ์‹œ๋˜์ง€ ์•Š์œผ๋ฉด ๋“œ๋กญ๋‹ค์šด ๋ฉ”๋‰ด๋ฅผ ์„ ํƒํ•œ ๋‹ค์Œ ์„ค์ •์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    ํƒญ์„ ๋ณด์—ฌ ์ฃผ๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ํ—ค๋”์˜ ์Šคํฌ๋ฆฐ์ƒท. "์„ค์ •" ํƒญ์ด ์ง„ํ•œ ์ฃผํ™ฉ์ƒ‰ ์œค๊ณฝ์„ ์œผ๋กœ ๊ฐ•์กฐ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

  3. ์™ผ์ชฝ ์‚ฌ์ด๋“œ๋ฐ”์—์„œ ํ™˜๊ฒฝ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  4. ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•  ํ™˜๊ฒฝ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  5. ํ™˜๊ฒฝ ๋ณ€์ˆ˜์—์„œ ๋ณ€์ˆ˜ ์ถ”๊ฐ€๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  6. ์ด๋ฆ„ ํ•„๋“œ์— ๋ณ€์ˆ˜์˜ ์ด๋ฆ„์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

  7. ๊ฐ’ ํ•„๋“œ์— ๋ณ€์ˆ˜ ๊ฐ’์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

  8. ๋ณ€์ˆ˜ ์ถ”๊ฐ€๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

์กฐ์ง์— ๋Œ€ํ•œ ๊ตฌ์„ฑ ๋ณ€์ˆ˜ ๋งŒ๋“ค๊ธฐ

์กฐ์ง์—์„œ ๋น„๋ฐ€ ๋˜๋Š” ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค ๋•Œ, ์ •์ฑ…์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ณ„๋กœ ์•ก์„ธ์Šค๋ฅผ ์ œํ•œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋ชจ๋“  ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๊ฑฐ๋‚˜ ํ”„๋ผ์ด๋น— ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋˜๋Š” ์ง€์ •๋œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋ชฉ๋ก์— ๋Œ€ํ•ด์„œ๋งŒ ์•ก์„ธ์Šค๋ฅผ ์ œํ•œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์กฐ์ง ์†Œ์œ ์ž ๋ฐ "์กฐ์ง ์ž‘์—… ๋ณ€์ˆ˜ ๊ด€๋ฆฌ" ๋˜๋Š” "์กฐ์ง ์ž‘์—… ๋น„๋ฐ€ ๊ด€๋ฆฌ" ๊ถŒํ•œ์„ ๊ฐ€์ง„ ์‚ฌ์šฉ์ž๋Š” ์กฐ์ง ์ˆ˜์ค€์—์„œ ๋น„๋ฐ€ ๋˜๋Š” ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์‚ฌ์šฉ์ž ์ง€์ • ์กฐ์ง ์—ญํ•  ์†Œ๊ฐœ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

  1. GitHub์—์„œ ์กฐ์ง์˜ ๊ธฐ๋ณธ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

  2. ์กฐ์ง ์ด๋ฆ„์—์„œ ์„ค์ •์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. "์„ค์ •" ํƒญ์ด ํ‘œ์‹œ๋˜์ง€ ์•Š์œผ๋ฉด ๋“œ๋กญ๋‹ค์šด ๋ฉ”๋‰ด๋ฅผ ์„ ํƒํ•œ ๋‹ค์Œ ์„ค์ •์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    ์กฐ์ง ํ”„๋กœํ•„์— ์žˆ๋Š” ์—ฌ๋Ÿฌ ํƒญ์˜ ์Šคํฌ๋ฆฐ์ƒท. "์„ค์ •" ํƒญ์ด ์ง„ํ•œ ์ฃผํ™ฉ์ƒ‰์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

  3. ์‚ฌ์ด๋“œ๋ฐ”์˜ "๋ณด์•ˆ" ์„น์…˜์—์„œ ๋น„๋ฐ€ ๋ฐ ๋ณ€์ˆ˜๋ฅผ ์„ ํƒํ•˜๊ณ  ์ž‘์—…์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  4. ๋ณ€์ˆ˜ ํƒญ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    "์ž‘์—… ๋น„๋ฐ€ ๋ฐ ๋ณ€์ˆ˜" ํŽ˜์ด์ง€์˜ ์Šคํฌ๋ฆฐ์ƒท. "๋ณ€์ˆ˜" ํƒญ์ด ์ง„ํ•œ ์ฃผํ™ฉ์ƒ‰ ์œค๊ณฝ์„ ์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

    ์ฐธ๊ณ  ํ•ญ๋ชฉ

    โ€œActions ๋น„๋ฐ€๊ณผ ๋ณ€์ˆ˜โ€ ํŽ˜์ด์ง€์—๋Š” ์‚ฌ์šฉ ๊ถŒํ•œ์— ๋”ฐ๋ผ ๋น„๋ฐ€๊ณผ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ๋ณ„๋„ ํƒญ์ด ํ‘œ์‹œ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. "์กฐ์ง Actions ๋ณ€์ˆ˜ ๊ด€๋ฆฌ" ๋ฐ "์กฐ์ง Actions ๋น„๋ฐ€ ๊ด€๋ฆฌ" ๊ถŒํ•œ์ด ์žˆ๋Š” ์กฐ์ง ์†Œ์œ ์ž ๋ฐ ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ๋ณ€์ˆ˜ ๋ฐ ๋น„๋ฐ€ ํƒญ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์‚ฌ์šฉ์ž ์ง€์ • ์กฐ์ง ์—ญํ•  ์†Œ๊ฐœ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

  5. ์ƒˆ ์กฐ์ง ๋ณ€์ˆ˜๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  6. ์ด๋ฆ„ ํ•„๋“œ์— ๋ณ€์ˆ˜์˜ ์ด๋ฆ„์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

  7. ๊ฐ’ ํ•„๋“œ์— ๋ณ€์ˆ˜ ๊ฐ’์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

  8. ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์•ก์„ธ์Šค ๋“œ๋กญ๋‹ค์šด ๋ชฉ๋ก์—์„œ ์•ก์„ธ์Šค ์ •์ฑ…์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  9. ๋ณ€์ˆ˜ ์ถ”๊ฐ€๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

์ปจํ…์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€์ˆ˜ ๊ฐ’์— ์•ก์„ธ์Šคํ•˜๊ธฐ

์ปจํ…์ŠคํŠธ๋Š” ์›Œํฌํ”Œ๋กœ ์‹คํ–‰, ๋ณ€์ˆ˜, ์‹คํ–‰๊ธฐ ํ™˜๊ฒฝ, ์ž‘์—… ๋ฐ ๋‹จ๊ณ„์— ๋Œ€ํ•œ ์ •๋ณด์— ์•ก์„ธ์Šคํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ปจํ…์ŠคํŠธ ์ฐธ์กฐ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”. ์›Œํฌํ”Œ๋กœ์—์„œ ๋‹ค์–‘ํ•œ ์šฉ๋„๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค๋ฅธ ๋งŽ์€ ์ปจํ…์ŠคํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์›Œํฌํ”Œ๋กœ ๋‚ด์—์„œ ํŠน์ • ์ปจํ…์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์œ„์น˜์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ปจํ…์ŠคํŠธ ์ฐธ์กฐ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

env ์ปจํ…์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๊ฐ’์— ์•ก์„ธ์Šคํ•˜๊ณ  vars ์ปจํ…์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์„ฑ ๋ณ€์ˆ˜ ๊ฐ’์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

env ์ปจํ…์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๊ฐ’์— ์•ก์„ธ์Šคํ•˜๊ธฐ

์‹คํ–‰๊ธฐ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์™ธ์—๋„ GitHub Actions์„(๋ฅผ) ์‚ฌ์šฉํ•˜๋ฉด ์ปจํ…์ŠคํŠธ๋กœ env ํ‚ค ๊ฐ’์„ ์„ค์ •ํ•˜๊ณ  ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๋ฐ ์ปจํ…์ŠคํŠธ๋Š” ์›Œํฌํ”Œ๋กœ์˜ ์—ฌ๋Ÿฌ ์ง€์ ์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์›Œํฌํ”Œ๋กœ ๋˜๋Š” ์ฐธ์กฐ๋œ ์ž‘์—…์˜ run ๋‹จ๊ณ„๋Š” ์‹คํ–‰๊ธฐ์—์„œ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์‹คํ–‰๊ธฐ์—์„œ ์‚ฌ์šฉ ์ค‘์ธ ์…ธ์— ๋Œ€ํ•œ ์ ์ ˆํ•œ ๊ตฌ๋ฌธ(์˜ˆ์‹œ: Linux ์‹คํ–‰๊ธฐ์˜ bash ์…ธ์—๋Š” $NAME, Windows ์‹คํ–‰๊ธฐ์˜ PowerShell์—๋Š” $env:NAME)์„ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๊ธฐ์—์„œ ์‹คํ–‰๊ธฐ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ${{ CONTEXT.PROPERTY }} ๊ตฌ๋ฌธ๊ณผ ํ•จ๊ป˜ ์ปจํ…์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋™์ผํ•œ ๊ฐ’์— ์•ก์„ธ์Šคํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฐจ์ด์ ์€ ์ž‘์—…์ด ์‹คํ–‰๊ธฐ๋กœ ์ „์†ก๋˜๊ธฐ ์ „์— ์ปจํ…์ŠคํŠธ๊ฐ€ ๋ณด๊ฐ„๋˜๊ณ  ๋ฌธ์ž์—ด๋กœ ๋Œ€์ฒด๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ GitHub Actions์— ์˜ํ•ด ์ฒ˜๋ฆฌ๋˜๊ณ  ์‹คํ–‰๊ธฐ๋กœ ์ „์†ก๋˜์ง€ ์•Š๋Š” ์›Œํฌํ”Œ๋กœ์˜ ์ผ๋ถ€์—์„œ๋Š” ์‹คํ–‰๊ธฐ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  ์ปจํ…์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ž‘์—… ๋˜๋Š” ๋‹จ๊ณ„๊ฐ€ ์‹คํ–‰๊ธฐ๋กœ ์ „์†ก๋˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” if ์กฐ๊ฑด์ด ํ•ญ์ƒ GitHub Actions์— ์˜ํ•ด ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ if ์กฐ๊ฑด๋ฌธ์˜ ์ปจํ…์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€์ˆ˜์˜ ๊ฐ’์— ์•ก์„ธ์Šคํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

YAML
name: Conditional env variable

on: workflow_dispatch

env:
  DAY_OF_WEEK: Monday

jobs:
  greeting_job:
    runs-on: ubuntu-latest
    env:
      Greeting: Hello
    steps:
      - name: "Say Hello Mona it's Monday"
        if: ${{ env.DAY_OF_WEEK == 'Monday' }}
        run: echo "$Greeting $First_Name. Today is $DAY_OF_WEEK!"
        env:
          First_Name: Mona

์ด์ „ ์˜ˆ์‹œ์—์„œ๋Š” ์ด๋ ‡๊ฒŒ ์ˆ˜์ •ํ•˜์—ฌ if ์กฐ๊ฑด๋ถ€๋ฅผ ๋„์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค. ์›Œํฌํ”Œ๋กœ ๋‹จ๊ณ„๋Š” ์ด์ œ DAY_OF_WEEK๊ฐ€ "์›”์š”์ผ"๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ์—๋งŒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. env์ปจํ…์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ if ์กฐ๊ฑด๋ฌธ์—์„œ ์ด ๊ฐ’์— ์•ก์„ธ์Šคํ•ฉ๋‹ˆ๋‹ค. run ๋ช…๋ น ๋‚ด์—์„œ ์ฐธ์กฐ๋˜๋Š” ๋ณ€์ˆ˜์—๋Š” env ์ปจํ…์ŠคํŠธ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์‹คํ–‰๊ธฐ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋กœ ์ฐธ์กฐ๋˜๋ฉฐ ์‹คํ–‰๊ธฐ์—์„œ ์ž‘์—…์„ ๋ฐ›์€ ํ›„ ๋ณด๊ฐ„๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ปจํ…์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์—…์„ ์‹คํ–‰๊ธฐ๋กœ ๋ณด๋‚ด๊ธฐ ์ „์— ํ•ด๋‹น ๋ณ€์ˆ˜๋ฅผ ๋ณด๊ฐ„ํ•˜๋„๋ก ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ ์ถœ๋ ฅ์€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

run: echo "${{ env.Greeting }} ${{ env.First_Name }}. Today is ${{ env.DAY_OF_WEEK }}!"

์ฐธ๊ณ  ํ•ญ๋ชฉ

์ปจํ…์ŠคํŠธ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ${{ context.property }}์™€ ๊ฐ™์ด ๋‹ฌ๋Ÿฌ ๊ธฐํ˜ธ์™€ ์ค‘๊ด„ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. if ์กฐ๊ฑด์—์„œ ${{ ๋ฐ }}์€(๋Š”) ์„ ํƒ ์‚ฌํ•ญ์ด์ง€๋งŒ, ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์œ„์™€ ๊ฐ™์ด ์ „์ฒด ๋น„๊ต ๋ฌธ์„ ๋ฌถ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฝ๊ณ 

์›Œํฌํ”Œ๋กœ์™€ ์ž‘์—…์„ ๋งŒ๋“ค ๋•Œ๋Š” ์ฝ”๋“œ๊ฐ€ ๊ณต๊ฒฉ์ž์˜ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ์ž…๋ ฅ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ•ญ์ƒ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํŠน์ • ์ปจํ…์ŠคํŠธ๋Š” ๊ณต๊ฒฉ์ž๊ฐ€ ์ž์‹ ์˜ ์•…์„ฑ ์ฝ˜ํ…์ธ ๋ฅผ ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ์ž…๋ ฅ์œผ๋กœ ์ทจ๊ธ‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ณด์•ˆ ์‚ฌ์šฉ ์ฐธ์กฐ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

vars ์ปจํ…์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์„ฑ ๋ณ€์ˆ˜ ๊ฐ’์— ์•ก์„ธ์Šคํ•˜๊ธฐ

vars ์ปจํ…์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›Œํฌํ”Œ๋กœ ์ „์ฒด์—์„œ ๊ตฌ์„ฑ ๋ณ€์ˆ˜์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ปจํ…์ŠคํŠธ ์ฐธ์กฐ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

๊ตฌ์„ฑ ๋ณ€์ˆ˜๊ฐ€ ์„ค์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ, ๋ณ€์ˆ˜๋ฅผ ์ฐธ์กฐํ•˜๋Š” ์ปจํ…์ŠคํŠธ๋Š” ๋นˆ ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ์˜ˆ์ œ๋Š” ์›Œํฌํ”Œ๋กœ ์ „์ฒด์—์„œ vars ์ปจํ…์ŠคํŠธ์™€ ํ•จ๊ป˜ ๊ตฌ์„ฑ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๋‹ค์Œ ๊ฐ๊ฐ์˜ ๊ตฌ์„ฑ ๋ณ€์ˆ˜๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ, ์กฐ์ง ๋˜๋Š” ํ™˜๊ฒฝ ์ˆ˜์ค€์—์„œ ์ •์˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

YAML
on:
  workflow_dispatch:
env:
  # Setting an environment variable with the value of a configuration variable
  env_var: ${{ vars.ENV_CONTEXT_VAR }}

jobs:
  display-variables:
    name: ${{ vars.JOB_NAME }}
    # You can use configuration variables with the `vars` context for dynamic jobs
    if: ${{ vars.USE_VARIABLES == 'true' }}
    runs-on: ${{ vars.RUNNER }}
    environment: ${{ vars.ENVIRONMENT_STAGE }}
    steps:
    - name: Use variables
      run: |
        echo "repository variable : $REPOSITORY_VAR"
        echo "organization variable : $ORGANIZATION_VAR"
        echo "overridden variable : $OVERRIDE_VAR"
        echo "variable from shell environment : $env_var"
      env:
        REPOSITORY_VAR: ${{ vars.REPOSITORY_VAR }}
        ORGANIZATION_VAR: ${{ vars.ORGANIZATION_VAR }}
        OVERRIDE_VAR: ${{ vars.OVERRIDE_VAR }}
        
    - name: ${{ vars.HELLO_WORLD_STEP }}
      if: ${{ vars.HELLO_WORLD_ENABLED == 'true' }}
      uses: actions/hello-world-javascript-action@main
      with:
        who-to-greet: ${{ vars.GREET_NAME }}

์šด์˜ ์ฒด์ œ ๊ฒ€์ƒ‰

RUNNER_OS ๊ธฐ๋ณธ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๋ฐ ํ•ด๋‹น ์ปจํ…์ŠคํŠธ ์†์„ฑ ${{ runner.os }}์„(๋ฅผ) ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ์šด์˜ ์ฒด์ œ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋‹จ์ผ ์›Œํฌํ”Œ๋กœ ํŒŒ์ผ์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์‹คํ–‰๊ธฐ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์…ธ์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ํ™˜๊ฒฝ ๋ณ€์ˆ˜์˜ ๊ตฌ๋ฌธ์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ์šด์˜ ์ฒด์ œ๋ฅผ macos-latest์—์„œ windows-latest๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ๋‹ค์Œ ์›Œํฌํ”Œ๋กœ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

YAML
on: workflow_dispatch

jobs:
  if-Windows-else:
    runs-on: macos-latest
    steps:
      - name: condition 1
        if: runner.os == 'Windows'
        run: echo "The operating system on the runner is $env:RUNNER_OS."
      - name: condition 2
        if: runner.os != 'Windows'
        run: echo "The operating system on the runner is not Windows, it's $RUNNER_OS."

์ด ์˜ˆ์‹œ์—์„œ ๋‘ if ๋ฌธ์€ runner ์ปจํ…์ŠคํŠธ์˜ os ์†์„ฑ์„ ํ™•์ธํ•˜์—ฌ ์‹คํ–‰๊ธฐ์˜ ์šด์˜ ์ฒด์ œ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. if ์กฐ๊ฑด์€ GitHub Actions์— ์˜ํ•ด ์ฒ˜๋ฆฌ๋˜๋ฉฐ, ์‹คํ–‰๊ธฐ๋กœ ์ „์†ก๋˜๋Š” ๊ฒ€์‚ฌ์—์„œ true๋กœ ํ™•์ธ๋˜๋Š” ๋‹จ๊ณ„๋งŒ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ๊ฒ€์‚ฌ ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ•ญ์ƒ true์ด๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๊ฐ€ false์ด๋ฏ€๋กœ ๋‹จ๊ณ„ ์ค‘ ํ•˜๋‚˜๋งŒ ์‹คํ–‰๊ธฐ์— ์ „์†ก๋ฉ๋‹ˆ๋‹ค. ์ž‘์—…์ด ์‹คํ–‰๊ธฐ๋กœ ์ „์†ก๋˜๋ฉด ๋‹จ๊ณ„๊ฐ€ ์‹คํ–‰๋˜๊ณ  ๋ช…๋ น์˜ echo์˜ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ ์ ์ ˆํ•œ ๊ตฌ๋ฌธ(Windows PowerShell์˜ ๊ฒฝ์šฐ $env:NAME, Linux์™€ macOS์˜ bash์™€ sh์ธ ๊ฒฝ์šฐ $NAME)์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณด๊ฐ„๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ˆ์‹œ์—์„œ ๋ฌธ runs-on: macos-latest๋Š” ๋‘ ๋ฒˆ์งธ ๋‹จ๊ณ„๊ฐ€ ์‹คํ–‰๋  ๊ฒƒ์ž„์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์›Œํฌํ”Œ๋กœ์˜ ๋‹จ๊ณ„์™€ ์ž‘์—… ๊ฐ„์— ๊ฐ’ ์ „๋‹ฌ

์ž‘์—…์˜ ํ•œ ๋‹จ๊ณ„์—์„œ ๊ฐ’์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒฝ์šฐ ๊ธฐ์กด ๋˜๋Š” ์ƒˆ ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— ๊ฐ’์„ ํ• ๋‹นํ•œ ๋‹ค์Œ ์ด๋ฅผ GITHUB_ENV ํ™˜๊ฒฝ ํŒŒ์ผ์— ์ž‘์„ฑํ•˜์—ฌ ๋™์ผํ•œ ์ž‘์—…์˜ ํ›„์† ๋‹จ๊ณ„์—์„œ ๊ฐ’์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ™˜๊ฒฝ ํŒŒ์ผ์€ ์ž‘์—…์—์„œ ์ง์ ‘ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ run ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›Œํฌํ”Œ๋กœ ํŒŒ์ผ์˜ ์…ธ ๋ช…๋ น์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ GitHub Actions์— ๋Œ€ํ•œ ์›Œํฌํ”Œ๋กœ ๋ช…๋ น์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

์›Œํฌํ”Œ๋กœ์˜ ํ•œ ์ž‘์—… ๋‹จ๊ณ„์—์„œ ์›Œํฌํ”Œ๋กœ์˜ ๋‹ค๋ฅธ ์ž‘์—…์˜ ๋‹จ๊ณ„๋กœ ๊ฐ’์„ ์ „๋‹ฌํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ๊ฐ’์„ ์ž‘์—… ์ถœ๋ ฅ์œผ๋กœ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ, ๋‹ค๋ฅธ ์ž‘์—…์˜ ๋‹จ๊ณ„์—์„œ ์ด ์ž‘์—… ์ถœ๋ ฅ์„ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ GitHub Actions์— ๋Œ€ํ•œ ์›Œํฌํ”Œ๋กœ ๊ตฌ๋ฌธ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

๋‹ค์Œ ๋‹จ๊ณ„

์ฐธ์กฐ ์ •๋ณด๋Š” ๋ณ€์ˆ˜ ์ฐธ์กฐ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.