Pour continuer avec l'exemple de workflow, vous devez le configurer.
Vous pouvez accéder à la configuration du bloc en cliquant sur Edit parameters dans l'onglet , ou en faisant un clic droit sur le bloc et en sélectionnant Edit parameters pour ouvrir la fenêtre . Une fois qu'un bloc possède des paramètres, le bouton devient .
Pour configurer les blocs de l'exemple, suivez ces étapes :
-
Ouvrez la fenêtre pour l'action
.List locales
-
Les champs et nécessiteront des valeurs dynamiques qui sont résolues au moment de l'exécution.
-
Cliquez sur l'icône de lien
pour le champ et sélectionnez l'action
.Fetch access tokens
Le lien devient vert et le champ peut être modifié.
-
La syntaxe permettant d'accéder aux propriétés d'un déclencheur ou d'une action faisant l'objet d'une référence est la suivante :
{{$.path.to.value}}La sortie de
est la suivante :Fetch access tokens
{ "tokens": {"strings_token": "STRINGS_TOKEN", "tms_token": "TMS_TOKEN"} }l'expression requise pour le champ est donc
{{$.tokens.strings_token}}. -
Cliquez sur l'icône de lien
pour le champ et sélectionnez le déclencheur
.uploads:create
Le lien devient vert et le champ peut être modifié.
-
La sortie du déclencheur
se présente comme suit :uploads:create
{ "branch": { "name": "my_branch" }, "event": "uploads:create", "message": "user-1 initialized file upload file.yml in project name_1672734591_11 within branch 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" } }L'expression requise pour le champ est donc
{{$.project.id}}. -
Cliquez sur Enregistrer.
La fenêtre se ferme et les paramètres de l'action sont enregistrés
-
-
Pour créer une tâche, il faut transmettre l'ID des paramètres régionaux par défaut du projet à l'action
. L'actionCreate Job
reçoit des données JSON, applique le filtre indiqué, puis produit une sortie au format JSONTransform JSON with jq
-
Dans l'onglet de la fenêtre , recherchez phrase-jq.
Faites glisser le bloc d'action
sous l'actionTransform JSON with jq
et déposez-le pour les connecter.list locales
-
Ouvrez la fenêtre pour l'action
Transform JSON with jq. -
Sélectionnez dans la liste déroulante .
-
Cliquez sur l'icône de lien
pour le champ et sélectionnez l'action
.list locales
Le lien devient vert et le champ peut être modifié.
-
Le champ reçoit les données JSON en entrée. Une expression fixe spéciale (
@au lieu de$) garantit que la totalité de la sortie de l'action référencée est transmise dans le champ.Saisissez l'expression
{{@.outputs.result}}dans le champ . -
Cliquez sur l'icône de lien
pour le champ et sélectionnez l'action
.list locales
Le lien devient vert et le champ peut être modifié.
-
Un filtre de la liste des paramètres régionaux qui renvoie une nouvelle liste contenant tous les éléments où la propriété
defaultesttrueest requis.Il ne peut y avoir qu'un seul paramètre régional par défaut par projet et la liste contient un élément identifiable et requis. On accède directement à cet élément avec la syntaxe de tableau
.[0].Saisissez l'expression
map(select(.default))|.[0]dans le champ . -
Cliquez sur Enregistrer.
La fenêtre se ferme et les paramètres de l'action sont enregistrés
-
-
L'action
peut maintenant être configurée en suivant les mêmes principes que pour les blocs précédents.Create a job
-
Cliquez sur l'icône de lien
pour le champ et sélectionnez l'action
.Fetch access tokens
Le lien devient vert et le champ peut être modifié.
Saisissez l'expression
{{$.tokens.strings_token}}. -
Cliquez sur l'icône de lien
pour le champ et sélectionnez le déclencheur
.uploads:create
Le lien devient vert et le champ peut être modifié.
Saisissez l'expression
{{$.project.id}}. -
Cliquez sur l'icône de lien
pour le champ et sélectionnez l'action
Transform JSON with jq.Le lien devient vert et le champ peut être modifié.
Saisissez l'expression
{{@.outputs.result}}. -
La date d'échéance peut être calculée à l'aide de fonctions sprig ou Expr, mais cet exemple utilise une date fixe reconnue par l'API.
Dans le champ , saisissez 2023-12-31T12:00:00Z.
-
Cliquez sur Enregistrer.
La configuration est enregistrée et les détails peuvent être consultés dans l'onglet .
-
-
Chaque action peut avoir une ou plusieurs conditions combinées à l'aide des opérateurs logiques
ANDetOR. Ces conditions sont évaluées lors de l'exécution, et l'action ainsi que ses actions enfants ne s'exécuteront que si la condition est remplie.Pour refléter cela dans l'exemple, une fois l'action
sélectionnée, cliquez sur Edit conditions dans l'onglet ou faites un clic droit sur le bloc et sélectionnez Edit conditions.Create a job
La fenêtre s'ouvre.
-
Comme pour les blocs précédents, liez le champ au déclencheur
et saisissez l'expressionuploads:create
{{$.upload.tag}}. -
Sélectionnez NOT dans la première liste déroulante pour inverser la condition.
-
Sélectionnez IsNull dans la liste déroulante .
-
Cliquez sur Enregistrer.
La condition s'affiche dans l'onglet .
Le flux de travail s'arrêtera à ce stade si le téléversement ne contient pas de balise (ce qui signifie qu'il n'y avait pas de nouvelles clés ou traductions, ni de clés ou traductions mises à jour).
-
-
Les paramètres régionaux cibles sont désormais requis pour le travail. Aux fins de cet exemple, deux paramètres régionaux seront créés : un pour l'espagnol (es-ES) et un pour l'allemand (de-DE). Les paramètres régionaux seront ajoutés aux deux actions
dans la fenêtre comme à l'étape 3.Transform JSON with jq
-
Dans le champ des deux actions, saisissez l'expression
{{@.outputs.result}}, créez un lien vers l'actionet enregistrez le paramètre.List locales
-
Dans le champ d'une action, saisissez l'expression
map(select(.name == "es-ES"))|.[0]et créez un lien vers l'action.List locales
Enregistrez le paramètre.
-
Dans la deuxième action, saisissez l'expression
map(select(.name == "de-DE"))|.[0]et créez un lien vers l'action.List locales
Enregistrez le paramètre.
-
-
Les paramètres régionaux seront désormais utilisés lors de la création de la tâche.
Configurez les deux actions
selon la même méthode que précédemment.Add a target locale to a job
-
La tâche peut maintenant être démarrée.
Configurez l'action
selon la même méthode que précédemment.Start a job
Une fois les blocs configurés, vous pouvez exécuter le workflow à la demande pour le tester, sans attendre qu'il soit déclenché par une planification ou un webhook.
Démarrez une exécution de l'une des manières suivantes :
-
Dans l'éditeur de workflow, utilisez le bouton Run pour ouvrir la boîte de dialogue .
-
Envoyez une requête
POSTvers/orchestrator/api/v1/workflows/{workflow_id}/executionsdans l'API publique.
Une exécution utilise toujours la dernière révision du workflow. La révision n'a pas besoin d'être publiée, mais elle doit passer la validation requise pour la publication. Chaque lancement crée une nouvelle exécution, répertoriée sur la page avec l'étiquette Manual.
Remarque
Les exécutions à la demande ne sont disponibles que pour les workflows utilisant le moteur de workflow de nouvelle génération. Pour les workflows d'ancienne génération, le bouton Run ne s'affiche pas dans l'éditeur et l'API renvoie une erreur 422.
Les ensembles d'actions et les modèles ne peuvent pas être exécutés, et le workflow doit avoir un propriétaire.