【Vue】GithubActionsを使ってGAEにデプロイするまで

APIを有効にする

GCPのちらに行きappengineのAPIを有効化

GAEの初回設定

$ gcloud init
$ gcloud config set project [your project id]
$ gcloud app create

サービスアカウントのアクセスキーを取得

GAEの初回設定ができていればApp Engine default service accountが自動で作成されているはずなのでそれを使う。

[ここにアクセスキーを取得の仕方を載せる予定]

json形式のファイルがダウンロードできるはずだ

GithubActionsにシークレット環境変数をセットする

サービスアカウントのアクセスキーをエンコードする

$ base64 -i service-account-key.json

[長い文字列]

[ここに環境変数のセットの仕方を載せる予定]

  • Key: GcloudServiceKey | value: [上の長い文字列]
  • key: ProjectName | value: [Your GCP Project Name]

nodejs.yml

# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions

name: Node.js CI

on:
  push:
    branches: [ master ]

jobs:
  build:

    runs-on: ubuntu-latest

    strategy:
      matrix:
        node-version: [10.16.0]

    steps:
      - uses: actions/checkout@v2
      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v1
        with:
          node-version: ${{ matrix.node-version }}
      - name: npm install, build
        run: |
          npm install
          npm run build
        env:
          NODE_ENV: development
          VUE_APP_SERVER_ENDPOINT: http://backend-apiserver:8080
      - name: GAE deploy
        run: |
          echo ${GCLOUD_SERVICE_KEY} | base64 -d > ./service_key.json
          echo 'github-actions@${PROJECT_NAME}.iam.gserviceaccount.com' | gcloud auth activate-service-account --key-file ./service_key.json
          gcloud app deploy app.yaml --project ${PROJECT_NAME}
        env:
          CI: true
          PROJECT_NAME: ${{ secrets.ProjectName }}
          GCLOUD_SERVICE_KEY: ${{ secrets.GcloudServiceKey }}

遭遇したエラー

vue-cli-service: not found

...
> vue-cli-service build

sh: 1: vue-cli-service: not found
npm ERR! file sh
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn
...
  • 解決策
    NODE_ENVをdevelopmentにしたら治りました

これって応急処置だよな。。。

環境変数がうまく渡せない

NODE_ENV=development VUE_APP_SERVER_ENDPOINT=example.com npm run build

上だとうまく環境変数を渡せない

  • 解決策
  1. VUE_APP_から始まるようにする
  2. env:で環境変数を指定する

なおVueのコードないで環境変数を使用する時はprocess.env.VUE_APP_SERVER_ENDPOINT

ルーティングがうまくいかない

GAEにデプロイしたアプリのルーティングがうまくいかない

コメント

タイトルとURLをコピーしました