Para continuar con el flujo de trabajo de muestra, será necesario configurarlo.
La configuración del bloque se puede acceder haciendo clic en Editar parámetros en la pestaña , o haciendo clic derecho en el bloque y seleccionando Editar parámetros para abrir la ventana . Una vez que un bloque tiene parámetros, el botón cambia a .
Para configurar los bloques para el ejemplo, sigue estos pasos:
-
Abre la ventana para la acción
.Lista de locales
-
Los campos y requerirán valores dinámicos que se resuelven en tiempo de ejecución.
-
Haz clic en el ícono de enlace
para el campo y selecciona la acción
.Obtener tokens de acceso
El enlace se vuelve verde y el campo se puede editar.
-
La sintaxis para acceder a las propiedades de un desencadenador o acción referenciada es:
{{$.path.to.value}}Con la salida para
siendo:Obtener tokens de acceso
{ "tokens": {"strings_token": "STRINGS_TOKEN", "tms_token": "TMS_TOKEN"} }haciendo que la expresión sea requerida para el campo
{{$.tokens.strings_token}}. -
Haz clic en el ícono de enlace
para el campo y selecciona el desencadenador
.uploads:create
El enlace se vuelve verde y el campo se puede editar.
-
La salida del desencadenador
se asemeja a:uploads:create
{ "branch": { "name": "my_branch" }, "event": "uploads:create", "mensaje": "usuario-1 inicializó la carga del archivo file.yml en el proyecto name_1672734591_11 dentro de la rama my_branch\n", "project": { "created_at": "2023-01-03 08:29:51 UTC", "id": "abcdabcdabcdabcd-11", "main_format": "yml", "name": "name_1672734591_10", "point_of_contact": null, "project_image_url": null, "slug": "name_1672734591_10", "updated_at": "2023-01-03 08:29:51 UTC" }, "upload": { "created_at": "2023-01-03 08:29:48 UTC", "filename": "file.yml", "format": "yml", "id": "upload-1", "state": "initialized", "summary": {}, "tag": null, "updated_at": "2023-01-03 08:29:48 UTC" }, "user": { "gravatar_uid": "29a2d1baa67d4ea524cf0f247f7bbb94", "id": "9c365b9a6f77c247c3de959f6152b231", "name": "Joe Sixpack", "username": "user-1" } }haciendo que la expresión sea requerida para el campo
{{$.project.id}}. -
Haz clic en Guardar.
La ventana de se cierra y los parámetros para la acción se guardan.
-
-
El local predeterminado del proyecto es necesario para crear un trabajo pasando el ID a la
acción. LaCrear trabajo
acción toma una entrada JSON, aplica el filtro especificado y luego vuelve a generar JSON.Transformar JSON con jq
-
Desde la pestaña en la , busca frase-jq.
Arrastra y suelta el bloque de acción
debajo de laTransformar JSON con jq
acción para conectarlos.lista de localizaciones
-
Abre la ventana para la
Transformar JSON con jqacción. -
Selecciona del campo desplegable .
-
Haz clic en el ícono de enlace
para el campo y selecciona la acción
.lista de localizaciones
El enlace se vuelve verde y el campo se puede editar.
-
El campo toma la entrada JSON. Una expresión fija especial (
@en lugar de$) asegura que toda la salida de la acción referenciada se pase al campo.Ingresa la expresión
{{@.outputs.result}}en el campo . -
Haz clic en el ícono de enlace
para el campo y selecciona la acción
.lista de localizaciones
El enlace se vuelve verde y el campo se puede editar.
-
Se requiere un filtro de la lista de localizaciones que devuelva una nueva lista que contenga todos los elementos donde la propiedad
predeterminadoseatrue.Solo puede haber un local predeterminado por proyecto y la lista tiene un elemento identificable y requerido. Ese elemento se accede directamente con la sintaxis de array
.[0].Ingresa la expresión
map(select(.default))|.[0]en el campo . -
Haz clic en Guardar.
La ventana de se cierra y los parámetros para la acción se guardan.
-
-
La acción
ahora puede ser configurada y usará patrones de bloques anteriores.Crear un trabajo
-
Haz clic en el ícono de enlace
para el campo y selecciona la acción
.Obtener tokens de acceso
El enlace se vuelve verde y el campo se puede editar.
Ingresa la expresión
{{$.tokens.strings_token}}. -
Haz clic en el ícono de enlace
para el campo y selecciona el desencadenador
.uploads:create
El enlace se vuelve verde y el campo se puede editar.
Ingresa la expresión
{{$.project.id}}. -
Haz clic en el ícono de enlace
para el campo y selecciona la acción
Transformar JSON con jq.El enlace se vuelve verde y el campo se puede editar.
Ingresa la expresión
{{@.outputs.result}}. -
La fecha de vencimiento puede ser calculada con funciones sprig o Expr, pero para los propósitos de este ejemplo se usará una fecha codificada que entiende la API.
En el campo , ingresa 2023-12-31T12:00:00Z.
-
Haz clic en Guardar.
La configuración se guarda y los detalles se pueden ver en la pestaña .
-
-
Cada acción puede tener una o más condiciones combinadas con
Ylógico yO. Estas condiciones se evalúan en tiempo de ejecución y la acción y sus hijos solo se ejecutarán si la condición se evalúa como verdadera.Para reflejar esto en el ejemplo, mientras se tiene seleccionada la acción
, haga clic en Editar condiciones en la pestaña o haga clic derecho en el bloque y seleccione Editar condiciones.Crear un trabajo
Se abre la ventana .
-
Siguiendo los patrones de bloques anteriores, vincule el campo al desencadenador
e ingrese la expresióncargas:crear
{{$.upload.tag}}. -
Seleccione NO de la primera lista desplegable para invertir la declaración.
-
Seleccione EsNulo de la lista desplegable .
-
Haz clic en Guardar.
La condición se presenta en la pestaña .
El flujo de trabajo se detendrá en este punto si la carga no contiene una etiqueta (lo que significa que no hubo claves/traducciones nuevas/actualizadas).
-
-
Los locales de destino ahora son requeridos para el trabajo. Para los propósitos del ejemplo, se crearán dos locales; uno para español (es-ES) y uno para alemán (de-DE). Los locales se agregarán a las dos acciones
en la ventana como en el paso 3.Transformar JSON con jq
-
En el campo de ambas acciones, ingrese la expresión
{{@.outputs.result}}, vincule a la accióny guarde el parámetro.Listar locales
-
En el campo de una acción, ingrese la expresión
map(select(.name == "es-ES"))|.[0]y vincule a la acción.Listar locales
Guarde el parámetro.
-
En la segunda acción, ingrese la expresión
map(select(.name == "de-DE"))|.[0]y vincule a la acción.Listar locales
Guarde el parámetro.
-
-
Los locales ahora se aplicarán a la creación de trabajos.
Configure las dos acciones
con los mismos patrones definidos anteriormente.Agregar un local de destino a un trabajo
-
El trabajo ahora se puede iniciar.
Configura la
acción con los mismos patrones que se definieron anteriormente.Iniciar un trabajo