diff --git a/.env b/.env deleted file mode 100644 index f81200f..0000000 --- a/.env +++ /dev/null @@ -1 +0,0 @@ -SERVER_IMAGE_TAG=2024-09-18--07-00 diff --git a/.env.repoTags b/.env.repoTags deleted file mode 100644 index 00905fb..0000000 --- a/.env.repoTags +++ /dev/null @@ -1 +0,0 @@ -FRONTEND_IMAGE_TAG=2024-09-19--00-34 diff --git a/.env.tags b/.env.tags new file mode 100644 index 0000000..02f98b1 --- /dev/null +++ b/.env.tags @@ -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 diff --git a/.github/workflows/image_build_push.yml b/.github/workflows/image_build_push.yml index f79328c..76ce6fb 100644 --- a/.github/workflows/image_build_push.yml +++ b/.github/workflows/image_build_push.yml @@ -3,7 +3,7 @@ name: docker-image-push-public-dash on: push: branches: [ main, cleanup-cicd ] - + workflow_dispatch: inputs: docker_image_tag: @@ -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 @@ -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 "action@github.com" - 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"