Skip to content

Merge pull request #1 from sugesh-cloudops/feature/development #23

Merge pull request #1 from sugesh-cloudops/feature/development

Merge pull request #1 from sugesh-cloudops/feature/development #23

Workflow file for this run

name: Helm CI - Build and Push
on:
push:
branches:
- main
jobs:
build-and-push:
name: Build and Push Docker Image
runs-on: ubuntu-latest
outputs:
image-tag: ${{ steps.set-tag.outputs.tag }}
env:
IMAGE_NAME: ${{ secrets.DOCKERHUB_USERNAME }}/springboot-postgres
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
- name: Build Spring Boot App
working-directory: ./app
run: ./mvnw clean package -DskipTests
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Set Image Tag
id: set-tag
run: |
COMMIT_SHA=$(echo "${{ github.sha }}" | cut -c1-7)
TAG="main-${COMMIT_SHA}"
echo "tag=$TAG" >> $GITHUB_OUTPUT
- name: Build and Push Docker Image
run: |
docker build -t $IMAGE_NAME:${{ steps.set-tag.outputs.tag }} ./app
docker push $IMAGE_NAME:${{ steps.set-tag.outputs.tag }}
update-values:
name: Update Helm values.yaml
needs: build-and-push
runs-on: ubuntu-latest
env:
IMAGE_NAME: ${{ secrets.DOCKERHUB_USERNAME }}/springboot-postgres
IMAGE_TAG: ${{ needs.build-and-push.outputs.image-tag }}
FILE: helm/springboot-postgres-prod/values.yaml
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Configure Git
run: |
git config --global user.name "${{ secrets.GIT_USER_NAME }}"
git config --global user.email "${{ secrets.GIT_USER_EMAIL }}"
- name: Update values.yaml
run: |
echo "Updating $FILE with image: $IMAGE_NAME:$IMAGE_TAG"
sed -i.bak -E "s|image:.*|image: ${IMAGE_NAME}:${IMAGE_TAG}|" "$FILE"
git add "$FILE"
git commit -m "Update image tag to $IMAGE_TAG in Helm values.yaml"
git pull origin auto/helm-update --rebase || true
git push origin HEAD:auto/helm-update-prod --force-with-lease