GitLab CI+Nuxt.js+S3에서 자동 배포
전제
· Nuxt.js 프로젝트를 GitLab에서 관리합니다.
절차
① 루트 디렉토리에 .gitlab-ci.yml 만들기
② 써 간다(코멘트로 해설)
.gitlab-ci.yml
# 実行される順番 各jobにてstage:でネーミング
stages:
- build
- deploy
# ビルド
build:
image: node:latest # node最新版
stage: build # ステージ名
only:
- master # masterブランチで発動
cache:
paths:
- node_modules/ # キャッシュ 別フォルダにnuxtアプリがある際はnuxtApp/node_modules/のように記載する
script:
- yarn install # 依存関係のインストール
- yarn generate # ビルド
artifacts:
paths:
- ./dist # distフォルダを次の世代に引き継ぐ これもnuxtアプリが別フォルダにある際は./nuxtApp/distのように記載する
# S3にアップロード
deploy:
image: python:latest # python最新版
stage: deploy # ステージ名
only:
- master # masterブランチで発動
script:
- pip install awscli # awscliの導入
- aws s3 sync ./dist s3://your-s3-bucket-name # 引き継がれたdistフォルダをs3にアップ これもnuxtアプリが別フォルダにある際は./nuxtApp/distのように記載する
③S3 권한이 있는 IAM 사용자 생성
AWS 콘솔에서 IAM으로 이동하여 사용자를 생성합니다.
"기존 정책 첨부"에서 "S3 FullAccess"를 선택합니다.
최종 화면에서 인증 정보가 나오므로 삼가한다.
④ 인증정보를 GitLab로 설정
GitLab 콘솔에서 Settings>CI/CD>Variables로 이동합니다.
여기에서
· AWS_ACCESS_KEY_ID
· AWS_SECRET_ACCESS_KEY
두 가지 설정
⑤ 막상 배포! (master 브랜치에 직접 push하거나 병합)
⑥ 결과
캐시를 활용하고 있으므로 스트레스 없는 속도로 빌드된다.
자신이 참가하고 있는 프로젝트는 비교적 볼륨이 있는 nuxt 앱이었지만, 처음은 7분, 캐쉬 후(2회째 이후)는 2분 정도로 종료했다.
Reference
이 문제에 관하여(GitLab CI+Nuxt.js+S3에서 자동 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/rente_21/items/e057b84ef9c619c8c7d2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)