Improve CI/CD workflows (and support merge queues)#58
Conversation
There was a problem hiding this comment.
Pull Request Overview
This PR refactors CI/CD pipelines by extracting common logic into reusable subworkflows and adding support for merge queues in feature builds.
- Introduces three subworkflows for build, deploy, and release steps
- Removes legacy
pr_build.ymlandbranch_build.ymlin favor of the new subworkflows - Adds orchestrator workflows (
main_merge.yml,feature_build.yml) that wire up the subworkflows with proper concurrency and merge-queue support
Reviewed Changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| .github/workflows/subworkflow-release.yml | New release subworkflow for tagging, releasing, and registry registration |
| .github/workflows/subworkflow-deploy.yml | New deploy subworkflow for PR demo environments using Docker SSH context |
| .github/workflows/subworkflow-build.yml | New build subworkflow handling lint, test, build, and version tagging |
| .github/workflows/pr_build.yml | Removed legacy PR build workflow |
| .github/workflows/branch_build.yml | Removed legacy branch build workflow |
| .github/workflows/main_merge.yml | Orchestrates main branch CI with build and release subworkflows |
| .github/workflows/feature_build.yml | Orchestrates feature PR CI with merge-queue support |
Comments suppressed due to low confidence (1)
.github/workflows/subworkflow-build.yml:6
- [nitpick] Consider renaming the input
push-tagto snake_case (e.g.,push_tag) to align with common GitHub Actions input naming conventions and avoid potential parsing issues.
push-tag:
| id: package | ||
| working-directory: app-package | ||
| run: | | ||
| packageFilename=`jq -r .name manifest.json | iconv -t ascii//TRANSLIT | sed -r s/[~\^]+//g | sed -r s/[^a-zA-Z0-9]+/-/g | sed -r s/^-+\|-+$//g | tr A-Z a-z` |
There was a problem hiding this comment.
The sed expression may not correctly trim leading/trailing hyphens due to incorrect escaping of the alternation. Switch to a grouped regex like sed -r 's/(^-+|-+$)//g' to handle both cases properly.
| packageFilename=`jq -r .name manifest.json | iconv -t ascii//TRANSLIT | sed -r s/[~\^]+//g | sed -r s/[^a-zA-Z0-9]+/-/g | sed -r s/^-+\|-+$//g | tr A-Z a-z` | |
| packageFilename=`jq -r .name manifest.json | iconv -t ascii//TRANSLIT | sed -r s/[~\^]+//g | sed -r s/[^a-zA-Z0-9]+/-/g | sed -r 's/(^-+|-+$)//g' | tr A-Z a-z` |
| https://api.github.com/repos/deskpro/deskpro-product/contents/docker/compose/deskpro-demo/docker-compose.yml | ||
|
|
||
| - name: Create Docker SSH context | ||
| uses: deskpro/gh-actions/create-ssh-docker-context@master |
There was a problem hiding this comment.
Pin the action version to a specific commit SHA or semver tag instead of relying on @master to ensure workflow stability and reproducibility.
|
|
||
| - name: Deploy demo | ||
| id: deployment | ||
| uses: deskpro/gh-actions/deploy-deskpro-demo@master |
There was a problem hiding this comment.
Pin the action version to a specific commit SHA or semver tag instead of relying on @master to ensure workflow stability and reproducibility.
|
Build for commit 04c2c76 deployed to: https://iframe-pr-58.ci.next.deskprodemo.com URLs: |
No description provided.