diff --git a/.drone.yml b/.drone.yml index 481626b75a4..0a5684f362d 100644 --- a/.drone.yml +++ b/.drone.yml @@ -250,6 +250,34 @@ steps: volumes: - name: cypress_cache path: /root/.cache/Cypress +- commands: + - apt-get update + - apt-get install -yq zip + - ls -lah ./e2e + - find ./e2e -type f -name "*.mp4" + - printenv GCP_GRAFANA_UPLOAD_ARTIFACTS_KEY > /tmp/gcpkey_upload_artifacts.json + - gcloud auth activate-service-account --key-file=/tmp/gcpkey_upload_artifacts.json + - find ./e2e -type f -name "*spec.ts.mp4" | zip e2e/videos.zip -@ + - gsutil cp e2e/videos.zip gs://$${E2E_TEST_ARTIFACTS_BUCKET}/${DRONE_BUILD_NUMBER}/artifacts/videos/videos.zip + - export E2E_ARTIFACTS_VIDEO_ZIP=https://storage.googleapis.com/$${E2E_TEST_ARTIFACTS_BUCKET}/${DRONE_BUILD_NUMBER}/artifacts/videos/videos.zip + - 'echo "E2E Test artifacts uploaded to: $${E2E_ARTIFACTS_VIDEO_ZIP}"' + - 'curl -X POST https://api.github.com/repos/${DRONE_REPO}/statuses/${DRONE_COMMIT_SHA} + -H "Authorization: token $${GITHUB_TOKEN}" -d "{\"state\":\"success\",\"target_url\":\"$${E2E_ARTIFACTS_VIDEO_ZIP}\", + \"description\": \"Click on the details to download e2e recording videos\", \"context\": + \"e2e_artifacts\"}"' + depends_on: + - end-to-end-tests-dashboards-suite + - end-to-end-tests-panels-suite + - end-to-end-tests-smoke-tests-suite + - end-to-end-tests-various-suite + environment: + E2E_TEST_ARTIFACTS_BUCKET: releng-pipeline-artifacts-dev + GCP_GRAFANA_UPLOAD_ARTIFACTS_KEY: + from_secret: gcp_upload_artifacts_key + GITHUB_TOKEN: + from_secret: github_token + image: google/cloud-sdk:367.0.0 + name: e2e_tests_artifacts_upload - commands: - yarn storybook:build - ./bin/grabpl verify-storybook @@ -681,6 +709,34 @@ steps: volumes: - name: cypress_cache path: /root/.cache/Cypress +- commands: + - apt-get update + - apt-get install -yq zip + - ls -lah ./e2e + - find ./e2e -type f -name "*.mp4" + - printenv GCP_GRAFANA_UPLOAD_ARTIFACTS_KEY > /tmp/gcpkey_upload_artifacts.json + - gcloud auth activate-service-account --key-file=/tmp/gcpkey_upload_artifacts.json + - find ./e2e -type f -name "*spec.ts.mp4" | zip e2e/videos.zip -@ + - gsutil cp e2e/videos.zip gs://$${E2E_TEST_ARTIFACTS_BUCKET}/${DRONE_BUILD_NUMBER}/artifacts/videos/videos.zip + - export E2E_ARTIFACTS_VIDEO_ZIP=https://storage.googleapis.com/$${E2E_TEST_ARTIFACTS_BUCKET}/${DRONE_BUILD_NUMBER}/artifacts/videos/videos.zip + - 'echo "E2E Test artifacts uploaded to: $${E2E_ARTIFACTS_VIDEO_ZIP}"' + - 'curl -X POST https://api.github.com/repos/${DRONE_REPO}/statuses/${DRONE_COMMIT_SHA} + -H "Authorization: token $${GITHUB_TOKEN}" -d "{\"state\":\"success\",\"target_url\":\"$${E2E_ARTIFACTS_VIDEO_ZIP}\", + \"description\": \"Click on the details to download e2e recording videos\", \"context\": + \"e2e_artifacts\"}"' + depends_on: + - end-to-end-tests-dashboards-suite + - end-to-end-tests-panels-suite + - end-to-end-tests-smoke-tests-suite + - end-to-end-tests-various-suite + environment: + E2E_TEST_ARTIFACTS_BUCKET: releng-pipeline-artifacts-dev + GCP_GRAFANA_UPLOAD_ARTIFACTS_KEY: + from_secret: gcp_upload_artifacts_key + GITHUB_TOKEN: + from_secret: github_token + image: google/cloud-sdk:367.0.0 + name: e2e_tests_artifacts_upload - commands: - yarn storybook:build - ./bin/grabpl verify-storybook @@ -1364,6 +1420,34 @@ steps: volumes: - name: cypress_cache path: /root/.cache/Cypress +- commands: + - apt-get update + - apt-get install -yq zip + - ls -lah ./e2e + - find ./e2e -type f -name "*.mp4" + - printenv GCP_GRAFANA_UPLOAD_ARTIFACTS_KEY > /tmp/gcpkey_upload_artifacts.json + - gcloud auth activate-service-account --key-file=/tmp/gcpkey_upload_artifacts.json + - find ./e2e -type f -name "*spec.ts.mp4" | zip e2e/videos.zip -@ + - gsutil cp e2e/videos.zip gs://$${E2E_TEST_ARTIFACTS_BUCKET}/${DRONE_BUILD_NUMBER}/artifacts/videos/videos.zip + - export E2E_ARTIFACTS_VIDEO_ZIP=https://storage.googleapis.com/$${E2E_TEST_ARTIFACTS_BUCKET}/${DRONE_BUILD_NUMBER}/artifacts/videos/videos.zip + - 'echo "E2E Test artifacts uploaded to: $${E2E_ARTIFACTS_VIDEO_ZIP}"' + - 'curl -X POST https://api.github.com/repos/${DRONE_REPO}/statuses/${DRONE_COMMIT_SHA} + -H "Authorization: token $${GITHUB_TOKEN}" -d "{\"state\":\"success\",\"target_url\":\"$${E2E_ARTIFACTS_VIDEO_ZIP}\", + \"description\": \"Click on the details to download e2e recording videos\", \"context\": + \"e2e_artifacts\"}"' + depends_on: + - end-to-end-tests-dashboards-suite + - end-to-end-tests-panels-suite + - end-to-end-tests-smoke-tests-suite + - end-to-end-tests-various-suite + environment: + E2E_TEST_ARTIFACTS_BUCKET: releng-pipeline-artifacts-dev + GCP_GRAFANA_UPLOAD_ARTIFACTS_KEY: + from_secret: gcp_upload_artifacts_key + GITHUB_TOKEN: + from_secret: github_token + image: google/cloud-sdk:367.0.0 + name: e2e_tests_artifacts_upload - commands: - ls dist/*.tar.gz* - cp dist/*.tar.gz* packaging/docker/ @@ -1885,6 +1969,34 @@ steps: volumes: - name: cypress_cache path: /root/.cache/Cypress +- commands: + - apt-get update + - apt-get install -yq zip + - ls -lah ./e2e + - find ./e2e -type f -name "*.mp4" + - printenv GCP_GRAFANA_UPLOAD_ARTIFACTS_KEY > /tmp/gcpkey_upload_artifacts.json + - gcloud auth activate-service-account --key-file=/tmp/gcpkey_upload_artifacts.json + - find ./e2e -type f -name "*spec.ts.mp4" | zip e2e/videos.zip -@ + - gsutil cp e2e/videos.zip gs://$${E2E_TEST_ARTIFACTS_BUCKET}/${DRONE_BUILD_NUMBER}/artifacts/videos/videos.zip + - export E2E_ARTIFACTS_VIDEO_ZIP=https://storage.googleapis.com/$${E2E_TEST_ARTIFACTS_BUCKET}/${DRONE_BUILD_NUMBER}/artifacts/videos/videos.zip + - 'echo "E2E Test artifacts uploaded to: $${E2E_ARTIFACTS_VIDEO_ZIP}"' + - 'curl -X POST https://api.github.com/repos/${DRONE_REPO}/statuses/${DRONE_COMMIT_SHA} + -H "Authorization: token $${GITHUB_TOKEN}" -d "{\"state\":\"success\",\"target_url\":\"$${E2E_ARTIFACTS_VIDEO_ZIP}\", + \"description\": \"Click on the details to download e2e recording videos\", \"context\": + \"e2e_artifacts\"}"' + depends_on: + - end-to-end-tests-dashboards-suite + - end-to-end-tests-panels-suite + - end-to-end-tests-smoke-tests-suite + - end-to-end-tests-various-suite + environment: + E2E_TEST_ARTIFACTS_BUCKET: releng-pipeline-artifacts-dev + GCP_GRAFANA_UPLOAD_ARTIFACTS_KEY: + from_secret: gcp_upload_artifacts_key + GITHUB_TOKEN: + from_secret: github_token + image: google/cloud-sdk:367.0.0 + name: e2e_tests_artifacts_upload - commands: - ls dist/*.tar.gz* - cp dist/*.tar.gz* packaging/docker/ @@ -2382,6 +2494,34 @@ steps: volumes: - name: cypress_cache path: /root/.cache/Cypress +- commands: + - apt-get update + - apt-get install -yq zip + - ls -lah ./e2e + - find ./e2e -type f -name "*.mp4" + - printenv GCP_GRAFANA_UPLOAD_ARTIFACTS_KEY > /tmp/gcpkey_upload_artifacts.json + - gcloud auth activate-service-account --key-file=/tmp/gcpkey_upload_artifacts.json + - find ./e2e -type f -name "*spec.ts.mp4" | zip e2e/videos.zip -@ + - gsutil cp e2e/videos.zip gs://$${E2E_TEST_ARTIFACTS_BUCKET}/${DRONE_BUILD_NUMBER}/artifacts/videos/videos.zip + - export E2E_ARTIFACTS_VIDEO_ZIP=https://storage.googleapis.com/$${E2E_TEST_ARTIFACTS_BUCKET}/${DRONE_BUILD_NUMBER}/artifacts/videos/videos.zip + - 'echo "E2E Test artifacts uploaded to: $${E2E_ARTIFACTS_VIDEO_ZIP}"' + - 'curl -X POST https://api.github.com/repos/${DRONE_REPO}/statuses/${DRONE_COMMIT_SHA} + -H "Authorization: token $${GITHUB_TOKEN}" -d "{\"state\":\"success\",\"target_url\":\"$${E2E_ARTIFACTS_VIDEO_ZIP}\", + \"description\": \"Click on the details to download e2e recording videos\", \"context\": + \"e2e_artifacts\"}"' + depends_on: + - end-to-end-tests-dashboards-suite + - end-to-end-tests-panels-suite + - end-to-end-tests-smoke-tests-suite + - end-to-end-tests-various-suite + environment: + E2E_TEST_ARTIFACTS_BUCKET: releng-pipeline-artifacts-dev + GCP_GRAFANA_UPLOAD_ARTIFACTS_KEY: + from_secret: gcp_upload_artifacts_key + GITHUB_TOKEN: + from_secret: github_token + image: google/cloud-sdk:367.0.0 + name: e2e_tests_artifacts_upload - commands: - ls dist/*.tar.gz* - cp dist/*.tar.gz* packaging/docker/ @@ -2877,6 +3017,34 @@ steps: volumes: - name: cypress_cache path: /root/.cache/Cypress +- commands: + - apt-get update + - apt-get install -yq zip + - ls -lah ./e2e + - find ./e2e -type f -name "*.mp4" + - printenv GCP_GRAFANA_UPLOAD_ARTIFACTS_KEY > /tmp/gcpkey_upload_artifacts.json + - gcloud auth activate-service-account --key-file=/tmp/gcpkey_upload_artifacts.json + - find ./e2e -type f -name "*spec.ts.mp4" | zip e2e/videos.zip -@ + - gsutil cp e2e/videos.zip gs://$${E2E_TEST_ARTIFACTS_BUCKET}/${DRONE_BUILD_NUMBER}/artifacts/videos/videos.zip + - export E2E_ARTIFACTS_VIDEO_ZIP=https://storage.googleapis.com/$${E2E_TEST_ARTIFACTS_BUCKET}/${DRONE_BUILD_NUMBER}/artifacts/videos/videos.zip + - 'echo "E2E Test artifacts uploaded to: $${E2E_ARTIFACTS_VIDEO_ZIP}"' + - 'curl -X POST https://api.github.com/repos/${DRONE_REPO}/statuses/${DRONE_COMMIT_SHA} + -H "Authorization: token $${GITHUB_TOKEN}" -d "{\"state\":\"success\",\"target_url\":\"$${E2E_ARTIFACTS_VIDEO_ZIP}\", + \"description\": \"Click on the details to download e2e recording videos\", \"context\": + \"e2e_artifacts\"}"' + depends_on: + - end-to-end-tests-dashboards-suite + - end-to-end-tests-panels-suite + - end-to-end-tests-smoke-tests-suite + - end-to-end-tests-various-suite + environment: + E2E_TEST_ARTIFACTS_BUCKET: releng-pipeline-artifacts-dev + GCP_GRAFANA_UPLOAD_ARTIFACTS_KEY: + from_secret: gcp_upload_artifacts_key + GITHUB_TOKEN: + from_secret: github_token + image: google/cloud-sdk:367.0.0 + name: e2e_tests_artifacts_upload - commands: - ls dist/*.tar.gz* - cp dist/*.tar.gz* packaging/docker/ @@ -3477,6 +3645,34 @@ steps: volumes: - name: cypress_cache path: /root/.cache/Cypress +- commands: + - apt-get update + - apt-get install -yq zip + - ls -lah ./e2e + - find ./e2e -type f -name "*.mp4" + - printenv GCP_GRAFANA_UPLOAD_ARTIFACTS_KEY > /tmp/gcpkey_upload_artifacts.json + - gcloud auth activate-service-account --key-file=/tmp/gcpkey_upload_artifacts.json + - find ./e2e -type f -name "*spec.ts.mp4" | zip e2e/videos.zip -@ + - gsutil cp e2e/videos.zip gs://$${E2E_TEST_ARTIFACTS_BUCKET}/${DRONE_BUILD_NUMBER}/artifacts/videos/videos.zip + - export E2E_ARTIFACTS_VIDEO_ZIP=https://storage.googleapis.com/$${E2E_TEST_ARTIFACTS_BUCKET}/${DRONE_BUILD_NUMBER}/artifacts/videos/videos.zip + - 'echo "E2E Test artifacts uploaded to: $${E2E_ARTIFACTS_VIDEO_ZIP}"' + - 'curl -X POST https://api.github.com/repos/${DRONE_REPO}/statuses/${DRONE_COMMIT_SHA} + -H "Authorization: token $${GITHUB_TOKEN}" -d "{\"state\":\"success\",\"target_url\":\"$${E2E_ARTIFACTS_VIDEO_ZIP}\", + \"description\": \"Click on the details to download e2e recording videos\", \"context\": + \"e2e_artifacts\"}"' + depends_on: + - end-to-end-tests-dashboards-suite + - end-to-end-tests-panels-suite + - end-to-end-tests-smoke-tests-suite + - end-to-end-tests-various-suite + environment: + E2E_TEST_ARTIFACTS_BUCKET: releng-pipeline-artifacts-dev + GCP_GRAFANA_UPLOAD_ARTIFACTS_KEY: + from_secret: gcp_upload_artifacts_key + GITHUB_TOKEN: + from_secret: github_token + image: google/cloud-sdk:367.0.0 + name: e2e_tests_artifacts_upload - commands: - ls dist/*.tar.gz* - cp dist/*.tar.gz* packaging/docker/ @@ -3947,6 +4143,34 @@ steps: volumes: - name: cypress_cache path: /root/.cache/Cypress +- commands: + - apt-get update + - apt-get install -yq zip + - ls -lah ./e2e + - find ./e2e -type f -name "*.mp4" + - printenv GCP_GRAFANA_UPLOAD_ARTIFACTS_KEY > /tmp/gcpkey_upload_artifacts.json + - gcloud auth activate-service-account --key-file=/tmp/gcpkey_upload_artifacts.json + - find ./e2e -type f -name "*spec.ts.mp4" | zip e2e/videos.zip -@ + - gsutil cp e2e/videos.zip gs://$${E2E_TEST_ARTIFACTS_BUCKET}/${DRONE_BUILD_NUMBER}/artifacts/videos/videos.zip + - export E2E_ARTIFACTS_VIDEO_ZIP=https://storage.googleapis.com/$${E2E_TEST_ARTIFACTS_BUCKET}/${DRONE_BUILD_NUMBER}/artifacts/videos/videos.zip + - 'echo "E2E Test artifacts uploaded to: $${E2E_ARTIFACTS_VIDEO_ZIP}"' + - 'curl -X POST https://api.github.com/repos/${DRONE_REPO}/statuses/${DRONE_COMMIT_SHA} + -H "Authorization: token $${GITHUB_TOKEN}" -d "{\"state\":\"success\",\"target_url\":\"$${E2E_ARTIFACTS_VIDEO_ZIP}\", + \"description\": \"Click on the details to download e2e recording videos\", \"context\": + \"e2e_artifacts\"}"' + depends_on: + - end-to-end-tests-dashboards-suite + - end-to-end-tests-panels-suite + - end-to-end-tests-smoke-tests-suite + - end-to-end-tests-various-suite + environment: + E2E_TEST_ARTIFACTS_BUCKET: releng-pipeline-artifacts-dev + GCP_GRAFANA_UPLOAD_ARTIFACTS_KEY: + from_secret: gcp_upload_artifacts_key + GITHUB_TOKEN: + from_secret: github_token + image: google/cloud-sdk:367.0.0 + name: e2e_tests_artifacts_upload - commands: - ls dist/*.tar.gz* - cp dist/*.tar.gz* packaging/docker/ @@ -4308,7 +4532,13 @@ get: kind: secret name: prerelease_bucket --- +get: + name: credentials.json + path: infra/data/ci/grafana/releng/artifacts-uploader-service-account +kind: secret +name: gcp_upload_artifacts_key +--- kind: signature -hmac: 7152fbeb6bfddcde80b1a9c10bf203a14aacc5027bb0b2e9c09e81015cef3c58 +hmac: dd4acd4d9a3c87a66abc68a0fc815cf08d334507f9f5df7265a186df1a8410a9 ... diff --git a/e2e/build_results.zip b/e2e/build_results.zip new file mode 100644 index 00000000000..10ef9d01697 Binary files /dev/null and b/e2e/build_results.zip differ diff --git a/scripts/drone/pipelines/main.star b/scripts/drone/pipelines/main.star index 35be2522538..a0e662b99cb 100644 --- a/scripts/drone/pipelines/main.star +++ b/scripts/drone/pipelines/main.star @@ -17,6 +17,7 @@ load( 'install_cypress_step', 'e2e_tests_server_step', 'e2e_tests_step', + 'e2e_tests_artifacts', 'build_storybook_step', 'build_frontend_docs_step', 'copy_packages_for_docker_step', @@ -105,6 +106,7 @@ def get_steps(edition, is_downstream=False): e2e_tests_step('smoke-tests-suite', edition=edition), e2e_tests_step('panels-suite', edition=edition), e2e_tests_step('various-suite', edition=edition), + e2e_tests_artifacts(edition=edition), build_storybook_step(edition=edition, ver_mode=ver_mode), store_storybook_step(edition=edition, ver_mode=ver_mode), test_a11y_frontend_step(ver_mode=ver_mode, edition=edition), diff --git a/scripts/drone/pipelines/pr.star b/scripts/drone/pipelines/pr.star index e2b32da150f..e2682a65a42 100644 --- a/scripts/drone/pipelines/pr.star +++ b/scripts/drone/pipelines/pr.star @@ -17,6 +17,7 @@ load( 'install_cypress_step', 'e2e_tests_server_step', 'e2e_tests_step', + 'e2e_tests_artifacts', 'build_storybook_step', 'build_frontend_docs_step', 'build_docs_website_step', @@ -98,6 +99,7 @@ def pr_pipelines(edition): e2e_tests_step('smoke-tests-suite', edition=edition), e2e_tests_step('panels-suite', edition=edition), e2e_tests_step('various-suite', edition=edition), + e2e_tests_artifacts(edition=edition), build_storybook_step(edition=edition, ver_mode=ver_mode), test_a11y_frontend_step(ver_mode=ver_mode, edition=edition), build_frontend_docs_step(edition=edition), diff --git a/scripts/drone/pipelines/release.star b/scripts/drone/pipelines/release.star index 63e7090af25..ac3f5354f24 100644 --- a/scripts/drone/pipelines/release.star +++ b/scripts/drone/pipelines/release.star @@ -20,6 +20,7 @@ load( 'install_cypress_step', 'e2e_tests_server_step', 'e2e_tests_step', + 'e2e_tests_artifacts', 'build_storybook_step', 'copy_packages_for_docker_step', 'package_docker_images_step', @@ -164,6 +165,7 @@ def get_steps(edition, ver_mode): e2e_tests_step('smoke-tests-suite', edition=edition, tries=3), e2e_tests_step('panels-suite', edition=edition, tries=3), e2e_tests_step('various-suite', edition=edition, tries=3), + e2e_tests_artifacts(edition=edition), copy_packages_for_docker_step(), package_docker_images_step(edition=edition, ver_mode=ver_mode, publish=should_publish), package_docker_images_step(edition=edition, ver_mode=ver_mode, ubuntu=True, publish=should_publish), diff --git a/scripts/drone/steps/lib.star b/scripts/drone/steps/lib.star index 75dccded465..44ad29305e5 100644 --- a/scripts/drone/steps/lib.star +++ b/scripts/drone/steps/lib.star @@ -291,6 +291,38 @@ def store_storybook_step(edition, ver_mode): 'commands': commands, } +def e2e_tests_artifacts(edition): + return { + 'name': 'e2e_tests_artifacts_upload' + enterprise2_suffix(edition), + 'image': 'google/cloud-sdk:367.0.0', + 'depends_on': [ + 'end-to-end-tests-dashboards-suite', + 'end-to-end-tests-panels-suite', + 'end-to-end-tests-smoke-tests-suite', + 'end-to-end-tests-various-suite', + ], + 'environment': { + 'GCP_GRAFANA_UPLOAD_ARTIFACTS_KEY': from_secret('gcp_upload_artifacts_key'), + 'E2E_TEST_ARTIFACTS_BUCKET': 'releng-pipeline-artifacts-dev', + 'GITHUB_TOKEN': from_secret('github_token'), + }, + 'commands': [ + 'apt-get update', + 'apt-get install -yq zip', + 'ls -lah ./e2e', + 'find ./e2e -type f -name "*.mp4"', + 'printenv GCP_GRAFANA_UPLOAD_ARTIFACTS_KEY > /tmp/gcpkey_upload_artifacts.json', + 'gcloud auth activate-service-account --key-file=/tmp/gcpkey_upload_artifacts.json', + # we want to only include files in e2e folder that end with .spec.ts.mp4 + 'find ./e2e -type f -name "*spec.ts.mp4" | zip e2e/videos.zip -@', + 'gsutil cp e2e/videos.zip gs://$${E2E_TEST_ARTIFACTS_BUCKET}/${DRONE_BUILD_NUMBER}/artifacts/videos/videos.zip', + 'export E2E_ARTIFACTS_VIDEO_ZIP=https://storage.googleapis.com/$${E2E_TEST_ARTIFACTS_BUCKET}/${DRONE_BUILD_NUMBER}/artifacts/videos/videos.zip', + 'echo "E2E Test artifacts uploaded to: $${E2E_ARTIFACTS_VIDEO_ZIP}"', + 'curl -X POST https://api.github.com/repos/${DRONE_REPO}/statuses/${DRONE_COMMIT_SHA} -H "Authorization: token $${GITHUB_TOKEN}" -d ' + + '"{\\"state\\":\\"success\\",\\"target_url\\":\\"$${E2E_ARTIFACTS_VIDEO_ZIP}\\", \\"description\\": \\"Click on the details to download e2e recording videos\\", \\"context\\": \\"e2e_artifacts\\"}"', + ], + } + def upload_cdn_step(edition, ver_mode): if ver_mode == "release": diff --git a/scripts/drone/vault.star b/scripts/drone/vault.star index cddf0395e3b..997f8b443bb 100644 --- a/scripts/drone/vault.star +++ b/scripts/drone/vault.star @@ -2,6 +2,7 @@ pull_secret = 'dockerconfigjson' github_token = 'github_token' drone_token = 'drone_token' prerelease_bucket = 'prerelease_bucket' +gcp_upload_artifacts_key = 'gcp_upload_artifacts_key' def from_secret(secret): return { @@ -24,4 +25,5 @@ def secrets(): vault_secret(github_token, 'infra/data/ci/github/grafanabot', 'pat'), vault_secret(drone_token, 'infra/data/ci/drone', 'machine-user-token'), vault_secret(prerelease_bucket, 'infra/data/ci/grafana/prerelease', 'bucket'), + vault_secret(gcp_upload_artifacts_key, 'infra/data/ci/grafana/releng/artifacts-uploader-service-account', 'credentials.json'), ]