build: update CI/CD workflows and deployment scripts#94
build: update CI/CD workflows and deployment scripts#94vcnainala merged 7 commits intodevelopmentfrom
Conversation
There was a problem hiding this comment.
Pull request overview
Updates the project’s deployment and CI/CD automation, including a revamped “zero downtime” deploy script, streamlined Docker Compose definitions for dev/prod, and updated GitHub Actions workflows for releases and Docker image publishing.
Changes:
- Reworked
ops/zero-downtime-deployment-script.shto deploy multiple services with structured logging, health-check gating, and cleanup. - Simplified
ops/docker-compose-*.ymlby focusing on Traefik + core services and introducing a shared volume. - Updated GitHub Actions workflows (Release Please + dev/prod Docker builds) with newer actions, caching, manual prod gating, and conditional builds.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 16 comments.
Show a summary per file
| File | Description |
|---|---|
| ops/zero-downtime-deployment-script.sh | Adds logging, multi-service deploy, health-check wait, and cleanup logic for deployments. |
| ops/docker-compose-prod.yml | Refactors production compose services/images and volumes. |
| ops/docker-compose-dev.yml | Refactors dev compose services/images, Traefik config, and volumes. |
| env.template | Adjusts default database username value. |
| .github/workflows/release-please.yml | Updates Release Please workflow configuration and trigger options. |
| .github/workflows/prod-build.yml | Reworks production Docker build/push workflow with guard, caching, and conditional builds. |
| .github/workflows/dev-build.yml | Reworks dev Docker build/push workflow with caching and conditional builds. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| jobs: | ||
| test_and_lint: | ||
| uses: NFDI4Chem/nmrkit/.github/workflows/test.yml@main | ||
|
|
||
| release-please: | ||
| runs-on: ubuntu-latest | ||
| needs: test_and_lint | ||
| permissions: |
There was a problem hiding this comment.
The workflow no longer runs the reusable test.yml job before executing release-please. This allows release-please to create release PRs/tags even if the current main build is broken. Consider restoring the test job dependency (or ensure an equivalent required status check/branch protection exists).
| # test_and_lint: | ||
| # uses: NFDI4Chem/nmrkit/.github/workflows/test.yml@main |
There was a problem hiding this comment.
Tests/linting are commented out (test_and_lint / needs) in the prod image publish workflow. This can push a broken latest image to Docker Hub. Consider re-enabling the reusable test.yml workflow and gating build_and_push_to_registry on it.
| # test_and_lint: | |
| # uses: NFDI4Chem/nmrkit/.github/workflows/test.yml@main | |
| test_and_lint: | |
| uses: NFDI4Chem/nmrkit/.github/workflows/test.yml@main |
| nmr-respredict: | ||
| #build: ./app/scripts/nmr-respredict | ||
| image: nfdi4chem/nmr-respredict:dev-latest | ||
| entrypoint: /bin/sh | ||
| stdin_open: true |
There was a problem hiding this comment.
nmr-respredict no longer sets container_name: nmr-respredict, but the API code uses docker exec nmr-respredict .... With default compose naming (project/service/index), those calls will not find the container unless container naming/service discovery is addressed.
…nto CI-CD-updates
No description provided.