monorepo環境でgithub secretsで定義した値を環境変数にセットする方法がわからない

実現したいこと

結論実現したいこととしては、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 コメント