Πώς να ανεβάσετε στο Amazon S3 από το GitHub Actions

Το GitHub Actions είναι ένα ισχυρό εργαλείο CI/CD για την εκτέλεση αυτοματοποιημένων εκδόσεων από το αποθετήριο GitHub. Το τελευταίο βήμα αυτής της διαδικασίας είναι η ανάπτυξη, η οποία περιλαμβάνει τη μεταφόρτωση των τεχνουργημάτων κατασκευής σε σημείο όπου είναι εύκολα προσβάσιμα. Το AWS S3 είναι ο αποθηκευτικός χώρος της επιλογής για πολλούς ανθρώπους και είναι εύκολο να ενσωματωθεί με τα σενάρια ενεργειών.

Γιατί να χρησιμοποιήσετε κουβάδες AWS S3 για ανάπτυξη;

Αξίζει να σημειωθεί ότι το GitHub Actions έχει ένα

βασικό σύστημα αποθήκευσης αντικειμένων

, ωστόσο, δεν θα θέλετε να το χρησιμοποιήσετε στην παραγωγή. Προορίζεται για αρχειακούς και δοκιμαστικούς σκοπούς και τα τεχνουργήματα από ολοκληρωμένες εκδόσεις θα λήξουν μετά από 90 ημέρες.

Υπάρχει επίσης

Πακέτα GitHub

το οποίο έχει σχεδιαστεί ως αντικατάσταση για διαχειριστές πακέτων για συγκεκριμένες γλώσσες, όπως η JavaScript

npm

. Αυτό μπορεί να είναι πολύ χρήσιμο εάν δημοσιεύετε ένα πακέτο NPM, αλλά δεν είναι τόσο χρήσιμο για άλλα είδη εκδόσεων.

Για κάθε άλλο είδος τεχνουργήματος, οι κάδοι S3 της

παραμένουν ένας από τους βασικούς τρόπους αποστολής αρχείων για διανομή και ανάπτυξη. Υποστηρίζονται από το σύστημα αδειών IAM της AWS, το οποίο διαθέτει εξαιρετική ασφάλεια και είναι σε θέση να ρυθμίζει με ακρίβεια τα στοιχεία ελέγχου πρόσβασης στον μεταγλωττισμένο πηγαίο κώδικα σας.

Εναλλακτικά, εάν χρησιμοποιείτε κοντέινερ Docker για ανάπτυξη, θα θέλετε να χρησιμοποιήσετε ένα μητρώο κοντέινερ. Ευτυχώς, το GitHub διαθέτει ένα ιδιωτικό μητρώο με το οποίο είναι εύκολο να ενσωματωθεί και μπορείτε να διαβάσετε τον οδηγό μας για τη χρήση του για να μάθετε περισσότερα.


ΣΧΕΤΙΖΕΤΑΙ ΜΕ:



Πώς να ξεκινήσετε με το New Docker Container Registry της Github

Η χρήση του S3 είναι αρκετά εύκολη και τα περισσότερα από τα βήματα που εμφανίζονται εδώ θα ισχύουν επίσης για λύσεις αποθήκευσης συμβατές με το S3, όπως το Digital

Spaces ή το αυτο-φιλοξενούμενο MinIO, καθώς χρησιμοποιούν το ίδιο API.

Μεταφόρτωση στο AWS S3 από το GitHub Actions

Για να ξεκινήσετε, θα πρέπει να βεβαιωθείτε ότι το υπόλοιπο σενάριο έκδοσης του GitHub Actions λειτουργεί και παράγει μια έγκυρη έκδοση, καθώς γενικά δεν θέλετε να κάνετε εντοπισμό σφαλμάτων πολλαπλών ζητημάτων ταυτόχρονα.

Εάν δεν έχετε ακόμη, η ρύθμιση θα εξαρτηθεί από την αλυσίδα εργαλείων κατασκευής σας, αλλά μπορείτε να διαβάσετε τον οδηγό μας για τη ρύθμιση αυτοματοποιημένων εκδόσεων για να μάθετε περισσότερα. Μπορείτε επίσης να δοκιμάσετε το τεχνούργημα που θα μεταφορτωθεί χρησιμοποιώντας το ενσωματωμένο GitHub

upload-artifact

δράση, η οποία δημοσιεύει τα περιεχόμενα ενός καταλόγου ως δέσμη.

Στη συνέχεια, μπορείτε να επιβεβαιώσετε τη δημιουργία του πακέτου στην ενότητα Σύνοψη > Τεχνουργήματα.

Μόλις έχετε μια κατασκευή που δεν αποτυγχάνει, μπορείτε να προσθέσετε τη μεταφόρτωση S3 στο τέλος της. Δεν υπάρχει επίσημος τρόπος για να γίνει αυτό εύκολα, και

