web-dev-qa-db-fra.com

AWS CodeBuild buildspec.yml récupère tous les fichiers et sous-dossiers de manière récursive

J'essaie d'utiliser AWS CodeBuild pour obtenir tous les fichiers et sous-dossiers dans un dossier public imbriqué et déployer vers un compartiment S3 à l'aide de CodePipeline. J'ai pu les connecter tous ensemble mais j'ai du mal à configurer le buildspec.yml fichier pour obtenir la sortie que je veux.

Ma structure de dossiers:

<path>/public/

├── 404.html
├── css
│   ├── ...
├── fonts
│   ├── bootstrap
│   │   ├── ...
│   ├── icomoon
│   │   ├── icomoon
│   │   │   ├── ...
│   └── simple-line-icons
│       ├── ...
├── images
│   ├── ...
├── index.html
├── index.xml
├── js
│   ├── ...
└── tags
    └── index.xml

J'ai besoin de tout mettre (y compris les sous-dossiers) dans le dossier public à la racine d'un compartiment S3.

Jusqu'à présent, j'ai essayé de suivre les documents ici , ici et ici . J'ai essayé d'utiliser:

  • **/* pour obtenir tout récursivement dans le dossier public mais le bucket S3 aura le chemin du dossier donc le index.html n'est pas à la racine.
  • discard-paths: yes pour supprimer le chemin d'accès au dossier public mais à l'intérieur du compartiment S3, tous les fichiers sont là à la racine, aucune structure de sous-dossier n'est conservée.
  • base-directory: comme décrit ici .
  • artifacts: secondary-artifacts: artifact1: files: - directory/file artifact2: files: - directory/file2 pour conserver la structure des dossiers mais ma génération a échoué.
  • Différentes combinaisons de toutes les syntaxes ci-dessus mais ma construction a juste échoué.
7
Viet

Cela a fonctionné pour moi.

    /
    buildspec.yml
    /public
        index.html
        /js
        /img
        appspec.yml
    /src

dans buildspec.yml

    artifacts:
    files:
      - 'public/*'
    discard-paths: yes
0
ReedAccess

Je rencontrais un problème similaire et après de nombreuses permutations ci-dessous, la syntaxe a fonctionné pour moi.

artifacts:
  files:
    - './**/*'
  base-directory: public
  name: websitename
0