Skip to content

Create and publish backend image #33

Create and publish backend image

Create and publish backend image #33

name: Create and publish backend image
on:
release:
types: [published]
workflow_dispatch:
inputs:
tags:
description: 'Docker image tag (e.g: v0.0.1)'
required: false
type: string
env:
IMAGE_NAME: cohere-toolkit-backend
jobs:
build-and-push-backend-image:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Authenticate with service account
uses: google-github-actions/auth@v1
with:
credentials_json: ${{ secrets.GCP_SA_KEY }}
- name: Login
uses: google-github-actions/setup-gcloud@v1
with:
credentials_json: ${{ secrets.GCP_SA_KEY }}
- name: Set up Cloud SDK
uses: google-github-actions/setup-gcloud@v1
with:
project_id: ${{ vars.GCP_PROJECT_ID }}
export_default_credentials: true
- name: Configure Docker
run: gcloud auth configure-docker --quiet
- name: Checkout repository
uses: actions/checkout@v2
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v3
with:
images: ${{ vars.REGISTRY }}/${{ env.IMAGE_NAME }}
- name: Build Docker image
run: |
docker build -t ${{ steps.meta.outputs.tags }} -f ./src/backend/Dockerfile .
- name: Tag Docker image
run: |
docker tag ${{ env.IMAGE_NAME }} ${{ steps.meta.outputs.tags }}
- name: Push Docker image
env:
THE_TAGS: ${{ steps.meta.outputs.tags }}
run: |
docker push ${{ steps.meta.outputs.tags }}