suchen
HeimWeb-Frontendjs-TutorialEs gibt Möglichkeiten, CI [GitHub-Aktionen] zu beschleunigen, die Sie sofort ausführen können!

ays to speed up CI [GitHub Actions] that you can do immediately!

Für diejenigendie von der langsamen CI-Ausführung frustriert sind.

Hier sind drei Möglichkeiten, die CI-Ausführung mit GitHub Actions zu beschleunigen.

Drei Möglichkeiten, CI [GitHub Actions] zu beschleunigen.

Die folgenden drei Methoden werden in diesem Artikel vorgestellt.

  • Aufteilung des Jobs
  • Paket-Cache-Verarbeitung hinzufügen
  • Tests aufteilen und parallel ausführen

Teilen Sie einen Job auf

Jobs können aufgeteilt werden, sodass jeder Job parallel ausgeführt wird.

Zum Beispiel können die Ausführung eines Unit-Tests und die Ausführung eines Linters oft unabhängig voneinander laufen.

Es wäre effizienter, sie in separaten Jobs zu beschreiben, als in einer Reihe in einem einzigen Job.

jobs:.
  test:.
    runs-on: ubuntu-22.04
    steps:.
    ...

  lint: ...
    runs-on: ubuntu-22.04
    steps: ...
    ...

Paket-Caching-Prozess hinzufügen.

Es wird empfohlen, Pakete zwischenzuspeichern, um den zeitaufwändigen Paketinstallationsprozess zu überspringen.

Verwenden Sie die offiziellen Aktionen/Cache, um den Cache-Prozess zu implementieren.

In den folgenden Fällen wird npm ci nur ausgeführt, wenn sich das Betriebssystem, die Knotenversion oder die Datei, die die Paketinformationen verwaltet (package-lock.json), ändert, andernfalls wird der Cache verwendet.

- name: cache and restore packages
  id: cache-npm
  uses: actions/cache@v4.0.2
  with: node_modules
    path: node_modules
    key: ${{ runner.os }}-${{ steps.tool_versions.outputs.nodejs }}-${{ hashFiles(‘**/package-lock.json’) }}

- name: install npm packages
  if: steps.cache-npm.outputs.cache-hit ! = ‘true’
  run: npm ci
  shell: bash

Teilen Sie Tests auf und führen Sie sie parallel aus

Wenn die Ausführung Ihrer Tests lange dauert, können Sie den Prozess beschleunigen, indem Sie die Tests aufteilen und jeden einzelnen parallel ausführen.

Im Fall von Jest können Sie beispielsweise die Matrixstrategie und die Befehlsoption --shard verwenden. Die Matrixstrategie ist eine einfache Möglichkeit, Tests aufzuteilen und parallel auszuführen.

Die Matrixstrategie ist eine Methode zum Ausführen eines Jobs für jeden in einer Variablen innerhalb eines einzelnen Jobs definierten Wert, und --shard ist eine Option zum Aufteilen von Tests.

Mit diesen können Sie einen Workflow wie den folgenden definieren.

jobs:
  test:
    runs-on: ubuntu-22.04
    strategy:
      matrix:
        shard: [1/4, 2/4, 3/4, 4/4]
    steps:
      - name: checkout
        uses: actions/checkout@v3

      - name: setup environment
        uses: ./.github/actions/setup

      - name: run test
        run: npx jest --ci --shard=${{ matrix.shard }}

Dadurch werden 4 Jobs parallel ausgeführt, wobei jeder ein Viertel der Tests ausführt.

Ich weiß nicht, ob es außer Jest noch andere Optionen wie --shard gibt, aber die Idee selbst kann auf jede Sprache angewendet werden.

Es gibt andere Möglichkeiten.

Die folgenden drei Methoden wurden als einfache Möglichkeiten zur Verbesserung der CI-Geschwindigkeit eingeführt.

  • Aufteilung des Jobs
  • Paket-Cache-Verarbeitung hinzufügen
  • Tests aufteilen und parallel ausführen

Aber darüber hinaus können Sie auch größere Läufer und Lauftests nur in Bereichen verwenden, in denen Änderungen vorgenommen wurden. Es gibt viele andere Möglichkeiten, die Geschwindigkeit zu verbessern.

Es wird empfohlen, die Geschwindigkeit nach und nach so weit wie möglich zu verbessern und dabei die verfügbaren zeitlichen und finanziellen Ressourcen zu berücksichtigen.

Das obige ist der detaillierte Inhalt vonEs gibt Möglichkeiten, CI [GitHub-Aktionen] zu beschleunigen, die Sie sofort ausführen können!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Ersetzen Sie Stringzeichen in JavaScriptErsetzen Sie Stringzeichen in JavaScriptMar 11, 2025 am 12:07 AM

