From 123b8fa627acff1bf0f873d99857bbced942075f Mon Sep 17 00:00:00 2001 From: RyosukeDTomita Date: Sun, 4 Aug 2024 14:04:41 +0900 Subject: [PATCH] fix jest error2 --- .env.stating | 1 - .github/workflows/react-jest.yaml | 19 +++++++++++++++++-- .gitignore | 1 + README.md | 16 ++++++++++++++++ doc/github-actions.md | 20 +++++++++++++++++--- update_github_actoins_variables.sh | 7 ++++--- 6 files changed, 55 insertions(+), 9 deletions(-) delete mode 100644 .env.stating diff --git a/.env.stating b/.env.stating deleted file mode 100644 index c7d2d1f..0000000 --- a/.env.stating +++ /dev/null @@ -1 +0,0 @@ -REACT_APP_MESSAGE=staging diff --git a/.github/workflows/react-jest.yaml b/.github/workflows/react-jest.yaml index 6b66409..31d9bc2 100644 --- a/.github/workflows/react-jest.yaml +++ b/.github/workflows/react-jest.yaml @@ -22,7 +22,7 @@ jobs: strategy: matrix: node_version: [20, 22] - env_type: ["dev", "stg", "prod"] + environment_type: ["development", "staging", "production"] steps: # checkout repository to runner @@ -43,4 +43,19 @@ jobs: # 3環境まとめてテスト - name: run npm test - run: github-comment exec --token ${{ secrets.token }} -- npm run test-${{ matrix.env_type }} -- --watchall=false + run: | + if [ ${{ matrix.environment_type }} = "development" ]; then + npm_type="dev" + elif [ ${{ matrix.environment_type }} = "staging" ]; then + npm_type="stg" + elif [ ${{ matrix.environment_type }} = "production" ]; then + npm_type="prod" + else + echo "invalid environment_type" + exit 1 + fi + # github actions environment variableから.envファイルを作成 + cat <> .env.${{ matrix.environment_type }} + gh variable list --env ${{ matrix.environment_type }} | awk '{print $1"="$2}' + EOF + github-comment exec --token ${{ secrets.token }} -- npm run test-$npm_type -- --watchall=false diff --git a/.gitignore b/.gitignore index 88c646a..061e554 100644 --- a/.gitignore +++ b/.gitignore @@ -17,6 +17,7 @@ .env.development .env.test.local .env.production +.env.staging npm-debug.log* yarn-debug.log* diff --git a/README.md b/README.md index a225734..c7d5bbe 100644 --- a/README.md +++ b/README.md @@ -79,6 +79,22 @@ Sample React application for Trying to Use DevSecOps tools. - Repositoryに[Environment](https://github.com/RyosukeDTomita/devsecops-demo-aws-ecs/settings/environments)を作る。 ![Environment例](./doc/fig/github-environment.png) +- ローカルに3環境分の.envファイルをを作成する。 + +```shell +# 作成 +for environment in development staging production; +do + touch .env.${environment} + echo $REACT_APP_MESSAGE=${environment} > .env.${environment} +done +``` + +- github actions enrironment variablesに登録/更新する。 + +```shell +source ./update_github_actions_variables.sh +``` ### GitHub Actionsで実行したスキャン結果をアップロードできるようにGitHubリポジトリの設定を変更する diff --git a/doc/github-actions.md b/doc/github-actions.md index d4ba638..5214f32 100644 --- a/doc/github-actions.md +++ b/doc/github-actions.md @@ -30,16 +30,18 @@ actions/setup-python@コミットハッシュ --- -## GitHub ActionsでSecretを扱う +## GitHub ActionsでSecret,variablesを扱う > GUIの場合は[公式ドキュメント](https://docs.github.com/ja/actions/security-guides/using-secrets-in-github-actions)参照。 -### 2種類のシークレット +### Secret + +#### 2種類のシークレット - Environment Secret: Environmentを作成して値を区別して使用できる。Environmentはリポジトリに対して複数作成できる。 - Repository Secret: リポジトリで共通の値を使う。 -### 使用方法(CLI) +#### 使用方法(CLI) > [GitHub CLIでリポジトリへsecretを設定する方法](https://zenn.dev/hankei6km/articles/set-secret-to-repo-with-githubcli) > [GitHub ActionsでEnvironment Secretを扱うサンプル](https://qiita.com/ak2ie/items/4fbcdf74e7760c49c1af) @@ -66,6 +68,18 @@ jobs: echo ${{ secrets.API_TOKEN }} ``` +### variables +- 基本はsecretと同じでenvironment variablesとrepository variablesがある。 +- secretと異なり,値を確認することができる。 + +#### 使用例 + +```shell +environment=development +gh variable set --env $environment --env-file .env.$environment +gh variable list --env $environment +``` + --- ## path filterを使って特定のファイル変更時のみCIを走らせる diff --git a/update_github_actoins_variables.sh b/update_github_actoins_variables.sh index 79b8173..94f0928 100644 --- a/update_github_actoins_variables.sh +++ b/update_github_actoins_variables.sh @@ -1,6 +1,7 @@ #!/bin/bash -for env in "development" "staging" "production"; +for environment in "development" "staging" "production"; do - echo $env - gh + echo $environment + gh variable set --env $environment --env-file .env.$environment + gh variable list --env $environment done