Skip to content

Making monorepo with api #1

Making monorepo with api

Making monorepo with api #1

Workflow file for this run

name: Publish API Docker Image
on:
push:
branches:
- monorepo
paths:
- 'api/**'
jobs:
push_to_registry:
name: Push Docker image to Docker Hub
runs-on: ubuntu-latest
steps:
- name: Check out the repo
uses: actions/checkout@v4.1.1
- name: Check for changes
id: check_changes
run: |
if [[ $(git diff --name-only ${{ github.event.before }} ${{ github.sha }}) == *"api"* ]]; then
echo "::set-output name=changes::true"
else
echo "::set-output name=changes::false"
fi
- name: Extract version from pyproject.toml
if: steps.check_changes.outputs.changes == 'true'
id: extract_metadata
run: |
VERSION=$(awk -F ' = ' '/version =/ {gsub(/"/, "", $2); print $2}' api/pyproject.toml)
LABELS="version=$VERSION,latest"
echo "::set-output name=version::$VERSION"
echo "::set-output name=labels::$LABELS"
- name: Log in to Docker Hub
if: steps.check_changes.outputs.changes == 'true'
uses: docker/login-action@v3.0.0
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push Docker image
uses: docker/build-push-action@v5.1.0
if: steps.check_changes.outputs.changes == 'true'
with:
context: ./api
file: ./api/Dockerfile
push: true
tags: ${{ github.repository }}-api-test:${{ steps.extract_metadata.outputs.version }}, ${{ github.repository }}:latest
labels: ${{ steps.extract_metadata.outputs.labels }}