Skip to content

Commit

Permalink
Added .env.tags file to store all docker image tags
Browse files Browse the repository at this point in the history
Internal script can read docker image tags directly from .env.tags.
  • Loading branch information
Mahadik, Mukul Chandrakant authored and Mahadik, Mukul Chandrakant committed Sep 20, 2024
1 parent 5a4242c commit ad00963
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 24 deletions.
1 change: 0 additions & 1 deletion .env

This file was deleted.

1 change: 0 additions & 1 deletion .env.repoTags

This file was deleted.

3 changes: 3 additions & 0 deletions .env.tags
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
NOTEBOOK_IMAGE_TAG=2024-09-18--11-32
FRONTEND_IMAGE_TAG=2024-09-15--09-41
SERVER_IMAGE_TAG=2024-09-18--07-00
44 changes: 22 additions & 22 deletions .github/workflows/image_build_push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: docker-image-push-public-dash
on:
push:
branches: [ main, cleanup-cicd ]

workflow_dispatch:
inputs:
docker_image_tag:
Expand All @@ -24,22 +24,19 @@ jobs:
- name: Set docker image tags
id: set-tags
run: |
set -a; source .env; set +a
set -a; source .env.tags; set +a
echo "NOTEBOOK_IMAGE_TAG=${NOTEBOOK_IMAGE_TAG}" >> "$GITHUB_OUTPUT"
echo "FRONTEND_IMAGE_TAG=${FRONTEND_IMAGE_TAG}" >> "$GITHUB_OUTPUT"
echo "DOCKER_TAG_FROM_PUSH=${SERVER_IMAGE_TAG}" >> "$GITHUB_OUTPUT"
echo "DOCKER_TAG_FROM_WORKFLOW_DISPATCH=${{ github.event.inputs.docker_image_tag }}" >> "$GITHUB_OUTPUT"
- name: Set docker image tag from .env.repoTags file
id: set-frontend-tag
run: |
set -a; source .env.repoTags; set +a
echo "FRONTEND_IMAGE_TAG=${FRONTEND_IMAGE_TAG}" >> "$GITHUB_OUTPUT"
- name: Print input docker image tag
- name: Print input docker image tags
run: |
echo "Event name: ${{ github.event_name }}"
echo "Current notebook image tag (push): ${{ steps.set-tags.outputs.NOTEBOOK_IMAGE_TAG }}"
echo "Current frontend image tag (push): ${{ steps.set-tags.outputs.FRONTEND_IMAGE_TAG }}"
echo "Latest docker image tag (push): ${{ steps.set-tags.outputs.DOCKER_TAG_FROM_PUSH }}"
echo "Latest docker image tag (workflow_dispatch): ${{ steps.set-tags.outputs.DOCKER_TAG_FROM_WORKFLOW_DISPATCH }}"
echo "Current frontend image tag (push): ${{ steps.set-frontend-tag.outputs.FRONTEND_IMAGE_TAG }}"
- name: docker login
run: | # log into docker hub account
Expand Down Expand Up @@ -75,34 +72,37 @@ jobs:
fi
docker push $DOCKER_USER/${GITHUB_REPOSITORY#*/}_notebook:${GITHUB_REF##*/}_${{ steps.date.outputs.date }}
- name: Update .env file
- name: Update .env.tags file
run: |
echo "NOTEBOOK_IMAGE_TAG=${{ steps.date.outputs.date }}" > .env.tags
if [ "${{ github.event_name }}" == "workflow_dispatch" ]; then
echo "Workflow_dispatch: New server image built and pushed, Updating image tag in .env"
echo "SERVER_IMAGE_TAG=${{ steps.set-tags.outputs.DOCKER_TAG_FROM_WORKFLOW_DISPATCH }}" > .env
echo "Workflow_dispatch: New server image built and pushed; update server image tag; reuse existing frontend image tag"
echo "FRONTEND_IMAGE_TAG=${{ steps.set-tags.outputs.FRONTEND_IMAGE_TAG }}" >> .env.tags
echo "SERVER_IMAGE_TAG=${{ steps.set-tags.outputs.DOCKER_TAG_FROM_WORKFLOW_DISPATCH }}" >> .env.tags
else
echo "Push event: New frontend image built and pushed, Updating image tag in .env.repoTags"
echo "FRONTEND_IMAGE_TAG=${{ steps.date.outputs.date }}" > .env.repoTags
echo "Push event: Reuse existing server image tag"
echo "FRONTEND_IMAGE_TAG=${{ steps.date.outputs.date }}" >> .env.tags
echo "SERVER_IMAGE_TAG=${{ steps.set-tags.outputs.DOCKER_TAG_FROM_PUSH }}" >> .env.tags
fi
- name: Add, Commit, Push changes to .env file
- name: Add, Commit, Push changes to .env.tags file
run: |
git config --local user.email "[email protected]"
git config --local user.name "Github Actions bot to update .env with latest tags"
git config --local user.name "Github Actions bot to update .env.tags with latest tags"
if git diff --quiet; then
echo "Latest timestamps already present in .env files, no changes to commit"
echo "Latest timestamp already present in .env.tags file, no changes to commit"
else
git add .env .env.repoTags
git commit -m "Updated docker image tags in .env files to the latest timestamps"
git add .env.tags
git commit -m "Updated docker image tags in .env.tags file to the latest timestamp"
git push origin
fi
- name: Create tag files
- name: Create artifact text files
run: |
if [ "${{ github.event_name }}" == "push" ]; then
echo ${{ steps.date.outputs.date }} > frontend_tag_file.txt
else
echo ${{ steps.set-frontend-tag.outputs.FRONTEND_IMAGE_TAG }} > frontend_tag_file.txt
echo ${{ steps.set-tags.outputs.FRONTEND_IMAGE_TAG }} > frontend_tag_file.txt
fi
echo ${{ steps.date.outputs.date }} > notebook_tag_file.txt
echo "Created tag text files"
Expand Down

0 comments on commit ad00963

Please sign in to comment.