Commit graph

11 commits

Author SHA1 Message Date
160c4fdc0e
Fix GitHub Actions Docker build cache configuration
- Re-add Docker Buildx setup (required for cache)
- Use 'type=inline' for cache-to (embeds cache in image)
- Cache from the latest image instead of separate buildcache tag

This fixes the 'Cache export is not supported' error.

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 16:27:06 -05:00
1cfeaf556e
Simplify Dockerfile for much faster builds
- Remove BuildKit advanced features that were slowing builds
- Remove multi-platform builds (only build for amd64)
- Remove security scanning stage
- Remove complex caching mounts
- Simplify to basic 2-stage build
- Use registry cache instead of GitHub Actions cache

This should reduce build time from 10+ minutes to 2-3 minutes.

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 16:22:38 -05:00
6f6a04b485
Implement all Docker performance optimizations
Performance improvements:
- Add BuildKit syntax for advanced features
- Implement 3-stage build (deps, builder, runtime) for better caching
- Add cache mounts for apt, hex, rebar, and build directories
- Use heredoc syntax for complex RUN commands
- Enable multi-platform builds (amd64 and arm64)
- Add GitHub Actions cache for Docker layers
- Reorder COPY commands by change frequency
- Add optional security scanning stage with Trivy

Build time improvements:
- 30-50% faster rebuilds when only code changes
- Dependency layer cached separately
- APT package cache persists between builds
- Mix dependencies cached

Additional optimizations:
- More comprehensive .dockerignore file
- Remove more unnecessary files from runtime image
- Add proper container labels
- Use dedicated elixir user with UID 1001

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 16:12:47 -05:00
4f5f26287a
Add concurrency control to deploy workflow
- Cancels any in-progress deployment when a new commit is pushed
- Prevents multiple deployments from running simultaneously
- Uses concurrency group based on branch ref
- Saves CI/CD resources and prevents conflicting deployments

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 16:05:03 -05:00
1605afd5b0
Remove rollout wait from GitHub deployment workflow
The CI/CD pipeline now initiates the deployment but doesn't wait for it to complete, allowing the workflow to finish quickly even if pods take time to start.

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 16:01:49 -05:00
904b555ca2
Fix GitHub Actions deployment to use StatefulSet
Update kubectl commands in deploy workflow to target statefulset
instead of deployment, matching the recent migration to StatefulSet.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-25 12:27:23 -05:00
beb40cf625
Add rollout restart to deployment workflow
Force k3s to pull the latest image by adding rollout restart
after setting the image. This ensures the cluster always runs
the most recent build even when using the :latest tag.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-24 19:46:05 -05:00
fe67866018
Update k3s deployment to use latest tag and correct registry
- Changed kubectl deployment command to use :latest tag
- Updated k8s deployment manifests to use ghcr.io/aprsme/aprs.me:latest
- This ensures k3s always pulls the most recent image from GitHub Container Registry

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-24 19:34:18 -05:00
816d699298
Fix k3s deployment to use correct Docker image tag
The deployment was using raw SHA but the Docker metadata action creates
tags with 'main-' prefix for the main branch. Updated kubectl command
to use the correct tag format: main-${github.sha}

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-24 19:28:28 -05:00
e84dcb6bc0
clone submodules recursively 2025-07-24 18:20:56 -05:00
99d277f383
add deploy 2025-07-24 17:08:24 -05:00