web-dev-qa-db-fra.com

Comment réexécuter des actions Github?

Je vois cela sur l'interface utilisateur Web de Github:

screenshot

mais il n'est pas clair pour moi si les réexécutions désactivées sont le résultat de mon .github/main.workflow configuration, ou hérité du service Actions Github.

Exemple de workflow ci-dessous - Je ne vois rien d'évident qui désactiverait les réexécutions.

workflow "Test, Lint" {
  on = "Push"
  resolves = [
    "Test",
    "Lint",
    "Lint Format"
  ]
}

action "Install" {
  uses = "actions/npm@master"
  args = "install"
  secrets = ["SECRET_TOKEN"]
}

action "Test" {
  needs = "Install"
  uses = "actions/npm@master"
  args = "test"
  secrets = ["SECRET_TOKEN"]
}

action "Lint" {
  needs = "Install"
  uses = "actions/npm@master"
  args = "run lint"
  secrets = ["SECRET_TOKEN"]
}

action "Lint Format" {
  needs = "Install"
  uses = "actions/npm@master"
  args = "run lint:format"
  secrets = ["SECRET_TOKEN"]
}
17
tuff

Ce n'était qu'une fonctionnalité manquante/non implémentée des actions Github, qui a maintenant été ajoutée. Je n'ai apporté aucune modification à mon fichier de workflow ou aux paramètres de mise en pension, mais je peux maintenant voir l'interface utilisateur pour "relancer toutes les vérifications":

screenshot of re-run ui

(Je suis arrivé sur cette page en suivant le lien "Détails" de la section des chèques sur mon PR).

4
tuff

Il y a deux situations:

1) En cas d'échec de la construction , à partir de docs

En option, si l'exécution a échoué, pour réexécuter le flux de travail, dans le coin supérieur droit du flux de travail, utilisez la relance des contrôles drop- menu déroulant et sélectionnez Relancez toutes les vérifications . rerun

2) Si votre exécution n'a pas échoué , vous devez déclencher l'événement que votre flux de travail exécute on:.

Dans le cas le plus courant de on: Push, vous pouvez ajouter un commit vide pour piquer les actions GitHub:

git commit --allow-empty -m "trigger GitHub actions"
git Push

Cela ajoutera un commit vide (aucun fichier modifié), et déclenchera un autre événement Push sur GitHub, et déclenchera donc une autre exécution de workflow.

Cela détruit cependant l'historique des validations. Vous pouvez ensuite les écraser/supprimer si vous le souhaitez, mais ce n'est peut-être pas idéal.


Il s'agit d'une mise à jour de ma réponse d'origine, qui faisait référence à GitHub Actions HCL v1, avant la réédition d'août 2019 basée sur YAML. @tuff a obtenu ce premier droit, avec la mise en garde de @ instantepiphany.

20
maxheld

Vous pouvez également maintenant (janvier 2020) utiliser la nouvelle API d'actions GitHub (!, toujours bêta cependant), comme - annoncé ici .

Et il comprend un API GitHub Actions Secrets :

Réexécutez un workflow

Réexécute votre exécution de workflow à l'aide de son ID.
Toute personne disposant d'un accès en écriture au référentiel peut utiliser ce point de terminaison.
Les applications GitHub doivent avoir l'autorisation d'actions pour utiliser ce point de terminaison.

POST /repos/:owner/:repo/actions/runs/:run_id/rerun

Vous pouvez donc essayer de créer un script et obtenir une réexécution du flux de travail Actions via cette nouvelle API.

1
VonC

Prise automatique ci-dessous.

Mon copain et moi avons créé une application GitHub extrêmement simple pour vous permettre de déclencher une répartition de référentiel à partir d'une interface utilisateur. Ce n'est pas tout à fait aussi étendu qu'une réexécution, mais cela vous donnera un moyen de déclencher un flux de travail.

https://www.actionspanel.app/

Cela vous permet de ne pas avoir à faire un tas de commits vides et autres.

0
aaronbatilo