web-dev-qa-db-fra.com

Comment forcer GitHub Pages à construire?

Chaque dépôt GitHub peut avoir ( ou être ) un GitHub Pages site Web, pouvant être construit avec Jekyll. GitHub construit le site chaque fois que vous appuyez sur un nouveau commit.
Existe-t-il un moyen de forcer l’actualisation du site Web Github Pages sans imposer un nouveau commit?

75
Pierre Prinetti

Du support GitHub, 2014-06-07:

Actuellement, il n'est pas possible de déclencher manuellement une reconstruction sans envoyer un commit à la branche appropriée.


Modifier:

Comme Andy l'a souligné dans les commentaires, vous pouvez pousser un commit vide avec la commande:

git commit -m 'rebuild pages' --allow-empty
git Push Origin <branch-name>
122
Pierre Prinetti

J'ai eu ce problème pendant un moment, et le passage à la branche principale n'a rien changé à myapp.github.io, pour deux raisons:

1 - Construire

Peu importe combien de fois j'ai essayé de pousser mon travail sur master, la construction ne commencerait pas. J'ai trouvé une solution de contournement en modifiant mon fichier dans l'éditeur en ligne Github (ouvrez votre fichier index.html et modifiez-le sur le site Web de Github, puis validez).

2 - Problèmes de cache

Même après une construction réussie, je verrais toujours la même page sur myapp.github.io, et un rechargement difficile avec Ctrl + Shift + R ne le résoudrait pas. Si vous utilisez Chrome, examinez votre page, allez dans l'onglet Application, sélectionnez "Effacer le stockage" dans le menu de gauche, puis cliquez sur "Effacer les données du site" en bas du menu.

4
Pierre Olivier Tran

Même après avoir appliqué mes modifications au référentiel GitHub, je ne pouvais pas les voir aujourd'hui. Ensuite, j'ai vérifié les paramètres de mon référentiel pour plus d'informations. Là, j'ai pu constater que la génération échouait et que c'était pour cette raison que je ne pouvais pas voir les modifications.

enter image description here

Vous pouvez également voir un message comme suit: "Votre site rencontre des problèmes de création: Impossible de créer la page. Veuillez réessayer ultérieurement."

Ensuite, je vérifiais mes commits récents et essayais de trouver les causes de ce problème. À la fin, j'ai pu résoudre le problème.

enter image description here

Il y avait une virgule supplémentaire dans les balises (,) et cela a causé ce problème .

enter image description here

Vous ne recevrez pas de messages d'erreur pertinents s'il y a des problèmes dans votre fichier .md. Je vous recommande de vérifier l'état de la construction et de comparer les modifications si vous rencontrez le même problème.

4
Sibeesh Venu

Ceci est faisable à partir de la v3 de l'API GitHub, bien qu'il soit actuellement en version preview https://developer.github.com/v3/repos/pages/#request-a-page-build

POST /repos/:owner/:repo/pages/builds
3
Bennett Blodinger

Le commit vide ne fonctionnait pas pour moi, mais selon la réponse de @benett, cela fonctionnait pour moi:

Ouvrez Postman, créez une nouvelle demande avec l'URL suivante: https://api.github.com/repos/[user_nom///rerepo_nom/fr/pages/builds (remplacer par votre nom et le référentiel) et sélectionnez POST méthode.

Avant de l'exécuter, accédez à l'onglet headers et ajoutez une nouvelle clé Accept avec la valeur application/vnd.github.mister-fantastic-preview+json

Maintenant, vous pouvez l'exécuter et visiter à nouveau vos pages.

3
antoni

Si vous voulez une solution de script rapide, la voici. Effectuez les tâches suivantes une seule fois et exécutez le script chaque fois que vous souhaitez reconstruire votre page GitHub.

1. Créez un jeton d'accès personnel pour la ligne de commande:

  • Suivez l'aide officielle ici pour créer un jeton d'accès personnel. En gros, vous devez vous connecter à votre compte GitHub et aller à: Settings > Developer settings > Personal access tokens > Generate new token.
  • Cochez repo scope.
  • Copiez le jeton.

2. Créez le script suivant:

  • Créez un fichier appelé RebuildPage.sh et ajoutez les lignes:

    #!/bin/bash
    curl -u yourname:yourtoken -X POST https://api.github.com/repos/yourname/yourrepo/pages/builds -H "Accept: application/vnd.github.mister-fantastic-preview+json"
    

    Ici,

    • Remplacez yourname par votre nom d'utilisateur GitHub.
    • Remplacez yourtoken par votre jeton d'accès personnel copié.
    • Remplacez yourrepo par le nom de votre référentiel.

3. Exécutez le script:

  • Si vous utilisez Windows 10:

    • Vous devez installer Windows Subsystem for Linux _, si ce n'est déjà fait. Suivez ceci pour le faire.
    • Supprimez la première ligne (#!/bin/bash) du script et enregistrez-le sous le nom RebuildPage.bat. (c'est-à-dire, remplacez .sh par .bat dans le nom du fichier de script)
    • Alternative au point ci-dessus: Pour obtenir la fonctionnalité de double-clic permettant d’exécuter le fichier .sh:

      • Définissez bash.exe comme programme par défaut pour les fichiers .sh.
      • Ouvrez regedit.exe et éditez HKEY_CLASSES_ROOT\Applications\bash.exe\Shell\open\command. Définissez la valeur (Default) sur:

        "C:\Windows\System32\bash.exe" -c " \"./$(grep -oE '[^\\]+$' <<< '%L')\";"
        
    • Maintenant, double-cliquez sur le script lorsque vous souhaitez reconstruire votre page GitHub. Terminé!

  • Si vous utilisez Linux/Mac, l’exécution du script est identique à celle d’autres scripts. Terminé!

Notes supplémentaires pour la solution:

Cette solution utilise une API de prévisualisation de GitHub REST API v3. Ici est la documentation officielle de l'API.

1
arnobpl

Solution alternative

Vous avez peut-être reçu un e-mail de GitHub vous informant que Jekyll n'a pas réussi à créer votre site lorsque vous l'avez transféré dans votre gh-pages. Si tel est le cas, vous pouvez essayer de forcer Push pour déclencher une autre construction.

Si vous utilisez un dossier dédié pour le site Web final, disons un dossier public, vous pouvez essayer de reconstruire votre dossier et d'ajouter le dossier à vos modifications validées. Après cela, vous devrez scinder ces fichiers dans votre branche gh-pages et les forcer à déclencher une nouvelle construction, même si les fichiers n'ont pas changé du tout. Le reste du code ci-dessous supprime simplement les commits du dossier public et le supprime du système de fichiers local.

Code

git add public
git commit -am ":bug: triggering another jekyll build"
git Push Origin $(git subtree split --prefix public master):gh-pages --force
git reset HEAD~1
rm -rf public

Conseils

Si des modifications non validées ne font pas partie du site final, vous pouvez les stocker à l'aide de la commande suivante.

git stash

Ensuite, exécutez la commande ci-dessus pour forcer manuellement la construction de Jekyll et la désarchiver.

git stash pop

Références

0
Amin NAIRI