mirror of
https://github.com/google/earthengine-api.git
synced 2025-12-08 19:26:12 +00:00
Workflows
Authenticating and Initializing Earth Engine in GitHub Actions
The publish-to-pypi workflow uses the google-github-actions/auth GitHub action to authenticate with Google Cloud (see the snippet below).
Authenticating via Workload Identity Federation
The Earth Engine smoke tests authenticate using workload identity federation.
See
this guide to
create a workload identity provider and populate the resulting service_account
and workload_identity_provider in your GitHub repository's Secrets and
Variables settings.
jobs:
smoke-test:
runs-on: ubuntu-latest
permissions:
id-token: write
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: 3.11
- name: Authenticate with Google Cloud
uses: 'google-github-actions/auth@v2'
with:
service_account: ${{ secrets.SERVICE_ACCOUNT }}
workload_identity_provider: ${{ secrets.WORKLOAD_IDENTITY_PROVIDER }}
The path to the credentials is stored in the
GOOGLE_APPLICATION_CREDENTIALS
environment variable. To authenticate and initialize Earth Engine using the
credentials, see the snippet below.
import json
import os
from google.auth import identity_pool
scopes = [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/earthengine",
]
path = os.environ["GOOGLE_APPLICATION_CREDENTIALS"]
info = json.load(open(path))
credentials = identity_pool.Credentials.from_info(info).with_scopes(scopes)
ee.Initialize(credentials, project=credentials.project_number)