nuxtをgithub actionsでnetlifyに自動デプロイする
netlifyはgitと連携しておけば勝手にビルド&デプロイをしてくれるのでめちゃくちゃ楽なんだけど、無料プランではビルド時間が月300分までとなっている。
これを回避するためにgithub actionsを使ってgithub側でビルドしてあげよう。という作戦。
何よりも最初に注意しておくべきなのは、1度gitと連携してしまうと勝手にビルドする設定になってしまうこと。
自動ビルドを停止することはできるけど、それをやるとデプロイまで停止される。
そのためこの方法を取るときは、gitとは連携せずに、ファイルをドラッグアンドドロップで追加することでサイトを追加する方法を取る必要がある。
(運営に連絡したら連携済みのgitとの連携を解除してくれるみたいだけど)
設定
githubとnetlifyの設定はぐぐったらわかると思うので割愛します。
トークンとサイトIDの設定だけしておいてください。
【参考】
https://qiita.com/nwtgck/items/e9a355c2ccb03d8e8eb0
あとは.github/workflow.deploy.ymlを追加するだけ。
ここで注意したいのはnetlify/actions/cliの部分で--prodを使うこと。
これはぐぐってもよくわからなかったけど、--prodをつけないとnetlifyのデプロイがDeploy Previewになってしまい、publishedにならない。
このせいで結構困ったけど、--prodをつけたらちゃんと自動でデプロイしてくれた。
name: production deploy
on:
push:
branches:
- master
jobs:
deploy:
runs-on: ubuntu-18.04
env:
GITHUB_TOKEN: ${{ secrets.GIT_TOKEN_COVID19 }}
steps:
- uses: actions/checkout@v2
with:
ref: master
- name: Setup Node
uses: actions/setup-node@v1
with:
node-version: '10.x'
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Cache dependencies
uses: actions/cache@v2
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- run: yarn install --frozen-lockfile
- run: yarn run test
- name: generate
run: |
yarn run generate:deploy --fail-on-page-error
- name: Deploy
uses: netlify/actions/cli@master
with:
args: deploy --dir=dist --prod
env:
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
NETLIFY_AUTH_TOKEN: ${{ secrets.GIT_TOKEN_COVID19 }}
補足 --prod問題
公開されるデプロイには緑のpublishedというマークがつくが、gitにpushしてもnetlify上ではDeploy Previewというデプロイが表示されるだけで、publishedにならない。
ymlファイルのnetlify/actions/cliの部分で--prodをつけたら解決した。
ぐぐってもよくわからなかったけど、--prodはproductionの略なのかな?
Author And Source
この問題について(nuxtをgithub actionsでnetlifyに自動デプロイする), 我々は、より多くの情報をここで見つけました https://qiita.com/banzyyy/items/3918152f15dd0901f0ba著者帰属:元の著者の情報は、元の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 .