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

Django심화강의:2주차(02)(20220215)

by August.J 2022. 2. 15.

😎 Github-action에서 데이터베이스 연결하기

 

📖 yml 파일 수정

- env: 환경변수

- mysql -e: escaping 문자열 전달 (명령어 바로 실행)

github-action에서도 실행가능하고 interactive shell을 사용할 수 없기 때문에 사용함.

더보기

name: Django CI

on:
  push:

jobs:
  ci:

    env:
      DB_DATABASE: sparta
      DB_USER: root
      DB_PASSWORD: 12345

    runs-on: ubuntu-latest
    steps:
      - name: Check out the codes
        uses: actions/checkout@v2

      - name: Set timezone to KST
        run: |
          sudo rm /etc/localtime
          sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime

      # Start Mysql
      # https://ovirium.com/blog/how-to-make-mysql-work-in-your-github-actions/
      - name: Start Mysql
        run: |
          sudo systemctl start mysql
          mysql -e "use mysql; FLUSH PRIVILEGES; ALTER USER '${{ env.DB_USER }}'@'localhost' IDENTIFIED BY '${{ env.DB_PASSWORD }}';" -uroot -proot
          mysql -e 'CREATE DATABASE ${{ env.DB_DATABASE }};' -u${{ env.DB_USER }} -p${{ env.DB_PASSWORD }}


      - name: Setup python environment
        id: setup-python
        uses: actions/setup-python@v2
        with:
          python-version: 3.9.9

      - name: Install Poetry
        run: |
          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


📖 github push

github-action에 secret기능이 있어, 중요한 데이터베이스 정보의 경우 제외되고 공개된다.

하지만 현재 데이터베이스에는 중요한 정보가 없기 때문에 굳이 secret을 사용하지 않음.

git push 후 github-action이 잘 실행되었는지 확인한다.(성공한다면 초록색 체크가 뜬다.)