Πώς να δημοσιεύσετε αυτόματα τις εκδόσεις του GitHub από τις ετικέτες Git
Οι εκδόσεις GitHub παρέχουν μια εύκολη στην πρόσβαση μέθοδο για τους τελικούς χρήστες για λήψη δυαδικών αρχείων λογισμικού με έκδοση. Μπορείτε να τα δημιουργήσετε με μη αυτόματο τρόπο, αλλά είναι πολύ πιο εύκολο να αφήσετε το GitHub Actions να τις δημιουργήσει αυτόματα χρησιμοποιώντας ετικέτες έκδοσης που δημιουργήθηκαν στο αποθετήριο σας.
Χρήση εκδόσεων με ετικέτα
Οι ετικέτες είναι μια υπάρχουσα δυνατότητα στο Git, με εκτεταμένη υποστήριξη που προσφέρεται από το GitHub με εκδόσεις, οι οποίες προσφέρουν ένα μέρος για τη φιλοξενία δυαδικών αρχείων με συσχετισμένα αρχεία καταγραφής αλλαγών.
Μπορείτε να δημιουργήσετε μια ετικέτα όπως θα κάνατε μια διακλάδωση, εκτός από το ότι είναι ένα σταθερό σημείο που δεν μετακινείται και δείχνει πάντα μια συγκεκριμένη δέσμευση. Αυτό είναι χρήσιμο για τη δημιουργία εκδόσεων με έκδοση και οι περισσότεροι άνθρωποι θα δημιουργήσουν ετικέτες χρησιμοποιώντας τη μορφή σημασιολογικής έκδοσης (Major.Minor.
Patch
).
Οι ετικέτες μπορούν να προωθηθούν στο GitHub όπου μπορούν να χρησιμοποιηθούν σε άλλες ροές εργασίας αυτοματισμού. Σε αυτήν την περίπτωση, θα ρυθμίσουμε ένα σενάριο GitHub Actions που θα ακούει για δεσμεύσεις που περιέχουν εκδόσεις με ετικέτα και θα δημοσιεύει αυτόματα τα τεχνουργήματα κατασκευής σε μια κυκλοφορία.
Ρύθμιση ενεργειών GitHub
Αρχικά, θα θελήσετε να βεβαιωθείτε ότι έχετε μια λειτουργική έκδοση GitHub Actions και ότι τα σενάρια έκδοσης λειτουργούν σωστά. Η ακριβής ρύθμιση για τη ροή εργασιών σας θα εξαρτηθεί από το είδος του έργου που δημιουργείτε, αλλά γενικά, δεν θέλετε να διορθώσετε δύο προβλήματα ταυτόχρονα, επομένως θα πρέπει να προσθέσετε τη δημοσίευση έκδοσης όταν έχετε ήδη εργασιακά τεχνουργήματα. Μπορείτε να διαβάσετε τον οδηγό μας για τη ρύθμιση μιας έκδοσης GitHub Actions για να μάθετε περισσότερα.
Το πρώτο πράγμα που πρέπει να κάνετε είναι να επεξεργαστείτε την ενότητα “on” του σεναρίου ενεργειών σας ώστε να εκτελείται επίσης κατά τη δημιουργία ετικετών. Από προεπιλογή, πιθανότατα έχετε το συμβάν “push” για να παρακολουθείτε κυκλοφορίες ή τον κύριο κλάδο. Θα χρειαστεί να προσθέσετε ετικέτες και να ορίσετε ένα φίλτρο. Για όλες τις ετικέτες, απλώς χρησιμοποιήστε έναν χαρακτήρα μπαλαντέρ:
Στο τέλος της ροής εργασίας, αφού δημιουργηθούν όλα, θα δημιουργήσουμε την καταχώρηση Release. Αυτό είναι ένα βήμα δύο μερών—πρώτα, θα χρειαστεί να δημιουργήσουμε ένα νέο αντικείμενο Έκδοσης με όλα τα μεταδεδομένα και, στη συνέχεια, μπορούμε να χρησιμοποιήσουμε τη διεύθυνση URL δημοσίευσης που εξάγεται για να ανεβάσουμε τα τεχνουργήματα. Μπορείτε να δημιουργήσετε πολλά βήματα μεταφόρτωσης εάν έχετε πολλά τεχνουργήματα.
Και στις δύο περιπτώσεις, θα θέλουμε να εκτελούμε αυτά τα βήματα μόνο εάν η ροή εργασίας εκτελείται λόγω μιας ετικέτας. Μπορούμε να το κάνουμε αυτό με ένα απλό
if
ελέγξτε και ελέγξτε εάν το
github.ref
Το αντικείμενο είναι μια ετικέτα, η οποία αποθηκεύει το όνομα αναφοράς του κλάδου ή της ετικέτας που ενεργοποίησε τη ροή εργασίας.
Το πρώτο βήμα είναι να δημιουργήσετε ένα αντικείμενο Release, το οποίο μπορεί να γίνει με το παρακάτω βήμα. Το διακριτικό GitHub δεν χρειάζεται να δημιουργηθεί με μη αυτόματο τρόπο—είναι ένα ειδικό διακριτικό που μπορεί πάντα να γίνει αναφορά από τα σενάρια ενεργειών.
- name: Create Release
if: startsWith(github.ref, 'refs/tags/')
uses: actions/
id: create_release
with:
draft: false
prerelease: false
release_name: ${{ github.ref }}
tag_name: ${{ github.ref }}
body_path: CHANGELOG.md
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Σημειώστε εδώ ότι το αρχείο καταγραφής αλλαγών για την έκδοση αποθηκεύεται στο
CHANGELOG.md
οι οποίες
πρέπει να υπάρχει για να λειτουργεί σωστά η ροή εργασίας
. Μπορείτε να το επεξεργαστείτε με κάθε ετικέτα για να αλλάξετε τη σήμανση που εμφανίζεται από το GitHub στη σελίδα έκδοσης. Υπάρχουν εργαλεία για να το δημιουργήσετε αυτόματα με μηνύματα δέσμευσης, αλλά οι περισσότερες ομάδες θα έχουν τη δική τους μέθοδο διαχείρισης ούτως ή άλλως.
Στη συνέχεια, μπορείτε να ξεκινήσετε τη μεταφόρτωση τεχνουργημάτων. Αυτό χρησιμοποιεί τη διεύθυνση URL μεταφόρτωσης από το προηγούμενο βήμα και θα πρέπει να ορίσετε μια διαδρομή όπου μπορεί να βρεθεί μαζί με το εμφανιζόμενο όνομα για το στοιχείο.
- name: Upload Release
if: startsWith(github.ref, 'refs/tags/')
uses: actions/
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: Oxide.Ext.Sanctuary/bin/Release/net48/Oxide.Ext.Sanctuary.dll
asset_name: Oxide.Ext.Sanctuary.dll
asset_content_type: application/octet-stream
Σημειώστε εδώ ότι ο τύπος περιεχομένου έχει οριστεί σε
octet-stream
, που είναι τυπικό για δυαδικά δεδομένα όπως εκτελέσιμα και DLL. Εάν δημοσιεύετε ένα αρχείο ZIP ή κάποιο άλλο είδος αρχείου, θα θέλετε να το αλλάξετε, αν και επηρεάζει μόνο τα γραφικά στη σελίδα έκδοσης.
Τώρα, μπορείτε να πραγματοποιήσετε τις αλλαγές στη ροή εργασίας Actions και, στη συνέχεια, να δημιουργήσετε μια νέα ετικέτα και να την προωθήσετε στο GitHub. Θα πρέπει να δείτε μια νέα εκτέλεση ροής εργασίας να δημιουργείται, εκτός από το ότι αντί να εκτελείται από τον κύριο κλάδο, εκτελείται λόγω της ετικέτας:
Μόλις ολοκληρωθεί, θα δείτε την κυκλοφορία στην πλαϊνή γραμμή του GitHub.


