Bilder mit einer GitHub Action optimieren

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Ich habe neulich mit GitHub Actions herumgespielt. Ein sehr schönes Werkzeug! Kurz gesagt: Du kannst damit Code ausführen lassen, zum Beispiel deine Build-Prozesse, Tests und Deployments. Aber es sind nur Konfigurationsdateien, die alles ausführen können, was du brauchst. Es gibt einen ganzen Marktplatz von Actions, die Arbeit für dich erledigen wollen.

Was ich tun wollte, war, Code zur Bildoptimierung auszuführen. So muss ich nie darüber nachdenken. Jedes Bild im Repo wurde optimiert.

Es gibt bereits eine Action dafür, Calibre's image-actions, die wir hier nutzen werden. Du musst auch sicherstellen, dass Actions für das Repo aktiviert sind. Ich weiß, dass wir in meiner Hauptorganisation Actions nur pro Repo aktivieren, was eine der Optionen ist.

Dann erstellst du eine Datei unter ./github/workflows/optimize-images.yml. Dort kannst du diese Action konfigurieren. Alle deine Actions können separate Dateien haben, wenn du das möchtest. Ich habe dies zu einer separaten Datei gemacht, weil (1) es nur mit „Pushes zu Pull Requests“ funktioniert und wenn du andere Actions hast, die bei anderen Triggern laufen, sie nicht gut zusammenarbeiten, und (2) das so in deren Dokumentation steht und wie die empfohlene Verwendung aussieht.

name: Optimize images
on: pull_request
jobs:
  build:
    name: calibreapp/image-actions
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Repo
        uses: actions/checkout@master

      - name: Compress Images
        uses: calibreapp/image-actions@master
        with:
          githubToken: ${{ secrets.GITHUB_TOKEN }}

Wenn du jetzt einen Pull Request erstellst, siehst du, wie er läuft

Diese erfolgreiche Ausführung hinterlässt dann einen Kommentar zum Pull Request, der besagt, was optimiert werden konnte

Es wird diese Dateien sogar tatsächlich wieder in den Pull Request zurück-committen. Wenn du also beim Pull Request bleibst und weiterarbeitest, musst du erneut pushen, bevor du die optimierten Bilder pushen kannst.

Ich kann diesen automatischen Commit ansehen und den Unterschied erkennen

Die Commit-Vorschau in Git Tower.

Wie ich den PR zusammenführen kann, wissend, dass alles in Ordnung ist

Ziemlich cool. Ist es besonders schwer, deine Bilder lokal zu optimieren? Nein. Ist es besser, nie wieder darüber nachdenken zu müssen? Ja. Du nimmst hier ein kleines bisschen technische Schuld auf dich, reduzierst aber anderswo welche, was ein sehr fairer Tausch ist, zumindest in meinen Augen.