Pregunta boluda con Github Actions
Ando queriendo hacer un github action, este action se activaria cuando una issue se modifica.
Especificamente cuando la issue pasa a estar cerrada y con la label Accepted.
Y no estoy seguro por que esta fallando.
Dejo una foto del codigo que tengo.
https://i.imgur.com/gb8GS3I.png
Basicamente se activa cuando el issue se modifica, tanto cuando se cierra un issue como cuando se agrega un label Accepted.
Dentro del job agregue un if por que no sabia como hacer para que la condición ocurra antes.
El contains es una función de Github Actions, viene por defecto en la API creo. Contains revisa cada objetos de un arreglo, en este caso labels, y revisa si al menos un atributo, en este caso name, es igual a el segundo parametro, en este caso Accepted, hasta ahí bien. 10 puntos.
El problema esta en el github.event.issue.state == "closed"
me tira error y no entiendo por que.
Adjunto el error:
The workflow is not valid. .github/workflows/on-accepted.yml (Line: 14, Col: 13): Unexpected symbol: '"closed"'. Located at position 87 within expression: contains(github.event.issue.labels.*.name, 'Accepted') && github.event.issue.state == "closed"
Ahora que sabemos esto muestro lo que contiene dentro github.event.issue.
Más arriba había puesto - run: echo " ${{toJSON(github.event)}} "
con el objetivo de comprobar que datos trae ese objeto.
https://i.imgur.com/d1e5bbK.png
Adjunto este output y resalto labels y state para que se note que si trae datos.
En este caso label no es el correcto pero el error lo tira por state en realidad, es decir el contains va a retornar false y sale del if, pero tirar error dentro del if por el state == "closed". No se como comprobar si esta cerrado, alguna sugerencia?
Respuestas
Fijate que el error te marca con doble comillas ' y ", nose si es como escupe el error o que el field lo estas levantando con las comillas.
Unexpected symbol: '"closed"'. Located at position 87 within expression: contains(github.event.issue.labels.*.name, 'Accepted') && github.event.issue.state == "closed"
Logre solucionarlo, es decir que no arroje el error pero no logre que funcione el if, si quieren cierren el tema, no supe como solucionarlo y ya tengo hasta dudas de que sea un bug pero probe de distintas formas y no funciona lo peor es que si hago un
echo
de lo que tiene el if me devuelve lo que espero.Este es el yml por si quieren verlo:
Link del archivo:
Ya estoy tan podrido que hasta rompi lo que funcionaba.