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
上だとうまく環境変数を渡せない
- 解決策
- VUE_APP_から始まるようにする
- env:で環境変数を指定する
なおVueのコードないで環境変数を使用する時はprocess.env.VUE_APP_SERVER_ENDPOINT
コメント