acquia / cli

Command-line interface for Acquia Cloud Platform products
https://docs.acquia.com/acquia-cli/
GNU General Public License v2.0
42 stars 47 forks source link

CLI-1274: BLT replace with Acquia cli push artifacts issue #1684

Closed bharath0691 closed 6 months ago

bharath0691 commented 6 months ago

Hi Team,

I'm trying replace the BLT with Acquia cli to push the artifacts with tag id using acli command but getting error.

Tag creation: $buildvershort=$env:BUILD_SOURCEVERSION.Substring(0,8) Write-Host 'buildvershort' $buildvershort

creating tag for BLT artifact

$tag=$env:BUILD_BUILDNUMBER+'-'+$env:BUILD_SOURCEBRANCHNAME+'-'+$buildvershort

BLT command : php $env:BUILD_REPOSITORY_NAME/vendor/bin/blt deploy --tag=$tag --commit-msg="ADO" --ignore-dirty --no-interaction

Acquia cli cmd: acli push:artifact --no-sanitize -u dev@svn-23449.dev.hosting.acquia.com:xxxx.git -b master -t $tag -vvv --no-interaction

Error:

[notice] Command: 'which' 'git' [Exit: 0] [notice] Command: git add . && git diff-index --cached --quiet HEAD [Exit: 1] [notice] Command: 'git' 'rev-parse' 'HEAD' [Exit: 0]

In PushArtifactCommand.php line 79:

[Acquia\Cli\Exception\AcquiaCliException]
Pushing code was aborted because your local Git repository has uncommitted
changes. Either commit, reset, or stash your changes via git.

if i create a tag is it create for which , for repo or for branch, or for docroot dir?

BLT able to deploy why not with acquia cli BLT creating tag on build repo where acquia will create on for ?

how to use to deploy acquia cli build artifacts to acquia cloud?

danepowell commented 6 months ago

I see this error:

Pushing code was aborted because your local Git repository has uncommitted changes. Either commit, reset, or stash your changes via git.

BLT would have ignored this because of the --ignore-dirty flag. But there is no equivalent flag in Acquia CLI. This is by design. You need to make sure there are no uncommitted changes in your Git repo before running acli push:artifact.

bharath0691 commented 6 months ago

acli push:artifact --no-sanitize -u dev@svn-23449.dev.hosting.acquia.com:xxxx.git -b master -t $tag -vvv --no-interaction

the above command willl do composer install, npm install, npm build then there are modified files in project directory. Acquia acli push:artifact will not take of this process git commit and all like how BLT will do.

if not what are the steps i have to run to push the artifacts to remote repo. Do i need to commit the changes with git commands before acli push command.

can please share steps.

BLT: The build artifact is committed to a temporary branch (HEAD-build-temp) in the Git repository. A tag (20240215.4-IQSA-3841-6da21efb) is created on the temporary branch. The artifact is pushed to remote Git repositories (git push) associated with the project.

How acli will do above step.

Final question: to replace the BLT is for drupal configuration or we have to replace BLT deploy artifacts process also or both needed.

danepowell commented 6 months ago

Please file a ticket at support.acquia.com, as I think we'll need more information about your application to diagnose this further.