es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La variable de Gitlab CI antes del script con curl genera un error de sintaxis YAML.

Estoy definiendo una variable JWT, en la cual almacenaré un token que utilizaré más adelante dentro del código. Voy a obtenerlo en el paso before_script mediante una llamada curl.

El problema es que cuando intento ejecutar la canalización, falla con el error:

Se encontraron errores en tu archivo .gitlab-ci.yml: ¡El archivo incluido .gitlab-ci.yml no tiene una sintaxis YAML válida!

Ya he leído esta respuesta de Stack Overflow para interpolar correctamente las variables de entorno USER y PASS.

Este es mi archivo .gitlab-ci.yml:


build-dist: environment: name: develop variables: JWT: "" stage: build image: node:16-alpine cache: key: files: - yarn.lock paths: - node_modules - .yarn before_script: - if [ -z "$USER" ] || [ -z "$PASS" ]; then exit 1; fi - apk add curl - JWT=$(curl -s -X POST -H "Content-Type: application/json" -d '{"username": "'"'"$USER"'"'","password": "'"'"$PASS"'"'"}' "https://example.com/token") script: - yarn install --pure-lockfile --cache-folder .yarn - yarn build

¿Cómo debo corregir la siguiente línea dentro de mi archivo .gitlab-ci.yml para que funcione correctamente?

- JWT=$(curl -s -X POST -H "Content-Type: application/json" -d '{"username": "'"'"$USER"'"'","password": "'"'"$PASS"'"'"}' "https://example.com/token")
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece haber un problema con la sintaxis de las llaves curvas y las comillas dobles en el comando curl, lo cual está causando un error de sintaxis en YAML.

    Para corregirlo, puedes actualizar la línea para usar comillas simples para todo el comando y escapar las comillas simples dentro de los datos JSON:

    - JWT=$(curl -s -X POST -H 'Content-Type: application/json' -d '{"username": "'"$USER"'","password": "'"$PASS"'"}' 'https://example.com/token')
    

    Esto debería interpolar correctamente las variables de entorno USER y PASS, evitando cualquier error de sintaxis en YAML.

Comments are closed.