github.io ๋ธ๋ก๊ทธ์ ๊ธ์ ์์ฑํ๊ณ ๋งค๋ฒ ์ปค๋ฐ ํ์ ์ง์ ๋ฐฐํฌํด์ผ ํ๋ ๊ฒ ๋ฒ๊ฑฐ๋ก์ธ ๊ฒ ๊ฐ์์ ์๋์ผ๋ก ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ์ฐพ์๋ดค๋ค.
์๋ ๋ฐฐํฌ ๋ฐฉ๋ฒ์ Gatsby Publish๋ฅผ ์ฌ์ฉํด์ GitHub Actions๋ฅผ ์์ฑํ๋ฉด ๋๋ค!
GitHub Actions ์ ์ฉํ๊ธฐ
GitHub Action์ผ๋ก ๋ฐฐํฌ ์๋ํ์์ 'GitHub Action์ผ๋ก ๋ฐฐํฌ ์๋ํ' ๋ถ๋ถ์ ์ฐธ๊ณ ํ๋ค.
์ ์ฉ ๊ณผ์
1) ๊นํ๋ธ Settings / Developer settings / Personal access tokens์์ ํ ํฐ ์์ฑ
2) github.io ์ ์ฅ์ Settings / Secrets / Actions secrets์ ์์ฑํ ํ ํฐ์ DEPLOY_TOKEN
์ด๋ผ๋ ์ด๋ฆ์ผ๋ก ์ถ๊ฐ
3) github.io ์ ์ฅ์ Settings / Actions / General ์์ Actions permissions ์ค์ -> Allow all actions and reusable workflows ์ ํ
4) github.io ์ ์ฅ์์ root ํด๋์ .github/workflows/[ํ์ผ๋ช
].yml
ํ์ผ ์์ฑ
๋๋ deploy.yml
์ด๋ผ๋ ์ด๋ฆ์ผ๋ก ์์ฑํ๊ณ , ์์ฑํ ์ฝ๋๋ ์๋์ ๊ฐ๋ค.
name: Gatsby Publish
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: enriikke/gatsby-gh-pages-action@v2
with:
access-token: ${{ secrets.DEPLOY_TOKEN }}
deploy-branch: gh-pages
Gatsby Publish์ ๊ธฐ๋ณธ ์ฝ๋๋ Gatsby Publish ๋ฅผ ์ฐธ๊ณ ํ๋ฉด ๋๋ค.
- ๊ธฐ๋ณธ ์ฝ๋์์ ์์ ํ ๋ถ๋ถ
branches: - main
: main ๋ธ๋์น์ ๊ธ์ ์ปค๋ฐํ ๊ฑฐ๋ผ์ main์ผ๋ก ๋ณ๊ฒฝ
uses: actions/checkout@v3
: checkout ๋ฒ์ ์ 3์ผ๋ก ๋ณ๊ฒฝ
access-token: ${{ secrets.DEPLOY_TOKEN }}
: ํ ํฐ ์ด๋ฆ ๋ณ๊ฒฝ (๋ณ๊ฒฝ ์ํด๋ ์๊ด x)
deploy-branch: gh-pages
: ๋น๋ ํ์ผ์ ๊ธฐ๋ณธ ๋ธ๋์น๊ฐ ์๋ gh-pages ๋ธ๋์น์ ์
๋ก๋
main ๋ธ๋์น์ pushํ ๋๋ง๋ค access-token์ ์ด์ฉํด์ gh-pages ๋ธ๋์น์ gatsby-gh-pages-action ์คํ
์ด๋ผ๋ ๋ป!
(gh-pages ๋ธ๋์น์ ๋ฐฐํฌํ๊ธฐ๋ก ์ค์ ํ์ผ๋ github.io ์ ์ฅ์ Settings / Pages ์ ‘gh-pages’ ๋ธ๋์น๋ก ์ ํ๋์ด ์์ด์ผ ํจ)
๋ชจ๋ ์ค์ ์ด ์๋ฃ๋๋ฉด ์ด์ ๋ถํฐ main ๋ธ๋์น์ ์ปค๋ฐํ ๋๋ง๋ค ์๋์ผ๋ก github.io์ ๋ฐฐํฌ๋๋ค.
GitHub Action์ด ์๋ฃ๋๊ธฐ๊น์ง ์๊ฐ์ด ์ด์ง ๊ฑธ๋ฆผ..!
์ฌ๊ธฐ๊น์ง๋ ๋ฌธ์ ์์ด ์ ๋ฐ๋ผํ๋๋ฐ ์ฒ์์ Actions permissions ์ค์ ์ ์๋ชปํด์ ๊ณ์ ์๋ฌ๊ฐ ๋ฌ๋ค.
์์ ์์ฑํ ๋๋ก Actions permissions ์ค์ ์ Allow all actions and reusable workflows ๋ก ์ ํํ๋๋ ๋ฌธ์ ์์ด ์ ์ํ๋๋ค.
๋ฐฐํฌ ์ฑ๊ณต ๊ธฐ๋
์ท โ๏ธ