1
votes

Publier l'application React sur les pages Github à l'aide des actions github

J'ai créé une application Reactjs simple et maintenant je veux la publier sur gh-pages. J'ai suivi ce tutoriel Facebook pour le déployer et il est également déployé à partir de mon PC. Mais maintenant, au lieu de le déployer manuellement à chaque fois, j'ai pensé à utiliser Actions Github pour déployer à chaque push vers la branche maître . j'ai donc écrit l'action ci-dessous.

    {
  "homepage": "http://itissandeep98.github.io/TimeTableManager/",
  "name": "timetablemanager",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@testing-library/jest-dom": "^4.2.4",
    "@testing-library/react": "^9.3.2",
    "@testing-library/user-event": "^7.1.2",
    "bootstrap": "^4.5.0",
    "bootstrap-social": "^5.1.1",
    "font-awesome": "^4.7.0",
    "gh-pages": "^3.1.0",
    "react": "^16.13.1",
    "react-dom": "^16.13.1",
    "react-scripts": "3.4.1"
  },
  "scripts": {
    "predeploy": "npm run build",
    "deploy": "gh-pages -d build",
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  }
}

Mais cette action échoue car elle oblige l'utilisateur à saisir le nom d'utilisateur et le mot de passe.

> gh-pages -d build
fatal: could not read Username for 'https://github.com': No such device or address

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! timetablemanager@0.1.0 deploy: `gh-pages -d build`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the timetablemanager@0.1.0 deploy script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/runner/.npm/_logs/2020-06-21T07_07_19_700Z-debug.log
##[error]Process completed with exit code 1.

Comment puis-je résoudre ce problème?

Modifier: Voici le fichier package.json

name: gh pages publish

on:
  push:
    branches: master

jobs:
  build:
    runs-on: ubuntu-latest

steps:
  - uses: actions/checkout@v2
  - uses: actions/setup-node@v1
    with:
      node-version: 12
      registry-url: https://registry.npmjs.org/
  - name: publish package
    run: |
      yarn
      npm run deploy


1 commentaires

Si vous pouviez fournir votre package.json , cela aiderait à résoudre votre problème.


3 Réponses :


1
votes

Selon le dépannage des pages github de l'application Create React ici , vous besoin de faire ce qui suit.

  1. Créer un nouveau jeton d'accès personnel
  2. git remote set-url origin https: // : @ github.com / / .
  3. Réessayez npm run deploy

Assurez-vous également que tout dans votre package.json est correct, mais cela ressemble vraiment à un problème d'authentification.


0 commentaires

0
votes

Mettre ceci ici pour ceux qui cherchent à faire la même chose que l'OG:

J'ai créé et ajouté un personnel jeton , et a également rencontré d'autres problèmes.

Voici les modifications que j'ai finalement apportées au fichier d'action:

      - name: setup git authentication 
        run: |
          git config --global user.email "<me>@<gmail>.com"
          git config --global user.name "<my_name>"
          git remote set-url origin https://<user>:<token>@github.com/<user>/<repo>

      - name: publish
        run: |
          yarn
          npm run deploy


0 commentaires

0
votes

pour toute autre personne qui se retrouve ici, vous pouvez utiliser le secrets.GITHUB_TOKEN disponible sur chaque action , sans le définir directement dans les paramètres de votre dépôt.

Utilisez la réponse de Joey Baruch ci-dessus, remplacez simplement par:

${{ secrets.GITHUB_TOKEN }}

Ps stackoverflow ne me laisse pas encore de commentaire, j'ai donc dû publier ceci comme une réponse distincte.


0 commentaires