Github Actions - ๊ฐ„๋‹จํ•œ ์›Œํฌํ”Œ๋กœ์šฐ ์ƒ์„ฑํ•ด๋ณด๊ธฐ

๋ฐ˜์‘ํ˜•

์ง€๋‚œ ํฌ์ŠคํŠธ์—์„œ Github Actions์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ์‚ฌ์šฉ๊ณผ ๊ธฐ๋Šฅ์„ ์†Œ๊ฐœํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ์—ˆ๋Š”๋ฐ์š”. ์ด๋ฒˆ์—๋Š” ์ง์ ‘ Github Actions๋ฅผ ์‚ฌ์šฉํ•ด ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ž๋™ํ™”ํ•˜๋Š” ๊ฒƒ์„ ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

Start

๋จผ์ € ๋ ˆํฌ์ง€ํ„ฐ๋ฆฌ๋ฅผ Actions๋ฅผ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ clone ํ•˜๋„๋ก ํ•˜์ฃ .

$ git clone [Repository]

ํด๋ก ํ•œ ๋ ˆํฌ์ง€ํ„ฐ๋ฆฌ์— ์•„๋ž˜์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ํ•œ ๊ฐœ ๋งŒ๋“ค์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

$ mkdir -p .github/workflows

Actions๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋จผ์ € Workflow๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ๋กœ๊ฐ€ ํ•„์š”ํ•œ๋ฐ, ์ด ๊ฒฝ๋กœ๊ฐ€ ๋ฐ”๋กœ .github ๋””๋ ‰ํ„ฐ๋ฆฌ์ž…๋‹ˆ๋‹ค.

$ touch main.yml

๊ทธ๋ฆฌ๊ณ  main.yml ๋ผ๋Š” ์ด๋ฆ„์˜ ํŒŒ์ผ์„ ํ•œ ๊ฐœ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์ด ๋ ˆํฌ์ง€ํ„ฐ๋ฆฌ์—์„œ Maintain์œผ๋กœ ์ž‘๋™ํ•˜๋Š” Workflow ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

.
โ”œโ”€โ”€ ,git
โ”œโ”€โ”€ .github
    โ””โ”€โ”€ workflows
            โ””โ”€โ”€ main.yml
โ”œโ”€โ”€ config
โ”œโ”€โ”€ public
โ””โ”€โ”€ src

๋””๋ ‰ํ„ฐ๋ฆฌ ํŠธ๋ฆฌ๋ฅผ ๋ณด๋ฉด, ๋Œ€์ถฉ ์ด๋Ÿฐ ํ˜•์‹์ด๋‹ค. React ํ”„๋กœ์ ํŠธ๋งˆ๋‹ค ์กฐ๊ธˆ์€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๊ฒ ์ง€๋งŒ ๊ธฐ๋ณธ์ ์œผ๋กœ Git์„ ๋ถ™์ด๊ฒŒ ๋˜๋ฉด .git ํด๋”๊ฐ€ ์žˆ๊ณ , Actions๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” .github ํด๋”๋ฅผ ๋งŒ๋“ค์–ด์„œ Workflow ์ฝ”๋“œ๋ฅผ ์‚ฝ์ž…ํ•˜๋ฉด Actions๊ฐ€ ๋™์ž‘ํ•˜๊ฒŒ ๋˜๋Š” ๊ตฌ์กฐ์ธ ๊ฒƒ์ด์ฃ .

 

Write Actions

์ด์ œ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ •์˜ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ž๋™ํ™” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์•„๋ž˜์˜ ๊ฐ€์ด๋“œ๋ผ์ธ์„ ์ฐธ์กฐํ•˜์˜€์Šต๋‹ˆ๋‹ค.

 

Configuring a workflow

 

Configuring a workflow - GitHub Help

Configuring a workflow You can create, view, or edit workflows for a repository if you have write or admin permissions to the repository. You can customize your workflow configuration based on the type of actions you include in your workflow. GitHub Action

help.github.com

๊ทธ๋Ÿผ ๊ฐ„๋‹จํ•œ ์ฝ”๋“œ๋ฅผ ์งœ๋ณด๋„๋ก ํ•˜์ฃ .

name: Practice actions

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Run a one-line script
        run: echo Testing...

name ์˜์—ญ์— ์ž์‹ ์˜ Workflow ์ด๋ฆ„์„ ๋„ฃ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ํ›„ ์–ด๋–ค ๋ธŒ๋žœ์น˜์—์„œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ Workflow๋ฅผ ์ˆ˜ํ–‰ํ• ์ง€๋ฅผ ๊ณ ๋ฅด๊ณ , ๋งˆ์ง€๋ง‰์œผ๋กœ ์–ด๋–ค ์ž‘์—…์„ ์–ด๋Š OS์—์„œ ์ˆ˜ํ–‰ํ•  ๊ฒƒ์ธ์ง€๋ฅผ ์ •ํ•˜๋ฉด ๊ธฐ๋ณธ ์›Œํฌํ”Œ๋กœ์šฐ ํ‹€์ด ์™„์„ฑ๋ฉ๋‹ˆ๋‹ค.

 

