[RUBY] J'ai créé une action GitHub qui facilite la compréhension du résultat de l'exécution de RSpec

introduction

J'ai récemment utilisé GitHub Actions en tant que service CI / CD, mais j'étais insatisfait du fait qu'il était difficile de comprendre le résultat de l'exécution lorsque RSpec a échoué par rapport à CircleCI. Présentation de l'action GitHub suivante réalisée par le hackathon interne pour soulager ce stress.

RSpec Report · Actions · GitHub Marketplace · GitHub

Que puis-je faire?

Dans le cas d'un événement PR, le résultat de l'échec est commenté. De plus, en commentant, le même contenu sera notifié par e-mail, afin que vous puissiez comprendre le contenu du test ayant échoué sans accéder à GitHub.

a23798fbb2f0e6454bf75a0e09034eb8.png

En dehors des événements de relations publiques, vous serez averti via l'API Checks.

0d3c61f6ecc3354a9734eb2b30a82211.png

Comment utiliser

test.yml


name: Build
on:
  pull_request:

jobs:
  rspec:
    steps:
      #Les préparatifs pour l'exécution de RSpec sont omis.
      
      - name: Test
        run: bundle exec rspec -f j -o tmp/rspec_results.json -f p

      - name: RSpec Report
        uses: SonicGarden/rspec-report-action@v1
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          json-path: tmp/rspec_results.json
        if: always()

Autre

point

with:
  token: ${{ secrets.GITHUB_TOKEN }}
  json-path: tmp/rspec_results.json
  title: "# :cold_sweat: RSpec failure ${{ matrix.ci_node_index }}"

Dépôt

GitHub - SonicGarden/rspec-report-action: A GitHub Action that report RSpec failure.

Veuillez l'utiliser si vous le souhaitez.

Recommended Posts

J'ai créé une action GitHub qui facilite la compréhension du résultat de l'exécution de RSpec
J'ai fait un petit bijou pour poster le texte du mode org sur qiita
J'ai créé un outil pour afficher la différence du fichier CSV
Une histoire qui a rendu aussi facile que possible la vérification de l'opération lors de la création automatique d'une mise à jour de bibliothèque PR avec Github Dependabot
Création d'une bibliothèque qui facilite la gestion des préférences partagées Android
[Orienté objet] Un mémorandum qui fait de zéro le meilleur [Résumé du site qui a aidé à comprendre le concept]
Un site facile à comprendre lorsque j'ai commencé à apprendre Spring Boot
Une solution qui facilite la saisie des avantages et des tests Web pour vérifier les résultats
J'ai créé une fonction de réponse pour l'extension Rails Tutorial (Partie 4): une fonction qui rend l'utilisateur unique
J'ai essayé JAX-RS et pris note de la procédure
[Vue Action :: Modèle manquant] Je n'ai pas compris la signification de l'instruction d'erreur, alors je l'ai recherchée.
Connaître la commodité de Docker (-compose) maintenant (liste d'informations auxquelles j'ai fait référence lors de son utilisation)
J'ai essayé d'exprimer les résultats avant et après de la classe Date avec une ligne droite numérique
Je veux comprendre le flux des paramètres de demande de traitement Spring
L'histoire de Collectors.groupingBy que je veux garder pour la postérité
Comment identifier le chemin sur lequel il est facile de se tromper
L'histoire de rendre possible la construction d'un projet qui a été construit par Maven avec Ant
Une histoire à laquelle j'étais accro à deux reprises avec le paramètre de démarrage automatique de Tomcat 8 sur CentOS 8
Je voulais écrire un processus équivalent à une instruction while avec l'API Java 8 Stream
Un mémo sobrement accro à la demande de multipart / form-data
Pensez à un code de test facile à comprendre grâce au test de Comparator
C'était une vie que je voulais réinitialiser le compteur associatif thread-safe
Je vais exposer la putain d'application que j'ai rendue difficile pour obtenir un emploi d'ingénieur sans expérience.
Je voulais faire un diaporama du fond d'écran car l'image de l'écran de verrouillage de Windows 10 est magnifique
Ce que j'ai essayé quand je voulais obtenir tous les champs d'un haricot
Considérez RxJava comme une bibliothèque qui facilite l'écriture du traitement asynchrone
J'étais un peu accro à la comparaison S3 Checksum, alors prenez note.
J'ai fait un exemple de la façon d'écrire un délégué dans Swift UI 2.0 à l'aide de MapKit
J'ai réussi à obtenir un blanc lorsque j'ai apporté le contenu de Beans dans la zone de texte
Je veux obtenir récursivement la superclasse et l'interface d'une certaine classe
J'ai recherché un framework léger qui répondrait au soudain "faites-le vite"
Je veux trouver la somme de contrôle MD5 d'un fichier en Java et obtenir le résultat sous forme de chaîne de caractères en notation hexadécimale.