aws / aws/aws-codedeploy-agent

appspec.yml pattern and exclude file globs

Ouverte
#151 17 commentaires 7 réactions 0 personnes assignées Voir sur GitHub
feature-request needs triage waiting for info
Langage dominant
Rust
Étoiles
337
Forks
195
Merge moyen
10 h 54 min
PR mergées (30 j)
4

Description

It would be great if the `pattern` and `exclude` keys accepted bash file globs and worked properly across sub directories. For example, I have a Symfony4 app that looks like:

```
bin/
console
config/
services.yaml
public/
index.php
src/
MyController.php
templates/
my_template.html.twig
```

I want all directories to have mode `750` and all files to have mode `640`. Except for the `bin/console` file which needs mode `750`.

This is the config that I've tried in `appspec.yml`:
```yml
version: 0.0
os: linux

files:
- source: /
destination: /srv/www/app/

permissions:
- object: /srv/www/app
owner: ubuntu
group: www-data
mode: 750
type:
- directory
- object: /srv/www/app
pattern: '**'
except:
- bin/console # also tried 'console' and 'bin/*' and '/srv/www/app/bin/console'
owner: ubuntu
group: www-data
mode: 640
type:
- file
- object: /srv/www/app/bin
owner: ubuntu
group: www-data
mode: 750
type:
- file
```

But I get the following error:
```
The deployment failed because the permissions setting for (/srv/www/app/bin/console) is specified more than once in the application specification file. Update the files section of the AppSpec file, and then try again.
```

I can't seem to find a value which I can put in the `except` key that successfully excludes the `bin/console` file. If it supported bash file globs you could easily do something like `bin/*` because all the files in the bin directory are going to need different permissions.

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par reproduire le déploiement avec l'appspec.yml fournie, en vous concentrant sur les entrées de permissions ainsi que sur leurs clés pattern et except. Suivez la manière dont l'agent fait correspondre les fichiers dans les sous-répertoires et gère les règles de permissions qui se chevauchent. Le travail est terminé lorsque les globs de style bash fonctionnent de manière cohérente et que bin/console est exclu sans erreur duplicate-permissions.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
aws, yaml
Domaine
devops, release
Type d'issue
Fonctionnalité
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.