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
の2つを設定する
⑤いざデプロイ!(masterブランチに直接pushしたり、マージする)
⑥結果
キャッシュを活用しているので、ストレスのない速度でビルドされる。
自分が参加してるプロジェクトは割とボリュームのあるnuxtアプリだったが、最初は7分、キャッシュ後(2回目以降)は2分程度で終了した。
Author And Source
この問題について(GitLab CI + Nuxt.js + S3で自動デプロイ), 我々は、より多くの情報をここで見つけました https://qiita.com/rente_21/items/e057b84ef9c619c8c7d2著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .