Description
There is a naming mismatch between how build.yml uploads GitOps artifacts and how gitops-update.yml downloads them, causing gitops-update to fail for single-app (non-monorepo) repositories.
Root Cause
In build.yml, the artifact is uploaded with the name:
gitops-tags-${{ matrix.app.name }}
For single-app repos (no filter_paths), matrix.app.name resolves to the repository name (e.g., plugin-fees), so the artifact is named:
In gitops-update.yml, the download step uses a pattern-based match:
pattern: ${{ steps.setup.outputs.artifact_pattern }}
The default artifact_pattern is built as gitops-tags-${APP_NAME}-*, which resolves to:
gitops-tags-plugin-fees-*
The glob * requires at least one character after plugin-fees-, so it does not match gitops-tags-plugin-fees. The fallback to the legacy name gitops-tags also does not match.
Impact
- Affects all single-app repositories using
build.yml + gitops-update.yml at v1.13.1
- The
Validate artifacts exist step fails with: No artifacts directory found
- GitOps updates and ArgoCD syncs are completely blocked
Reproduction
Suggested Fix
Either:
- Change the upload name in
build.yml to include a trailing separator for consistency with monorepo naming (e.g., gitops-tags-plugin-fees-root)
- Change the default download pattern in
gitops-update.yml to gitops-tags-${APP_NAME}* (without the - before *)
- Change the download pattern to use an exact name match for single-app repos and pattern for monorepos
Description
There is a naming mismatch between how
build.ymluploads GitOps artifacts and howgitops-update.ymldownloads them, causinggitops-updateto fail for single-app (non-monorepo) repositories.Root Cause
In
build.yml, the artifact is uploaded with the name:For single-app repos (no
filter_paths),matrix.app.nameresolves to the repository name (e.g.,plugin-fees), so the artifact is named:In
gitops-update.yml, the download step uses a pattern-based match:The default
artifact_patternis built asgitops-tags-${APP_NAME}-*, which resolves to:The glob
*requires at least one character afterplugin-fees-, so it does not matchgitops-tags-plugin-fees. The fallback to the legacy namegitops-tagsalso does not match.Impact
build.yml+gitops-update.ymlatv1.13.1Validate artifacts existstep fails with:No artifacts directory foundReproduction
LerianStudio/plugin-feesSuggested Fix
Either:
build.ymlto include a trailing separator for consistency with monorepo naming (e.g.,gitops-tags-plugin-fees-root)gitops-update.ymltogitops-tags-${APP_NAME}*(without the-before*)