aws / aws/aws-codedeploy-agent

appspec.yml pattern and exclude file globs

Abierto
#151 17 comentarios 7 reacciones 0 asignados Ver en GitHub
feature-request needs triage waiting for info
Lenguaje dominante
Rust
Estrellas
337
Forks
195
Merge medio
10 h 54 min
PR fusionados (30 d)
4

Descripción

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.

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Comienza reproduciendo el despliegue con la appspec.yml proporcionada, centrándote en las entradas de permisos y en sus claves pattern y except. Rastrea cómo el agente hace coincidir archivos en los subdirectorios y gestiona reglas de permisos superpuestas. Se considera terminado cuando los globs de estilo bash funcionan de forma coherente y bin/console queda excluido sin un error de duplicate-permissions.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
aws, yaml
Área
devops, release
Tipo de issue
Nueva funcionalidad
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.