Skip to content

Version 3.0.0

Compare
Choose a tag to compare
@RafikFarhad RafikFarhad released this 31 Jul 05:39
· 38 commits to master since this release
v3
8a692cc

Push to GCR Github Action

Version 3.0.0

Change log:

project_name changed to project_id

  • @dodizzle proposed that using project_id is more meaningful than using project_name as sometimes it is possible to they are different. I appreciate his time and effort in implementing this. Of course, v1 and v2 will always use project_name, so there is no change necessary for v1 and v2 users.

Push to GCR Github Action is an action that build docker image and push to Google Cloud Registry.

This action can be used to perform on every git push or every tag creation.

Inputs

gcloud_service_key

The service account key of google cloud. The service accout json file must be encoded in base64. This field is required.

registry

The registry where the image should be pushed. Default gcr.io.

project_name

The project name. This field is required.

image_name

The image name. This field is required.

image_tag

The tag for the image. To create multiple tag of the same image, provide comma (,) separeted tag name (eg:v2.1,v2,latest).

Default: latest.

To use the pushed Tag Name as image tag, see the example.

dockerfile

The image building Dockerfile.
If context is changed, Dockerfile from context folder will be used.

Default: ./Dockerfile.

context

The docker build context. Default: .

target

If you use multi-stage build and want to stop builing at a certain image, you can use this field. Default value is empty.

Example usage

Put desired yml section in the .github/workflows/build.yml file

To perform build & push on every git push

name: Push to GCR Github Action
on: [push]
jobs:
  build-and-push-to-gcr:
    runs-on: ubuntu-latest
    steps:
      - uses: RafikFarhad/push-to-gcr-github-action@v2
        with:
          gcloud_service_key: ${{ secrets.GCLOUD_SERVICE_KEY }}
          registry: gcr.io
          project_name: my-awesome-project
          image_name: server-end

To perform build & push only on tag publish

name: Push to GCR Github Action
on:
  push:
    tags:
    - '*'
jobs:
  build-and-push-to-gcr:
    runs-on: ubuntu-latest
    steps:
      - name: Get the version
        id: get_tag_name
        run: echo ::set-output name=GIT_TAG_NAME::${GITHUB_REF/refs\/tags\//}
      - uses: RafikFarhad/push-to-gcr-github-action@v2
        with:
          gcloud_service_key: ${{ secrets.GCLOUD_SERVICE_KEY }}
          registry: gcr.io
          project_name: my-awesome-project
          image_name: server-end
          image_tag: ${{ steps.get_tag_name.outputs.GIT_TAG_NAME}}
          dockerfile: ./build/Dockerfile