So laden Sie GitHub-Aktionen auf Amazon S3 hoch

GitHub Actions ist ein leistungsstarkes CI/CD-Tool zum Ausführen automatisierter Builds aus Ihrem GitHub-Repository. Der letzte Schritt dieses Prozesses ist die Bereitstellung, bei der die Build-Artefakte an einen Ort hochgeladen werden, an dem sie leicht zugänglich sind. AWS S3 ist für viele Menschen der Speicher ihrer Wahl und lässt sich leicht in Aktionsskripte integrieren.

Warum AWS S3-Buckets für die Bereitstellung verwenden?

Es ist erwähnenswert, dass GitHub Actions zwar über ein grundlegendes Artefaktspeichersystem verfügt, Sie dieses jedoch nicht in der Produktion verwenden möchten. Es dient Archivierungs- und Testzwecken und Artefakte aus abgeschlossenen Builds verfallen nach 90 Tagen.

Es gibt auch GitHub-Pakete, die als Ersatz für sprachspezifische Paketmanager wie konzipiert sind JavaScripts npm. Dies kann sehr nützlich sein, wenn Sie ein NPM-Paket veröffentlichen, ist aber für andere Arten von Builds nicht so nützlich.

Für alle anderen Arten von Artefakten sind die S3-Buckets von Amazon nach wie vor eine der bevorzugten Möglichkeiten, Dateien zur Verteilung und Bereitstellung hochzuladen. Sie werden durch das IAM-Berechtigungssystem von AWS unterstützt, das über hervorragende Sicherheit verfügt und in der Lage ist, die Zugriffskontrollen auf Ihren kompilierten Quellcode zu optimieren.

Alternativ, wenn Sie es sind Wenn Sie Docker-Container für die Bereitstellung verwenden, sollten Sie stattdessen eine Container-Registrierung verwenden. Glücklicherweise verfügt GitHub über eine private Registry, die sich leicht integrieren lässt, und Sie können unseren Leitfaden zur Verwendung lesen, um mehr zu erfahren.

VERWANDTE: Erste Schritte mit der neuen Docker-Container-Registrierung von Github

Die Verwendung von S3 ist recht einfach und die meisten der hier gezeigten Schritte gelten auch für S3-kompatible Speicherlösungen wie Digital Ocean Spaces oder self -gehostetes MinIO, da sie dieselbe API verwenden.

Hochladen auf AWS S3 von GitHub-Aktionen

VERWANDTESo verwenden Sie GitHub-Aktionen zur Automatisierung Ihrer Repository-Builds

Um zu beginnen, sollten Sie sicherstellen, dass der Rest Ihres GitHub Actions-Build-Skripts funktioniert und einen gültigen Build erstellt, was im Allgemeinen nicht der Fall ist Sie möchten mehrere Probleme gleichzeitig beheben.

Wenn Sie noch keins haben, hängt die Einrichtung von Ihrer Build-Toolchain ab, aber Sie können unseren Leitfaden zum Einrichten automatisierter Builds lesen, um mehr zu erfahren. Sie können das hochzuladende Artefakt auch testen, indem Sie die integrierte Upload-Artefakt-Aktion von GitHub verwenden, die den Inhalt eines Verzeichnisses als Bundle veröffentlicht.

Sie können dann die Bundle-Erstellung in der Zusammenfassung > bestätigen. Artefakte.

Sobald Sie einen Build haben, ist das nicht der Fall Sollte dies nicht fehlschlagen, können Sie den S3-Upload am Ende hinzufügen. Es gibt keine offizielle Möglichkeit, dies einfach zu bewerkstelligen, und auf dem GitHub Actions Marketplace gibt es viele verschiedene Lösungen.

Am beliebtesten ist S3 Sync, das die native S3-API verwendet Es ermöglicht das Hochladen erstellter Artefakte und ist einfach zu konfigurieren. Es gibt auch einfache Wrapper wie s3cmd, mit denen Sie Befehle direkt an die S3-CLI übergeben können.

