1

Avec CodeBuild, je compile mon application SpringBoot et place le fichier jar dans un dossier appelé deploy/. Dans mon buildspec.yml à la fin que je fournis:L'artefact de CodeBuild ne peut pas être déployé avec CodeDeploy

artifacts: 
    files: 
    - deploy/* 

Lorsque je branche ce pour CodePipeline, cela crée un fichier zip dans S3. Mais le problème est que ce fichier zip contient le dossier racine, c'est-à-dire deploy. Ainsi, la structure du fichier zip est:

deploy.zip 
    - deploy/ 
    - appspec.yml 
    - app.jar 
    - ... 

Cela conduit au problème que CodeDeploy ne trouve pas le appspec.yml, car du coup il ne cherche pas dans le dossier deploy. J'ai essayé de surmonter cela en fournissant un fichier zip comme artefact à la fin du processus de construction, mais alors dans le pipeline, il obtient juste zippé à nouveau ..

Une idée de comment résoudre ce problème serait très appréciée.

Répondre

1

Il y a un nouveau drapeau, vous pouvez ajouter dans les artefacts section appelée base-directory pour spécifier un chemin de base pour votre package d'artefacts. Cela vous permettra de tronquer le chemin deploy/ de vos artefacts sans perdre le reste de la structure en dessous.

artifacts: 
    files: 
    - **/* 
    base-directory: deploy 

http://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html