Commit Graph

21 Commits

Author SHA1 Message Date
25f05c6a17 ci: improve stack path handling in staging deployment
- Simplify local stack path normalization
- Enhance remote shell path resolution to handle user-specific paths (e.g. ~username/path)
- Better handling of escaped tilde paths in SSH heredoc
2025-11-01 23:06:54 +01:00
988e14f3c2 fix(ci): normalize stack path for staging deployment
Normalize stack path locally to avoid ~ confusion when passing to remote shell
2025-11-01 22:54:56 +01:00
ad0598d301 fix: improve stack path handling in staging deployment
- Fix user home directory detection for stack path expansion
- Handle tilde expansion and relative paths correctly
- Add fallback logic for path resolution
2025-11-01 22:47:07 +01:00
ff4b8dd848 fix(ci): expand tilde in staging deployment stack path 2025-11-01 22:32:01 +01:00
888b9cce7f ci: improve build job conditional execution in workflow
- Replace job-level if condition with env variable for better control
- Add conditional checks to all build steps
- Add skip step when build not required
- Simplify deploy-staging conditions
2025-11-01 22:23:18 +01:00
5ec5c41a0a fix(ci): improve image selection and registry handling in deployment workflow
- Add better image selection logic with fallback handling
- Support multiple registry logins for different image sources
- Improve error handling and image URL parsing
- Add proper argument escaping for SSH deployment script
2025-11-01 22:16:23 +01:00
fa28e3580a fix(ci): add image tag fallback logic and code style fixes
- Add fallback to 'latest' tag when build fails
- Add fallback mechanism when pulling specific image tag fails
- Fix code style: move opening brace in ObjectInfo
- Remove unused comment in ObjectStorage
2025-11-01 22:06:12 +01:00
477522bc1e feat: add ObjectStorage and ObjectInfo framework components
- Add ObjectStorage and ObjectInfo classes for framework storage
- Update build-image.yml workflow configuration
2025-11-01 21:53:23 +01:00
9ecc88a0eb ci: improve image tag handling and add staging to security scan 2025-11-01 21:34:40 +01:00
c51e09c6b6 fix(ci): Add runtime-base back to build job needs
- build job accesses needs.runtime-base.outputs.image_ref, so runtime-base must be in needs
- Added always() condition to ensure build runs even if runtime-base is skipped
- Outputs will be empty if runtime-base was skipped, which is handled gracefully
2025-11-01 21:23:08 +01:00
e17469084d fix(ci): Improve runtime-base image reference handling in build job
- Better handling of optional runtime-base outputs
- Added null check for runtime-base image_ref
- Improved logging when using freshly built runtime image
2025-11-01 21:22:26 +01:00
0c7b96e887 fix(ci): Fix workflow job dependencies and execution flow
- Removed runtime-base from build job dependencies (build now only depends on changes)
- runtime-base now only runs when needed (if needs_runtime_build or needs_build is true)
- build job now handles missing runtime-base outputs gracefully
- deploy-staging and deploy-production now only depend on build (not runtime-base)
- Added always() conditions to ensure jobs run even if previous jobs are skipped
- Fixes issue where workflow stopped after runtime-base job when build was skipped
2025-11-01 21:21:58 +01:00
13e12487d7 fix(ci): Fix RUNTIME_IMAGE_NAME variable substitution in runtime-base job
- Added RUNTIME_IMAGE_NAME to env section of Build and push runtime base image step
- Added RUNTIME_IMAGE_NAME to env section of Set runtime base outputs step
- Fixes 'bad substitution' error when variable is used in shell scripts
2025-11-01 21:17:44 +01:00
e68d1917b0 refactor(ci): Consolidate workflows and fix Git sync
- Added explicit Git pull in staging deployment after container restart
- Added production auto-deploy job to build-image.yml (for main branch)
- Removed redundant workflows: deploy-staging.yml, deploy-production.yml, production-deploy.yml
- All deployments now handled by build-image.yml:
  - staging branch → auto-deploy to staging
  - main branch → auto-deploy to production
- Fixed build job dependency (removed test dependency)
- Git sync now explicitly pulls code after deployment to ensure containers are up-to-date
2025-11-01 21:15:00 +01:00
d14d768acd fix(ci): Remove test dependency from build job to fix workflow execution
- Removed 'test' from build job needs array
- Build job now depends only on [changes, runtime-base]
- Fixes issue where build was waiting for skipped test job
- deploy-staging now correctly waits for build completion
2025-11-01 21:07:02 +01:00
9e34c0b474 fix: Verbessere Staging Deployment - Code-Synchronisation
- Aktualisiere docker-compose.yml immer aus Repository
- Starte staging-app Container neu für Git-Pull
- Unterstütze mehrere Image-URL-Formate in sed-Replacements
- Füge Wartezeiten für Git-Sync hinzu
- Behebt Problem, dass Code nicht synchronisiert wurde
2025-11-01 20:57:33 +01:00
478754ab02 chore: clean up and rename workflows 2025-11-01 17:24:20 +01:00
6bf6bf4cbe ci: optimise docker workflows 2025-11-01 17:04:03 +01:00
210e0aa74d feat: add auto-deploy to staging after successful build 2025-11-01 15:50:52 +01:00
77b2dc5dd7 feat: Add staging environment setup
- Create staging stack with separate containers and volumes
- Configure staging.michaelschiemer.de subdomain routing
- Add deploy-staging.yml workflow for auto-deployment
- Extend build-image.yml to support staging branch
- Separate Redis instance and network for staging
- Staging uses staging branch by default

Features:
- Auto-deploy: Push to staging branch → build → deploy to staging
- Separate from production: Different containers, volumes, networks
- Shared Traefik: Uses same SSL certificates (*.michaelschiemer.de)
- Testing environment before production deployment
2025-10-31 23:52:30 +01:00
194bd71257 feat: Split CI/CD pipeline into separate build and deploy workflows
- Add build-image.yml: Automatic image builds on push (5-8 min)
- Add deploy-production.yml: Manual deployment workflow (2-5 min)
- Mark production-deploy.yml as deprecated

Benefits:
- Faster feedback: Images ready in ~5-8 min (vs 10-15 min before)
- Flexible deployment: Deploy when ready, not forced after every build
- Parallel execution: Multiple builds can run simultaneously
- Better separation: Build failures don't block deployments of existing images
2025-10-31 23:43:49 +01:00