実現したいこと
結論実現したいこととしては、github secretsで定義した変数をフロント環境(フロント環境変数 呼び出し元)で呼び出したいです。
現状の状況としては、下記(ディクレクトリ構成)のようなmonorepo構成で現在CIでdevployの自動化の実装をしているところです。
詰まっているのは、モノレポ構成の際にCIからフロント側に環境変数を渡す際にどう渡すべきかというところです。
コードで言うとCI パターン1の9~11行目の箇所です。
monorepo構成なので、working-directoryでfront-endに移動して、envを定義すればうまくいくと思ったのですが、うまくいかず、、そもそもgithubのenv keyではmonorepo構成の環境変数は定義できないのでしょうか?
CI パターン2では一応成功しているのですが、touchでenvファイルを作成してベタガキしているので、ファイルとして残ってしまうので、セキュリティ的に良くない気がしているのと、.envファイルを生成してしまっているのでハードコードとあまり変わらない状態になっている気がしています。
どなたかご意見いただけたら嬉しいです
ディクレクトリ構成
├ .github - workflows - deploy.yml ├ backend ├ .env ├ front-end ├ .env ├ src- entries - Top - index.tsx
フロント環境変数 呼び出し元
src/entries/Top/index.tsx
1import * as Sentry from '@sentry/react' 2... 3 4Sentry.init({ 5 dsn: import.meta.env.VITE_SENTRY_DSN, 6}) 7...
ローカル時 .envファイル
env
1VITE_SENTRY_DSN="hogehoge"
CI パターン1
github/workflows/deploy.yml
1jobs: 2 build-and-push: 3 runs-on: ubuntu-20.04 4 5 steps: 6 - uses: actions/checkout@v1 7 ...etc 8 - name: yarn build 9 working-directory: ./front-end 10 env: 11 VITE_SENTRY_DSN: ${{ secrets.SENTRY_DSN }} 12 run: | 13 yarn build 14...etc
CI パターン2
github/workflows/deploy.yml
1jobs: 2 build-and-push: 3 runs-on: ubuntu-20.04 4 5 steps: 6 - uses: actions/checkout@v1 7 8 - name: Set up Front Environments 9 run: | 10 touch ./front-end/.env 11 echo "VITE_SENTRY_DSN=${{ secrets.SENTRY_DSN }}" >> ./front-end/.env 12...etc

0 コメント