본문 바로가기
💻 개발블로그/django

Django심화강의:1주차(8)(20220211)

by August.J 2022. 2. 12.

😎 iGithub Action 으로 push 할 때 마다 테스트하기

CI (Continuous Integration)

 

# Github연결하기

github 레포지토리에 내 프로젝트를 연결한다. (git명령어 사용해서 연결, git명령어 참고)

 

# 프로젝트 폴더에 디렉토리 추가

- 프로젝트폴더안에 .github 디렉토리 생성

- .github폴더안에 workflows 디렉토리 생성

- workflows폴더안에 ci.yml 또는 ci.yaml 파일 생성

- ci.yml 안에 코드 붙여넣기 (강의에서는 정렬이 제대로 되어있지 않았다.😢)

더보기
name: Django CI


on:  #action실행이 언제 되는지 정의(push할 때마다)
  push:

jobs:  #workflows는 여러개의 job으로 구성/이번 프로젝트는 ci(id)라는 job만 상용
  ci:
    runs-on: ubuntu-latest  #job이 실행되는 machine(githib이 제공하는 최신버전 ubuntu사용)
    steps:  #하나의 job은 여러step으로 구성, 명령을 실행하거나 다른 action을 실행
      - name: Check out the codes  #코드체크
        uses: actions/checkout@v2

      - name: Setup python environment #파이썬설치
        id: setup-python
        uses: actions/setup-python@v2  #실행할 action 가르킴
        with:  #action에 전달할 parameter
          python-version: 3.9.9

      - name: Install Poetry  #poetry설치
        run: |  #실행할 명령어 / '|'파이프라인사용으로 value가 여러줄임을 의미
          curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python
          echo "${HOME}/.poetry/bin" >> $GITHUB_PATH

      - name: Install dependencies  #종속성 장고,장고닌자등을 설치
        run: |
          ${HOME}/.poetry/bin/poetry install

      - name: Test python project  #테스트실행
        run: |
          poetry run python manage.py test

(mypy, black, isort 등은 제외, 코드 포매팅 같은 것들은 커밋을 하지 않으므로)

 

# github action 사용하기

- 파이참에서 파일을 저장하고 모든파일을 push한다.

- github에서 action탭을 누르면 action이 활성화됨을 볼 수 있다.

github action을 누르면 진행상황을 볼 수 있고, complete job이 되고 초록색 버튼으로 바뀌면 성공, 빨간색 버튼은 실패

진행상황에서 테스트를 눌러보면 테스트가 통과됨을 볼 수 있다.