프로그래밍/DevOps

[DevOps] github actions을 사용해서 CI/CD를 해보자! (4)

riroan 2023. 2. 15. 19:56

들어가기 전에

지난시간 test를 실패하게 만들어서 정상적으로 작동하지 않을 것이다. 

이를 성공하도록 만들자.

 

# test.py

def test1():
    assert 1+1 == 2

def test2():
    assert 1+2 == 3

브랜치와 폴더

지금까지 작성한 워크플로우는 아무데나 push만 하면 작동하도록 만들었다.

이번에는 브랜치별로 나눠보고, 폴더별로 나누는 옵션을 적용해보자.

 

일단 temp 브랜치를 위한 워크플로우를 만들건데 이 브랜치를 위한 워크플로우를 main 브랜치에 만든다.

# ./github/workflows/temp.yml

name: temp branch

on:
  push:
    branches:
      - temp

jobs:
  job:
    runs-on: ubuntu-latest
    steps:
      - name: echo
        run: echo "TEMP BRANCH PUSH"

그리고 이 상태로 푸시해보자.

방금 만든 워크플로우가 작동하지 않는다.

 

이제 브랜치를 만들고 테스트해보자.

git branch temp
git checkout temp

그리고 어떠한 변화를 주고 푸시해보자.

예를들면 어떤 파일을 만들어서 푸시한다.

touch hi.txt
git add .
git commit -m ""
git push

이제 정상적으로 작동한다.

 

폴더도 유사하게 가능하다.

하나의 레포지토리에 프론트, 백폴더를 몰아넣는 경우나(나같은 사람), 각 폴더마다 고유의 기능이 있을 때 유용하다.

 

일단 main브랜치로 돌아온다.

git checkout main
# .github/workflows/box.yml

name: box folder

on:
  push:
    paths:
      - 'box/**'

jobs:
  job:
    runs-on: ubuntu-latest
    steps:
      - name: echo
        run: echo "BOX FOLDER PUSH"

위 코드는 이제 box폴더 안에 있는 무엇이든 푸시하면 작동하게 한다.

mkdir box
cd box
touch hi.txt

하고 푸시하면 작동하는 것을 확인할 수 있다.

폴더는 물론 파일도 가능하다!

 

자세한 내용은 여기에서 확인할 수 있다.