Eine Anmerkung jedoch: Die meisten davon basieren auf von Linux gehosteten Läufern oder Docker-Containern, die mit den notwendigen Abhängigkeiten für die Funktion der S3-CLI ausgestattet sind. Die meisten Builds laufen unter Linux. Wenn Sie Ihre Builds jedoch unter Windows ausführen müssen, müssen Sie eine andere Aktion verwenden. Die plattformübergreifende Variante, die unserer Meinung nach funktioniert, ist stcalica/s3-upload. Dies verwendet einen JavaScript-Wrapper, der das s3cmd-Paket installiert und unter Windows einwandfrei funktioniert.

Zunächst müssen Sie GitHub Secrets für Ihre AWS-Authentifizierungstoken einrichten. Diese können natürlich nicht öffentlich sein und müssen in den Geheimnissen des Repositorys gespeichert und über den Namen abgerufen werden. Dies verhindert ein versehentliches Auslaufen Ihrer Token und ermöglicht eine einfache Schlüsselverwaltung.

Sie können unseren Leitfaden zur Verwendung von GitHub Secrets lesen, um mehr darüber zu erfahren, aber das Wichtigste, was Sie von Ihnen benötigen, ist, zum Repository zu gehen Einstellungen und klicken Sie dann auf Geheimnisse > Aktionen und erstellen Sie ein

Fügen Sie dann am Ende Ihres GitHub-Aktionsskripts ein benanntes „Deploy“-Skript hinzu. Schritt und legen Sie fest, dass die Aktion „s3-sync“ oder die von Ihnen gewählte Aktion verwendet wird. Sie müssen die Geheimnisse für den Zugriffsschlüssel und die ID übergeben, die Sie als Umgebungsvariablen konfiguriert haben.

… – Name: Deploy To S3 – verwendet: actions/checkout@master – verwendet: jakejarvis/s3-sync-action@master mit: args: –acl public-read –follow-symlinks –delete env: AWS_S3_BUCKET : ${{ Secrets.AWS_S3_BUCKET }} AWS_ACCESS_KEY_ID: ${{ Secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ Secrets.AWS_SECRET_ACCESS_KEY }} AWS_REGION: 'us-east-1' # optional: Standardmäßig ist us-east-1 SOURCE_DIR: 'bin/Linux/net48' # optional: standardmäßig das gesamte Repository DEST_DIR: '/' # optional: standardmäßig das Stammverzeichnis des Buckets

Insbesondere bei diesem Workflow können Sie Argumente auch direkt an s3cmd übergeben, die verwendet werden können um beispielsweise öffentliche Lese-ACLs zu aktivieren. Hier wird das Objekt auf öffentlich gesetzt und der alte Inhalt in diesem Verzeichnis im Bucket wird gelöscht, um sicherzustellen, dass alles mit der Build-Ausgabe übereinstimmt und keine alten Dateien vorhanden sind.

Nachdem dies hinzugefügt wurde, müssen Sie nur noch die Änderungen am Build-Skript festschreiben und den Build optional manuell erneut ausführen, wenn er bei einem neuen Commit nicht automatisch erneut gestartet wird. In GitHub wird keine Build-Ausgabe angezeigt, da diese an S3 gesendet wurde. Sie können jedoch die Protokolle von s3cmd unter „Auf S3 bereitstellen“ überprüfen. Schritt im Build-Protokoll:

Hoffentlich Sie&#8217 ;Es wird eine Protokollausgabe ähnlich der oben angezeigten angezeigt, die bestätigt, dass der Prozess erfolgreich ausgeführt wurde.

WEITER LESEN

  • › Microsoft 365-Apps erhalten eine neue Standardschriftart
  • › Google Bard AI verfügt über neue Funktionen und unterstützte Sprachen
  • › Windows 11 verabschiedet sich von alten ARM-Apps
  • › Googles NotebookLM verändert das Notizenmachen
  • › 1Password beschleunigt Ihren Anmeldevorgang
  • › So beheben Sie „Der Wiederherstellungsserver konnte nicht kontaktiert werden“ Mac-Fehler

Posted

in

by

Tags: