Go语言 通过GithubActions启用Bigtable Emulator

h6my8fg2  于 2023-08-01  发布在  Go
关注(0)|答案(1)|浏览(70)

我正在尝试为我的系统运行集成测试。
为了运行测试,我使用GitHub操作CI/CD,它在PR上运行测试
我已尝试将其添加到我的测试运行程序中

- name: install and run gcloud
        run: |
          curl -s https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-410.0.0-linux-x86_64.tar.gz --output /tmp/google-cloud-sdk.tar.gz
          cd /tmp && tar xzf google-cloud-sdk.tar.gz
          ./google-cloud-sdk/install.sh --quiet
          ./google-cloud-sdk/bin/gcloud --quiet beta emulators bigtable start  --project=google_cloud_tests &
      - name: Set Git credentials
        env:
          TOKEN: ${{ secrets.gh-bot-token }}
        run: |
          make gh-actions-git-creds
      - name: Start services
        env:
          PGHOST: localhost
          PGUSER: postgres
          PGPASSWORD: development
        run: |
          make docker-init
      - name: Update DB seeds
        run: |
          make update-db-seeds
      - name: Install testmo cli
        run: make install-testmo
      - name: Add github configs to testmo
        run: make testmo-send-config
      - name: Run tests
        run: make ${{ inputs.task }}
        env:
          GOTESTSUM_JUNITFILE: tests_results.xml
          GOOGLE_CLOUD_PROJECT_ID: google_cloud_tests
          GOOGLE_PROJECT_ID: google_cloud_tests
          INSTANCE_ID: google_cloud_tests
          BIGTABLE_EMULATOR_HOST: localhost:8086

字符串
但我还是收到了这期

{"l":"error","a":"tests","t":"2023-07-07T16:47:51Z","m":"Got a APIError on 'PUT /api/user/2450001108/notes' create bigtable client: failed to initialize client: dialing: google: could not find default credentials. See https://developers.google.com/accounts/docs/application-default-credentials for more information. "}


因此,在测试环境中,我不确定是否应该设置这些变量,或者是否应该由模拟器自动设置。
我该如何着手解决这个问题?
我在上面提供的tests.yaml中添加了配置。尝试导出一些变量作为一个步骤。但好像不管用。我正在尝试使用GoLang Bigtable客户端。

6psbrbz9

6psbrbz91#

您能否提供有关项目结构的更多信息,包括GoLang Bigtable客户端初始化的代码,以及任何其他相关细节,以帮助我们进一步诊断问题?
同时,您可以尝试执行以下步骤来解决问题:
1.从Google Cloud Console生成服务帐户密钥
1.在GitHub Actions工作流中,设置身份验证所需的环境变量。将环境变量设置为服务帐户密钥文件的路径。

name: Set Google Cloud credentials
run: |
  echo "${{ secrets.GOOGLE_APPLICATION_CREDENTIALS }}" > $HOME/gcloud.json
  echo "GOOGLE_APPLICATION_CREDENTIALS=$HOME/gcloud.json" >> $GITHUB_ENV

字符串
1.在测试中使用环境变量。导出测试会话的环境变量,确保GoLang Bigtable客户端可以找到GOOGLE_APPLICATION_CREDENTIALS中指定的凭据。

相关问题