왜 하는거지?
Fly.io에 배포된 express로 만든 Todo Crud API코드들과
내 깃허브에 배포된 코드들이 다를수도있음!
실제로 fly deploy를 통해 fly.io에 내 todo crud 코드들을 이미지로 압축해서 압축된 이미지가 fly.io에 올라간거고
깃허브에는 자주적으로 git push를 해주면서 따로 업데이트를 해줘야됨
그러면 그냥 Github 에다가 push 햇을때 자동적으로 도커파일을 이미지로 빌드해서 fly.io에 넘겨 배포되도록 하면 되지않을까?
이런것을 CI/CD라고 부른다고 한다.
즉 하나의 파이프라인을 구축해서 push만 하면 fly.io에 자동적으로 배포된다!
.github/workflows
내가만들어둔 백엔드코드가있는 디렉터리로 들어가서
.github/workflows 라는폴더를 만든다 (. 은 숨김파일을 의미)
deploy.yml
해당 폴더안에 deploy.yml이라는 파일을 만들어준뒤 다음과같이 작성
name: Fly Deploy
on:
push:
branches: [main]
paths:
- "**.js"
- "package.json"
- ".github/workflows/deploy.yml"
- fly.toml
- Dockerfile
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
# Setup Node.js environment
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: "16" # Set this to your Node.js version
- uses: superfly/flyctl-actions/setup-flyctl@master
- run: flyctl deploy --remote-only
env:
FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }}
코드 설명
paths 안의 경로안의 파일들에서 수정사항이 일어낫을때 브랜치명이 main이라면 인지한다.
만약 본인 브랜치가 master면 master로 해줘야됨
on:
push:
branches: [main]
paths:
- "**.js"
- "package.json"
- ".github/workflows/deploy.yml"
- fly.toml
- Dockerfile
수정 사항이 일어난다면 git hub 자체의 리눅스서버에서 자동적으로 배포해준다.
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
# Setup Node.js environment
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: "16" # Set this to your Node.js version
- uses: superfly/flyctl-actions/setup-flyctl@master
- run: flyctl deploy --remote-only
env:
FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }}
secrets.FLY_API_TOKEN
시크릿키를 따로 발급을 받아줘야한다.
fly.io에서
백엔드 프로젝트가 존재하는 github 레포로들어가 setting 아래로 스크롤을 내려보면 다음과같은 Actions이라는 것을 찾을수 있다.
이젠 push일어날때마다 github action 일어나는것 확인가능
참조영상
https://youtu.be/Hgjl1-K3D_U?si=6i46JMZ4x2g2FfNe
'full stack mysql, node js express,react' 카테고리의 다른 글
JS FULL STACK 14장 팀프로젝트 회고 (1) | 2024.02.06 |
---|---|
JS FULL STACK 12장 Todo app 완성 Vercel로 프론트 서비스 배포해보기 (0) | 2024.02.06 |
JS FULL STACK 11장 Todo 회원가입/로그인 API 추가하기 jsonwebtoken 라이브러리 (1) | 2024.02.06 |
JS FULL STACK 10장 React로 Todo앱/회원 만들기 (1) | 2024.01.23 |
JS FULL STACK 9-2장 , fly.io mysql -> postgressql (2) | 2024.01.22 |