Lightsail로 Django DRF https 배포하기 - 2. Github Actions ci/cd 연결

2024. 4. 25. 21:52·공부/Django

1. 프로젝트 루트 디렉토리에 .github/workflows/main.yml 파일 생성

### [main.yml]

name: Django CI/CD

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: 체크아웃 레포지토리
        uses: actions/checkout@v3

      - name: 파이썬 설정
        uses: actions/setup-python@v3
        with:
          python-version: '3.11'

      - name: 의존성 설치
        run: |
          pip install --upgrade pip
          pip install -r requirements.txt
          
      - name: 서버 배포
        uses: appleboy/ssh-action@master
        with:
          host: ${{ secrets.SERVER_HOST }}
          username: ${{ secrets.SERVER_USER }}
          key: ${{ secrets.SERVER_SSH_KEY }}
          script: |
            set -e
            cd /home/ubuntu/dalim_api
            git pull origin main
            
            echo "DJANGO_SECRET_KEY=\"${{ secrets.SECRET_KEY }}\"" > .env
            echo "DJANGO_DEBUG='${{ secrets.DEBUG }}'" >> .env
            '''
            # settings.py 아래와 같이 작성되어 있음. 본인 프로젝트에 맞게 적용 필요함.
            SECRET_KEY = os.environ.get('DJANGO_SECRET_KEY')
            DEBUG = os.environ.get('DJANGO_DEBUG')
            '''
            
            source venv/bin/activate

            pip install -r requirements.txt
            cd /home/ubuntu/dalim_api # 본인 프로젝트에 맞게 적용 필요
            
            python3 manage.py collectstatic --noinput
            sudo systemctl restart site.service

 

 

2. 해당 repo의 settings에서 Actions secrets and variables 등록

lightsail

- DEBUG : True/False

- SECRET_KEY : 장고의 SECRET_KEY

- SERVER_HOST : lightsail의 퍼블릭 IPv4

- SERVER_USER : 인스턴스 사용자 이름 (ubuntu)

- SERVER_SSH_KEY : ssh키 다운받은 pem키 내용 복붙 (-----BEGIN RSA PRIVATE KEY-----...-----END RSA PRIVATE KEY-----)

 

 

3. 해당 repo의 actions 탭에서 액션 확인

 

배포 되지 않을 경우 로그 확인해서 원인 찾아가며 수정. (위의 경우 SECRET_KEY가 제대로 들어가지 않은 것이 원인)

'공부 > Django' 카테고리의 다른 글

Lightsail로 Django DRF https 배포하기 - 3. ssl 인증서, 무료도메인 발급  (3) 2024.04.27
Lightsail로 Django DRF https 배포하기 - 1. 서버세팅  (1) 2024.04.25
CBV로 블로그 CRUD 예제  (1) 2024.02.27
CBV로 Django auth 구현  (0) 2024.02.27
forms.py 이용해 웹 페이지에서 CRUD하기  (0) 2024.02.26
'공부/Django' 카테고리의 다른 글
  • Lightsail로 Django DRF https 배포하기 - 3. ssl 인증서, 무료도메인 발급
  • Lightsail로 Django DRF https 배포하기 - 1. 서버세팅
  • CBV로 블로그 CRUD 예제
  • CBV로 Django auth 구현
김고사리/
김고사리/
<bracken/>김고사리/ 님의 블로그입니다.
김고사리/
<bracken/>
김고사리/
전체
오늘
어제
  • 분류 전체보기 (23)
    • 개발얘기 (3)
    • 공부 (17)
      • Django (8)
      • 코테 (4)
      • GPT와의 대화 (5)
    • etc (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

태그

  • 오름캠프
  • 백엔드
  • 모두의연구소
  • 위니브
  • 오름캠프백엔드
  • 제주코딩베이스캠프

최근 글

hELLO· Designed By정상우.v4.5.2
김고사리/
Lightsail로 Django DRF https 배포하기 - 2. Github Actions ci/cd 연결
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.