Kategorien
Entwicklung Informationen

Github Backups aber wie?

Wie Sie sicherlich wissen, nutzen wir GitHub für unsere Codeverwaltung. Nun kam vor einiger Zeit der Gedanken auf, diese Codebase nochmal zusätzlich zu sichern. Es gibt zwar auch von allen Endgeräten Backups, aber sicher ist sicher. Und wie heißt es so schön: Kein Backup kein Mitleid!

Wir schauten also nach Lösungsansätzen um Backups direkt über GitHub ausführen zu lassen. Und stießen auf dieses Repository. Mit dieser GitHub Action ist es möglich direkt und automatisiert ein Backup des Repository in einem S3 Bucket zu sichern.

Für dieses Tutorial benötigen Sie ein S3 Bucket und ein GitHub Repository. Wir haben auf ein klassisches AWS S3 Bucket zurück gegriffen. Die Website dazu finden Sie hier. Ebenfalls benötigen Sie die Zugangsdaten zu dem S3 Bucket. Hier eine kleine Anleitung, wie Sie diesen erhalten.

Nun können Sie eine neue Action in dem GitHub Repository erstellen. Dazu können Sie diesen Beispiellose nutzen.

name: S3 Backup
on:
  push:
    branches:
      - master
jobs:
  s3Backup:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: S3 Backup
        uses: peter-evans/s3-backup@v1
        env:
          ACCESS_KEY_ID: ${{ secrets.AWS_S3_BUCKET_ACCESS_KEY_ID }}
          MIRROR_TARGET: ${{ secrets.AWS_S3_BUCKET_MIRROR_TARGET }}/${{ github.repository }}
          SECRET_ACCESS_KEY: ${{ secrets.AWS_S3_BUCKET_SECRET_ACCESS_KEY }}
        with:
          args: --overwrite --remove

In diesem Beispiel haben wir die Zugangsdaten (ACCESS_KEY_ID & SECRET_ACCESS_KEY) und das Mirror Target als Github Secret hinterlegt. Diese können entweder direkt in dem Repository hinterlegt werden oder in der Organisation. Dafür ist eventuell ein Upgrade des Plans erforderlich.

Nun werden bei jedem Update des master Branches in dem Repository die Daten mit einem Github Workflow zusätzlich in Ihrem S3 Bucket gesichert.

Wir hoffen, dass wir Ihnen mit diesem kleinen Tutorial weiterhelfen konnten. Bei Fragen schreiben Sie und gerne an info@jj-ideenschmiede.de.

Von Jonas Kwiedor

Full- Stack Developer aus Hamburg. Liebt es sich mit Schnittstellen & Automationen auseinander zu setzen und sich mit der Programmiersprache GO Lang zu beschäftigen.