Astro ì¬ì´í¸ë¥¼ GitLab Pagesì ë°°í¬íì¸ì
GitLab Pages를 ì¬ì©íì¬ GitLab íë¡ì í¸, 그룹 ëë ì¬ì©ì ê³ì ì ìí Astro ì¬ì´í¸ë¥¼ í¸ì¤í í ì ììµëë¤.
ê³µì GitLab Pages Astro ìì íë¡ì í¸ë¥¼ íì¸í´ ë³´ì¸ì!
ë°°í¬ ë°©ë²
ì¹ì ì 목: âë°°í¬ ë°©ë²âì¬ì´í¸ë¥¼ ìëì¼ë¡ ë¹ëíê³ ë°°í¬íë GitLab CI/CD를 ì¬ì©íì¬ Astro ì¬ì´í¸ë¥¼ GitLab Pagesì ë°°í¬í ì ììµëë¤. ì´ë ê² íë ¤ë©´ ìì¤ ì½ëê° GitLabìì í¸ì¤í ëì´ì¼ íë©° Astro íë¡ì í¸ì ë¤ìê³¼ ê°ì ë³ê²½ì ìíí´ì¼ í©ëë¤.
-
astro.config.mjsìsiteìbaseìµì ì ì¤ì í©ëë¤.astro.config.mjs import { defineConfig } from 'astro/config';export default defineConfig({site: 'https://<username>.gitlab.io',base: '/<my-repo>',outDir: 'public',publicDir: 'static',});sitesiteì ê°ì ë¤ì ì¤ íëì¬ì¼ í©ëë¤.- ì¬ì©ì ì´ë¦ì 기ë°ì¼ë¡ íë URL:
https://<username>.gitlab.io - 그룹 ì´ë¦ì 기ë°ì¼ë¡ íë URL:
https://<groupname>.gitlab.io - Gitlab íë¡ì í¸ ì¤ì ìì 구ì±í ê²½ì°, ì¬ì©ì ì§ì ëë©ì¸:
https://example.com
Gitlabì ìì²´ ê´ë¦¬ ì¸ì¤í´ì¤ì ê²½ì°,
gitlab.io를 ì¸ì¤í´ì¤ì Pages ëë©ì¸ì¼ë¡ ë°ê¿ëë¤.baseAstroê° ì ì¥ìì ì´ë¦ (ì:
/my-repo)ì ì¹ì¬ì´í¸ì 루í¸ë¡ ì·¨ê¸íëë¡baseê°ì ì ë ¥í´ì¼ í ì ììµëë¤.íì´ì§ê° ë£¨í¸ í´ëìì ì ê³µëë ê²½ì°
base매ê°ë³ì를 ì¤ì íì§ ë§ì¸ì.baseì ê°ì ì¬ëìë¡ ììíë ì ì¥ìì ì´ë¦ì´ì´ì¼ í©ëë¤ (ì:/my-blog). ì´ë Astroê° ì¹ì¬ì´í¸ì 루í¸ê° 기본/ê° ìë/my-repoë¼ë ê²ì ì´í´íëë¡ í기 ìí¨ì ëë¤.ì´ ê°ì´ 구ì±ëë©´ 모ë ë´ë¶ íì´ì§ ë§í¬ ìì
baseê°ì ë¶ì¬ì¼ í©ëë¤.<a href="/my-repo/about">About</a>baseê° êµ¬ì±ì ëí´ ë ìì¸í ììë³´ì¸ì. - ì¬ì©ì ì´ë¦ì 기ë°ì¼ë¡ íë URL:
-
public/ëë í°ë¦¬ì ì´ë¦ìstatic/ì¼ë¡ ë³ê²½í©ëë¤. -
astro.config.mjsììoutDir: 'public'ì ì¤ì í©ëë¤. ì´ ì¤ì ì Astroê° ì ì ë¹ë ì¶ë ¥ìpublicì´ë¼ë í´ëì ì ì¥íëë¡ ì§ìíë©°, ì´ í´ëë ë ¸ì¶ë íì¼ì ì ê·¼í기 ìí´ GitLab Pagesê° ì구íë í´ëì ëë¤.Astro íë¡ì í¸ìì ì ì íì¼ì ìì¤ë¡
public/ëë í°ë¦¬ë¥¼ ì¬ì©íê³ ììë¤ë©´ ì´ë¦ì ë°ê¾¸ê³publicDirê°ì¼ë¡astro.config.mjsì ì í´ë ì´ë¦ì ì¬ì©í©ëë¤.ì를 ë¤ì´
public/ëë í°ë¦¬ì ì´ë¦ì´static/ì¼ë¡ ë³ê²½ë ê²½ì° ì¬ë°ë¥¸astro.config.mjsì¤ì ì ë¤ìê³¼ ê°ìµëë¤.astro.config.mjs import { defineConfig } from 'astro/config';export default defineConfig({site: 'https://<user>.gitlab.io',base: '/<project-name>',outDir: 'public',publicDir: 'static',}); -
.gitignoreìì ë¹ë ì¶ë ¥ì ë³ê²½í©ëë¤. ì´ ììììëdist/를public/ì¼ë¡ ë³ê²½í´ì¼ í©ëë¤..gitignore # ë¹ë ì¶ë ¥dist/public/ -
íë¡ì í¸ ë£¨í¸ì ìë ë´ì©ì¼ë¡
.gitlab-ci.ymlì´ë¼ë íì¼ì ìì±í©ëë¤. ì´ë ê² íë©´ ì½í ì¸ ë¥¼ ë³ê²½í ëë§ë¤ ì¬ì´í¸ë¥¼ ë¹ëíê³ ë°°í¬í ì ììµëë¤..gitlab-ci.yml pages:# ì±ì ë¹ëíë ë° ì¬ì©ë Docker ì´ë¯¸ì§image: node:ltsbefore_script:- npm ciscript:# ì¬ê¸°ìì ì± ë¹ëì ê´ë ¨ë ë¨ê³ë¥¼ ì§ì íì¸ì.- npm run buildartifacts:paths:# ê²ìí기 ìí´ ë¹ëë íì¼ì´ í¬í¨ë í´ëì ëë¤.# ì´ê²ì "public"ë¼ê³ ë¶ë¬ì¼ í©ëë¤.- publiconly:# ìë ë¸ëì¹ì í¸ìê° ìë ê²½ì°ìë§ ì ë¹ë를 í¸ë¦¬ê±°íê³ ë°°í¬í©ëë¤.- main -
ë³ê²½ ì¬íì 커ë°íê³ , GitLabì í¸ìí©ëë¤.
-
Gitlabìì ì ì¥ìì Deploy ë©ë´ë¡ ì´ëíì¬ Pages를 ì íí©ëë¤. ì¬ê¸°ì GitLab Pages ì¹ì¬ì´í¸ì ì ì²´ URLì´ íìë©ëë¤.
https://username.gitlab.io/my-repoURL íìì ì¬ì©íë ¤ë©´ ì´ íì´ì§ìì Use unique domain ì¤ì ì ì í í´ì íì¸ì.
ì´ì ì¬ì´í¸ê° ê²ìëììµëë¤! Astro íë¡ì í¸ ì ì¥ìì ë³ê²½ ì¬íì í¸ìíë©´ GitLab CI/CD íì´íë¼ì¸ì´ ìëì¼ë¡ ë°°í¬í©ëë¤.