υπάρχουν πολλές διαφορετικές λύσεις στο GitHub Actions Marketplace

.

Το πιο δημοφιλές είναι

S3 Sync

, το οποίο χρησιμοποιεί το εγγενές API S3 για τη μεταφόρτωση ενσωματωμένων τεχνουργημάτων και είναι εύκολο να διαμορφωθεί. Υπάρχουν επίσης απλά περιτυλίγματα όπως

s3cmd

το οποίο σας επιτρέπει να περάσετε εντολές απευθείας στο S3 CLI.

Ωστόσο, μια σημείωση – τα περισσότερα από αυτά βασίζονται σε runners που φιλοξενούνται στο Linux ή σε κοντέινερ Docker, τα οποία συνοδεύονται από τις απαραίτητες εξαρτήσεις για τη λειτουργία του S3 CLI. Το Linux είναι αυτό στο οποίο εκτελούνται οι περισσότερες εκδόσεις, αλλά εάν πρέπει να χρησιμοποιήσετε τα

για να εκτελέσετε τις εκδόσεις σας, θα χρειαστεί να χρησιμοποιήσετε μια διαφορετική ενέργεια. Το cross-platform που βρήκαμε ότι λειτουργεί είναι

stcalica/s3-upload

. Αυτό χρησιμοποιεί ένα περιτύλιγμα JavaScript που εγκαθιστά το πακέτο s3cmd και λειτουργεί μια χαρά στα Windows.

Ένα πράγμα που θα πρέπει να κάνετε πρώτα είναι να ρυθμίσετε το GitHub Secrets για τα διακριτικά ελέγχου ταυτότητας AWS. Αυτά δεν μπορούν φυσικά να είναι δημόσια και θα πρέπει να αποθηκευτούν στα μυστικά του αποθετηρίου και να προσπελαστούν ονομαστικά. Αυτό αποτρέπει την τυχαία διαρροή των διακριτικών σας και επιτρέπει την εύκολη διαχείριση κλειδιών.

Μπορείτε να διαβάσετε τον οδηγό μας σχετικά με τη χρήση των μυστικών του GitHub για να μάθετε περισσότερα για αυτά, αλλά το κύριο πράγμα που απαιτείται από εσάς είναι να μεταβείτε στις ρυθμίσεις του αποθετηρίου και, στη συνέχεια, κάντε κλικ στα Μυστικά > Ενέργειες και κάντε ένα

Στη συνέχεια, στο τέλος του σεναρίου ενεργειών GitHub, προσθέστε ένα βήμα με όνομα “ανάπτυξη” και ρυθμίστε το να χρησιμοποιεί το

s3-sync

δράση ή όποια άλλη έχετε επιλέξει. Θα χρειαστεί να περάσετε τα μυστικά για το κλειδί πρόσβασης και το αναγνωριστικό που ρυθμίσατε ως μεταβλητές περιβάλλοντος.

    ...
    - name: Deploy To S3
    - uses: actions/
    - uses: jakejarvis/
      with:
        args: --acl -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: defaults to us-east-1
        SOURCE_DIR: 'bin/Linux/net48'      # optional: defaults to entire repository
        DEST_DIR: "https://www.howtogeek.com/" # optional: defaults to root of the bucket

Με αυτήν τη ροή εργασίας ειδικότερα, μπορείτε επίσης να μεταβιβάσετε ορίσματα απευθείας στο s3cmd, το οποίο μπορεί να χρησιμοποιηθεί για την ενεργοποίηση των δημόσιων αναγνωσμένων ACL, για παράδειγμα. Εδώ, το αντικείμενο ορίζεται σε δημόσιο και τα παλιά περιεχόμενα σε αυτόν τον κατάλογο στον κάδο διαγράφονται, διασφαλίζοντας ότι όλα ταιριάζουν με την έξοδο κατασκευής χωρίς παλιά αρχεία.

Με αυτό το πρόσθετο, το μόνο που απομένει είναι να πραγματοποιήσετε τις αλλαγές σεναρίου έκδοσης και προαιρετικά να εκτελέσετε ξανά το build με μη αυτόματο τρόπο, εάν δεν ξεκινήσει ξανά αυτόματα σε μια νέα δέσμευση. Δεν θα δείτε καμία έξοδο κατασκευής στο GitHub, επειδή έχει σταλεί στο S3, αλλά μπορείτε να ελέγξετε τα αρχεία καταγραφής από το s3cmd κάτω από το βήμα “deploy to S3” στο αρχείο καταγραφής κατασκευής:

Ας ελπίσουμε ότι θα δείτε μια έξοδο καταγραφής παρόμοια με την παραπάνω, επιβεβαιώνοντας ότι η διαδικασία εκτελέστηκε με επιτυχία.


HowToGeek.com



You might also like


Leave A Reply



Cancel Reply

Your email address will not be published.