Detaillierte Erläuterung der Methode für JavaScript -Zeichenfolge und FAQ In diesem Artikel werden zwei Möglichkeiten untersucht, wie String -Zeichen in JavaScript ersetzt werden: Interner JavaScript -Code und interne HTML für Webseiten. Ersetzen Sie die Zeichenfolge im JavaScript -Code Die direkteste Möglichkeit ist die Verwendung der Ersatz () -Methode: str = str.replace ("find", "ersetzen"); Diese Methode ersetzt nur die erste Übereinstimmung. Um alle Übereinstimmungen zu ersetzen, verwenden Sie einen regulären Ausdruck und fügen Sie das globale Flag G hinzu:: STR = Str.Replace (/fi

Benutzerdefinierte Google -Search -API -Setup -TutorialBenutzerdefinierte Google -Search -API -Setup -TutorialMar 04, 2025 am 01:06 AM

Dieses Tutorial zeigt Ihnen, wie Sie eine benutzerdefinierte Google -Such -API in Ihr Blog oder Ihre Website integrieren und ein raffinierteres Sucherlebnis bieten als Standard -WordPress -Themen -Suchfunktionen. Es ist überraschend einfach! Sie können die Suche auf y beschränken

Erstellen Sie Ihre eigenen AJAX -WebanwendungenErstellen Sie Ihre eigenen AJAX -WebanwendungenMar 09, 2025 am 12:11 AM

Hier sind Sie also bereit, alles über dieses Ding namens Ajax zu lernen. Aber was genau ist das? Der Begriff AJAX bezieht sich auf eine lose Gruppierung von Technologien, mit denen dynamische, interaktive Webinhalte erstellt werden. Der Begriff Ajax, ursprünglich von Jesse J geprägt

Beispielfarben JSON -DateiBeispielfarben JSON -DateiMar 03, 2025 am 12:35 AM

Diese Artikelserie wurde Mitte 2017 mit aktuellen Informationen und neuen Beispielen umgeschrieben. In diesem JSON -Beispiel werden wir uns ansehen, wie wir einfache Werte in einer Datei mit JSON -Format speichern können. Mit der Notation des Schlüsselwertpaares können wir jede Art speichern

8 atemberaubende JQuery -Seiten -Layout -Plugins8 atemberaubende JQuery -Seiten -Layout -PluginsMar 06, 2025 am 12:48 AM

Nutzen Sie JQuery für mühelose Webseiten -Layouts: 8 Essential Plugins JQuery vereinfacht das Webseitenlayout erheblich. In diesem Artikel werden acht leistungsstarke JQuery -Plugins hervorgehoben, die den Prozess optimieren, insbesondere nützlich für die manuelle Website -Erstellung

Was ist ' this ' in JavaScript?Was ist ' this ' in JavaScript?Mar 04, 2025 am 01:15 AM

Kernpunkte Dies in JavaScript bezieht sich normalerweise auf ein Objekt, das die Methode "besitzt", aber es hängt davon ab, wie die Funktion aufgerufen wird. Wenn es kein aktuelles Objekt gibt, bezieht sich dies auf das globale Objekt. In einem Webbrowser wird es durch Fenster dargestellt. Wenn Sie eine Funktion aufrufen, wird das globale Objekt beibehalten. Sie können den Kontext mithilfe von Methoden wie CALL (), Apply () und Bind () ändern. Diese Methoden rufen die Funktion mit dem angegebenen Wert und den Parametern auf. JavaScript ist eine hervorragende Programmiersprache. Vor ein paar Jahren war dieser Satz

Verbessern Sie Ihr JQuery -Wissen mit dem Quell BetrachterVerbessern Sie Ihr JQuery -Wissen mit dem Quell BetrachterMar 05, 2025 am 12:54 AM

JQuery ist ein großartiges JavaScript -Framework. Wie in jeder Bibliothek ist es jedoch manchmal notwendig, unter die Motorhaube zu gehen, um herauszufinden, was los ist. Vielleicht liegt es daran, dass Sie einen Fehler verfolgen oder nur neugierig darauf sind, wie JQuery eine bestimmte Benutzeroberfläche erreicht

10 Mobile Cheat Sheets für die mobile Entwicklung10 Mobile Cheat Sheets für die mobile EntwicklungMar 05, 2025 am 12:43 AM

Dieser Beitrag erstellt hilfreiche Cheat -Blätter, Referenzführer, schnelle Rezepte und Code -Snippets für die Entwicklung von Android-, Blackberry und iPhone -App. Kein Entwickler sollte ohne sie sein! Touch Gesten -Referenzhandbuch (PDF) Eine wertvolle Ressource für Desig

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

EditPlus chinesische Crack-Version

EditPlus chinesische Crack-Version

Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

SublimeText3 Englische Version

SublimeText3 Englische Version

Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Leistungsstarke integrierte PHP-Entwicklungsumgebung