์›Œํฌํ”Œ๋กœ์šฐ๊ฐ€ ์™„์„ฑ์ด ๋œ ์ƒํƒœ๋กœ ์›๊ฒฉ ์ €์žฅ์†Œ์— Push๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด ์œ„์™€ ๊ฐ™์ด ์ž‘์—…ํ•œ ๋‚ด์šฉ๊ณผ Actions์˜ ์ด๋ฆ„์ด ํ‘œ์‹œ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์‘? ๊ทธ๋Ÿฐ๋ฐ, Actions๋ฅผ ์ž์„ธํžˆ ๋ณด๋‹ˆ, ๋นŒ๋“œ ํ™˜๊ฒฝ์œผ๋กœ Travis CI๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ๋ˆˆ์— ๋„๋„ค์š”..

 

๊ทธ๋Ÿฌ๋ฉด ๊ฐ„๋‹จํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ•œ ๊ฐœ ์งœ๋ณด๊ณ , ํ•ด๋‹น ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ž˜ ๋Œ์•„๊ฐ€๋Š”์ง€๋ฅผ ํ•œ ๋ฒˆ ํ…Œ์ŠคํŠธํ•ด๋ณด๋Š” Workflow๋ฅผ ํ•œ ๋ฒˆ ์งœ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์–ธ์–ด๋Š” C++๋กœ ํ•œ ๋ฒˆ ์งœ๋ณด๋„๋ก ํ• ๊ฒŒ์š”. 

 

name: Practice actions

on:
  push:
    branches:
      - master

on:
  pull_request:
    branches:
      - master

jobs:
  build:
    runs-on: ubuntu-latest
    
    steps:
      - uses: actions/checkout@v1
      - name: Run cmake for create configuration,,
        run: cmake CMakeLists.txt
      - name: Run make command,,
        run: make
      - name: Test code,,
        run: ./Multitab

์ด๋ฒˆ์—๋Š” ์ถ”๊ฐ€๋กœ master์— push ํ•˜๋Š” ๊ฒƒ ๋ฟ ์•„๋‹Œ, PR์— ๋Œ€ํ•ด์„œ๋„ ์ ์šฉ์„ ํ•ด๋ดค์Šต๋‹ˆ๋‹ค. uses์— ๋ฐ˜๋“œ์‹œ checkout@v1 ๊ธฐ๋ก์„ ๋„ฃ์–ด๋‘์…”์•ผ๋งŒ ๋ณ€๊ฒฝ๋œ ์‚ฌํ•ญ์„ ํ™˜๊ฒฝ์œผ๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ˜๋“œ์‹œ ์ˆ˜ํ–‰์„ ํ•˜์‹œ๊ณ , ์ง„ํ–‰ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

 

๊ทธ๋Ÿฌ๋ฉด ์ด๋ ‡๊ฒŒ Action ๋ณ„๋กœ ์‹คํ–‰๋œ ์‚ฌํ•ญ์„ ๋ณด์—ฌ์ฃผ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. Travis CI๋ฅผ ์•„๋งˆ ๋นŒ๋“œ ํ™˜๊ฒฝ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๋“ฏํ•˜๊ณ , UI ๋˜ํ•œ Travis CI์™€ ๋งค์šฐ ํก์‚ฌํ•˜๊ฒŒ ์ƒ๊ฒจ์„œ ๋ณด๊ธฐ ํŽธํ•œ ์ ๋„ ์žˆ๋„ค์š”.. 

 

Action์— ์ด๋ฆ„์„ ๋„ฃ๋Š” ๊ธฐ๋Šฅ์€ ๊ต‰์žฅํžˆ ์œ ์šฉํ•ด๋ณด์ž…๋‹ˆ๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ์— ์ด๋ฆ„์„ ๋ถ€์—ฌํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด, ์ข€ ๋” ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ๋ฅผ ํŽธํ•˜๊ฒŒ ๋ณผ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

 

๋‹ค์Œ ๊ธ€์—์„œ๋Š” Token ๋“ฑ์˜ ๋ฏผ๊ฐํ•œ ์ •๋ณด, ๋ธŒ๋žœ์น˜ ๋ณ„ ํ…Œ์ŠคํŠธ, ๋ฉ€ํ‹ฐ OS ํ™˜๊ฒฝ์—์„œ์˜ ํ…Œ์ŠคํŠธ ๋“ฑ์„ ์‚ดํŽด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•
TAGS.

Tistory Comments