v0.4.6 - Docker Healthcheck & CI/CD Improvements #55

Merged
bscott merged 4 commits from v0.4.6 into main 2025-11-14 13:23:05 -05:00
bscott commented 2025-11-13 23:26:58 -05:00 (Migrated from github.com)

🎉 Overview

This PR includes Docker improvements and CI/CD pipeline optimization for v0.4.6.

Changes

🐳 Docker Healthcheck (Resolves #47)

  • Added HEALTHCHECK instruction to Dockerfile
  • Monitors application health every 30 seconds
  • Added curl to runtime dependencies for healthcheck support

🔧 CI/CD Pipeline Improvements

  • Simplified Docker image tagging (only exact version + latest)
  • Docker images only build on Git tag pushes (v*)
  • Removed automatic builds on main branch pushes
  • Reduces CI/CD resource usage

🧹 Repository Cleanup

  • Removed binary files (migrate-dates, server) from git tracking
  • Removed node_modules/ directory from git tracking (464 files)
  • Updated .gitignore with additional entries

Testing

  • Docker build tested successfully
  • Healthcheck verified in image
  • All files properly ignored by .gitignore
## 🎉 Overview This PR includes Docker improvements and CI/CD pipeline optimization for v0.4.6. ## ✨ Changes ### 🐳 Docker Healthcheck (Resolves #47) - Added `HEALTHCHECK` instruction to Dockerfile - Monitors application health every 30 seconds - Added `curl` to runtime dependencies for healthcheck support ### 🔧 CI/CD Pipeline Improvements - Simplified Docker image tagging (only exact version + latest) - Docker images only build on Git tag pushes (`v*`) - Removed automatic builds on `main` branch pushes - Reduces CI/CD resource usage ### 🧹 Repository Cleanup - Removed binary files (`migrate-dates`, `server`) from git tracking - Removed `node_modules/` directory from git tracking (464 files) - Updated `.gitignore` with additional entries ## 📋 Related Issues - Closes #47 ## ✅ Testing - Docker build tested successfully - Healthcheck verified in image - All files properly ignored by `.gitignore`
copilot-pull-request-reviewer[bot] (Migrated from github.com) reviewed 2025-11-14 12:41:28 -05:00
copilot-pull-request-reviewer[bot] (Migrated from github.com) left a comment

Pull Request Overview

This release adds Docker healthcheck functionality and optimizes the CI/CD pipeline to reduce resource usage. The changes focus on improving container monitoring capabilities while streamlining the build and deployment process.

Key Changes:

  • Added Docker HEALTHCHECK instruction with curl dependency to monitor application availability every 30 seconds
  • Simplified Docker image tagging to only produce version-specific and latest tags on Git tag pushes
  • Cleaned up repository by removing tracked binaries and node_modules/

Reviewed Changes

Copilot reviewed 2 out of 465 changed files in this pull request and generated 2 comments.

File Description
Dockerfile Added healthcheck instruction and curl runtime dependency for health monitoring
.github/workflows/docker-publish.yml Restricted Docker builds to tag pushes only and simplified tagging strategy

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

## Pull Request Overview This release adds Docker healthcheck functionality and optimizes the CI/CD pipeline to reduce resource usage. The changes focus on improving container monitoring capabilities while streamlining the build and deployment process. **Key Changes:** - Added Docker `HEALTHCHECK` instruction with `curl` dependency to monitor application availability every 30 seconds - Simplified Docker image tagging to only produce version-specific and `latest` tags on Git tag pushes - Cleaned up repository by removing tracked binaries and `node_modules/` ### Reviewed Changes Copilot reviewed 2 out of 465 changed files in this pull request and generated 2 comments. | File | Description | | ---- | ----------- | | Dockerfile | Added healthcheck instruction and curl runtime dependency for health monitoring | | .github/workflows/docker-publish.yml | Restricted Docker builds to tag pushes only and simplified tagging strategy | --- 💡 <a href="/bscott/subtrackr/new/main/.github/instructions?filename=*.instructions.md" class="Link--inTextBlock" target="_blank" rel="noopener noreferrer">Add Copilot custom instructions</a> for smarter, more guided reviews. <a href="https://docs.github.com/en/copilot/customizing-copilot/adding-repository-custom-instructions-for-github-copilot" class="Link--inTextBlock" target="_blank" rel="noopener noreferrer">Learn how to get started</a>.
@ -52,10 +43,8 @@ jobs:
with:
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2025-11-14 12:41:27 -05:00

The condition startsWith(github.ref, 'refs/tags/v') will tag as latest for any tag starting with 'v', including pre-release tags like v0.4.6-beta or v0.4.6-rc1. Consider adding a condition to exclude pre-release versions from being tagged as latest, such as using && !contains(github.ref, '-').

            type=raw,value=latest,enable=${{ startsWith(github.ref, 'refs/tags/v') && !contains(github.ref, '-') }}
The condition `startsWith(github.ref, 'refs/tags/v')` will tag as `latest` for any tag starting with 'v', including pre-release tags like `v0.4.6-beta` or `v0.4.6-rc1`. Consider adding a condition to exclude pre-release versions from being tagged as `latest`, such as using `&& !contains(github.ref, '-')`. ```suggestion type=raw,value=latest,enable=${{ startsWith(github.ref, 'refs/tags/v') && !contains(github.ref, '-') }} ```
@ -50,5 +51,9 @@ EXPOSE 8080
ENV GIN_MODE=release
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2025-11-14 12:41:27 -05:00

The healthcheck uses a generic root endpoint check. Consider using a dedicated /health or /healthz endpoint that can verify database connectivity and other critical dependencies, rather than just checking if the HTTP server responds.

    CMD curl -f http://localhost:8080/healthz || exit 1
The healthcheck uses a generic root endpoint check. Consider using a dedicated `/health` or `/healthz` endpoint that can verify database connectivity and other critical dependencies, rather than just checking if the HTTP server responds. ```suggestion CMD curl -f http://localhost:8080/healthz || exit 1 ```
copilot-pull-request-reviewer[bot] (Migrated from github.com) reviewed 2025-11-14 13:20:29 -05:00
copilot-pull-request-reviewer[bot] (Migrated from github.com) left a comment

Pull Request Overview

Copilot reviewed 3 out of 466 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

## Pull Request Overview Copilot reviewed 3 out of 466 changed files in this pull request and generated 1 comment. --- 💡 <a href="/bscott/subtrackr/new/main/.github/instructions?filename=*.instructions.md" class="Link--inTextBlock" target="_blank" rel="noopener noreferrer">Add Copilot custom instructions</a> for smarter, more guided reviews. <a href="https://docs.github.com/en/copilot/customizing-copilot/adding-repository-custom-instructions-for-github-copilot" class="Link--inTextBlock" target="_blank" rel="noopener noreferrer">Learn how to get started</a>.
@ -106,0 +104,4 @@
router.GET("/healthz", func(c *gin.Context) {
// Check database connectivity
sqlDB, err := db.DB()
if err != nil {
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2025-11-14 13:20:29 -05:00

The old /health endpoint has been replaced with /healthz. Consider keeping both endpoints for backward compatibility, or document this breaking change in the release notes to ensure existing monitoring systems can be updated.

The old `/health` endpoint has been replaced with `/healthz`. Consider keeping both endpoints for backward compatibility, or document this breaking change in the release notes to ensure existing monitoring systems can be updated.
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
bscott/subtrackr!55
No description provided.