Skip to content

Publish app to Google App Engine

Actions
Publish app to Google App Engine
v2.3.0
Latest
Star (23)

publish-gae-action

Build Status

This action allowed you publish application to Google App Engine.

Example

This project uses this action to published to Google App Engine.

BoardCAM.org

Usage

- name: Initialize Google Cloud SDK
  uses: zxyle/publish-gae-action@master
  with:
    service_account_email: ${{ secrets.GCP_SA_EMAIL }}
    service_account_key: ${{ secrets.GCP_SA_KEY }}
    project_id: ${{ secrets.PROJECT_ID }}
    # An optional variables parameter can be used
    gae_variables: ${{ secrets.GAE_VARIABLES }}

- name: Publish app to Google App Engine
  run: |
    # This client-secret.json is converted by GCP_SA_KEY.
    gcloud auth activate-service-account ${{ secrets.GCP_SA_EMAIL }} --key-file=client-secret.json
    gcloud config set project ${{ secrets.PROJECT_ID }}
    gcloud -q app deploy app.yaml --promote
    
    # Suppose you need a cron task.
    gcloud -q app deploy cron.yaml

Inputs

  • service_account_email: (Required) The service account email which will be used for authentication.

  • service_account_key: (Required) The service account key which will be used for authentication. This key should be created, encoded as a Base64 string (eg. cat my-key.json | base64 on macOS or Linux), and stored as a secret.

  • project_id: (Required) The project_id is google cloud platform project id. See this page to get it.

  • gae_variables: (Optional) App engine variables. This should be a json object encoded as a base64 string. This will be written into the app.yaml file at the root of your project. A sample variable file is shown here.

  • gae_config_path: (Optional) Path to the app.yml to use (./my/neseted/package/app.yml). Defaults to ./app.yml.

Note

Use 272.0.0 Google Cloud SDK by default on GitHub-hosted runners. If you need latest version, please refer to this action. But in most cases, this is enough.

Possible Errors

WARNING: You do not appear to have access to project [project-id] or it does not exist.

You must activate the Cloud Resource Manager API, to be fix this issue. Just replace YOUR_PROJECT_ID_HERE of the link bellow and click ENABLE.

https://console.developers.google.com/apis/api/cloudresourcemanager.googleapis.com/overview?project=YOUR_PROJECT_ID_HERE

Sample variable file

{
  "beta_settings": {
    "cloud_sql_instances": "my_sql_instance"
  },
  "env_variables": {
    "DB_CONNECTION": "mysql",
    "DB_HOST": "127.0.0.1",
    "DB_PORT": 3306,
    "DB_USER": "mydbuser",
    "DB_DATABASE": "my_database",
    "DB_PASSWORD": "password",
    "DB_SOCKET": "/cloudsql/mys_sql_instance"
  }
}

On a Mac you can encode this into a base64 string by running the following command;

base64 -i myvariables.json

License

The scripts and documentation in this project are released under the MIT License

Publish app to Google App Engine is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.

About

Publish app to Google App Engine
v2.3.0
Latest

Publish app to Google App Engine is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.