GitHub Action for interacting with Google Cloud Platform (GCP)
GitHub Action which allows interacting with Google Cloud Platform.
To use gcloud in your workflow use:
- uses: actions-hub/[email protected] env: PROJECT_ID: test APPLICATION_CREDENTIALS: ${{ secrets.GOOGLE_APPLICATION_CREDENTIALS }} with: args: info
You can also use
gsutilfrom Google Cloud SDK package.
- uses: actions-hub/[email protected] env: PROJECT_ID: test APPLICATION_CREDENTIALS: ${{ secrets.GOOGLE_APPLICATION_CREDENTIALS }} with: args: cp your-file.txt gs://your-bucket/ cli: gsutil
APPLICATION_CREDENTIALS- To authorize in GCP you need to have a service account key. The recommended way to store the credentials in the secrets it previously encode file with base64. To encode a JSON file use:
base64 ~/.json. Or you can put a JSON structure to the secret.
PROJECT_ID- must be provided to activate a specific project.
args- command to run.
cli- (optional) command line tool you want to use. Defaults to
gcloud, allowed values:
gcloud,
gsutil.
For each new release of gcloud master branch is updated to the latest version. Also, the tag is creating with the same number as the gcloud version. If you want to always have the latest version of gcloud, use
@masterbranch. But if you need some specific version of gcloud just use a specific tag. For example
@271.0.0.
name: gcloud on: [push]jobs: deploy: name: Deploy runs-on: ubuntu-latest
steps: - uses: actions/[email protected] - uses: actions-hub/[email protected] env: PROJECT_ID: ${{secrets.GCLOUD_PROJECT_ID}} APPLICATION_CREDENTIALS: ${{secrets.GOOGLE_APPLICATION_CREDENTIALS}} with: args: app deploy app.yaml
name: gcloud on: [push]jobs: deploy: name: Deploy runs-on: ubuntu-latest
steps: - uses: actions/[email protected] - name: "deploy to project A" uses: actions-hub/[email protected] env: PROJECT_ID: ${{secrets.GCLOUD_PROJECT_ID_A}} APPLICATION_CREDENTIALS: ${{secrets.GOOGLE_APPLICATION_CREDENTIALS}} with: args: app deploy app.yaml - name: "deploy to project B" uses: actions-hub/[email protected] env: PROJECT_ID: ${{secrets.GCLOUD_PROJECT_ID_B}} with: args: app deploy app.yaml
name: gcloud on: [push]jobs: deploy: name: Deploy runs-on: ubuntu-latest
steps: - uses: actions/[email protected] - uses: actions-hub/[email protected] env: PROJECT_ID: ${{secrets.GCLOUD_PROJECT_ID}} APPLICATION_CREDENTIALS: ${{secrets.GOOGLE_APPLICATION_CREDENTIALS}} with: args: app deploy app.yaml