Para continuar con el flujo de trabajo de muestra, será necesario configurarlo.
Puedes acceder a la configuración del bloque 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
.Listar localizaciones
-
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 identificadores únicos (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 identificadores únicos (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 trigger
se parece a:uploads:create
{ "branch": { "name": "my_branch" }, "event": "uploads:create", "message": "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" }, "cargar": { "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
-
-
La localización predeterminada del proyecto es necesaria para crear un trabajo pasando el ID a la acción
. La acciónCrear trabajo
toma una entrada JSON, aplica el filtro especificado y luego vuelve a generar JSONTransform JSON with jq
-
Desde la pestaña en la ventana , busca phrase-jq.
Arrastra y suelta el bloque de acción
debajo del bloque de acciónTransform JSON with jq
para conectarlos.Listar localizaciones
-
Abre la ventana de para la acción
Transform JSON with jq. -
Selecciona del campo desplegable .
-
Haz clic en el ícono de enlace
para el campo y selecciona la acción
.Listar 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
.Listar 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
defaultseatrue.Solo puede haber una localización predeterminada por proyecto y la lista tiene un elemento identificable y obligatorio. 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 se puede configurar y utilizará patrones de bloques anteriores.Crear un trabajo
-
Haz clic en el ícono de enlace
para el campo y selecciona la acción
.Obtener identificadores únicos (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
Transform JSON with 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 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 puedes ver los detalles 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 elementos secundarios solo se ejecutarán si la condición se evalúa como verdadera.Para reflejar esto en el ejemplo, mientras tengas seleccionada la acción
, haz clic en Editar condiciones en la pestaña o haz clic derecho en el bloque y selecciona Editar condiciones.Crear un trabajo
Se abre la ventana .
-
Siguiendo patrones de bloques anteriores, vincula el campo al desencadenador
e ingresa la expresiónuploads:create
{{$.upload.tag}}. -
Selecciona NOT de la primera lista desplegable para invertir la declaración.
-
Selecciona IsNull 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 o traducciones nuevas o actualizadas).
-
-
Ahora se requieren las localizaciones de destino para el trabajo. Para este ejemplo, se crearán dos localizaciones: una para español (es-ES) y otra para alemán (de-DE). Las localizaciones se agregarán a las dos acciones
en la ventana de , como en el paso 3.Transform JSON with jq
-
En el campo de ambas acciones, ingresa la expresión
{{@.outputs.result}}, vincula a la accióny guarda el parámetro.List locales
-
En el campo de una acción, ingresa la expresión
map(select(.name == "es-ES"))|.[0]y vincula a la acción.List locales
Guarda el parámetro.
-
En la segunda acción, ingresa la expresión
map(select(.name == "de-DE"))|.[0]y vincula a la acción.List locales
Guarda el parámetro.
-
-
Las localizaciones ahora se aplicarán a la creación del trabajo.
Configura las dos
acciones con los mismos patrones definidos anteriormente.Agregar una localización de destino a un trabajo
-
El trabajo ya se puede iniciar.
Configura la acción
con los mismos patrones que se definieron anteriormente.Start a job