Δημιουργήστε ένα αρχείο Jenkins και ορίστε τη διοχέτευση στον επεξεργαστή κώδικα
pipeline { agent any options { buildDiscarder(logRotator(numToKeepStr: "5")) disableConcurrentBuilds() }
Ρυθμίστε το εργαλείο .NET στον επεξεργαστή κώδικα διαμορφώνοντας το Jenkins
Κάντε κλικ στο Διαχείριση της Jenkins καρτέλα στον πίνακα ελέγχου Jenkins.
Κάντε κύλιση προς τα κάτω στη σελίδα και κάντε κλικ στην Καθολική διαμόρφωση εργαλείου.
Κάντε κύλιση προς τα κάτω και κάντε κλικ Εγκαταστάσεις .NET SDK.
Αντιγράψτε την τιμή για το .NET SDK και επικολλήστε την στο πρόγραμμα επεξεργασίας κώδικα.
εργαλεία { dotnetsdk "DOTNET_CORE_3.1.24" }
Μεταβείτε στο plugins.jenkins.io και εγκαταστήστε την προσθήκη .NET SDK
Κάτω από Διαχείριση της Jenkins στον πίνακα ελέγχου σας, ελέγξτε Διαχείριση των προσθηκών για να επιβεβαιώσετε εάν έχει εγκατασταθεί η προσθήκη .NET SDK.
Αφού επιβεβαιώσετε ότι η προσθήκη έχει εγκατασταθεί, επιστρέψτε στις ΕΓΚΑΤΑΣΤΑΣΕΙΣ .NET SDK και βεβαιωθείτε ότι έχουν οριστεί οι λεπτομέρειες της σωστής έκδοσης και έκδοσης της προσθήκης .NET SDK. Προχωρήστε για να κάνετε κλικ στο Αποθήκευση κουμπί.
Ρυθμίστε τις μεταβλητές περιβάλλοντος στον επεξεργαστή κώδικα
περιβάλλον { USERNAME = διαπιστευτήρια('es-username') // όνομα χρήστη λογαριασμού SSL.com. PASSWORD = διαπιστευτήρια ('es-password') // Κωδικός πρόσβασης λογαριασμού SSL.com. CREDENTIAL_ID = διαπιστευτήρια ('es-credential-id') // Αναγνωριστικό διαπιστευτηρίου για υπογραφή πιστοποιητικού. TOTP_SECRET = διαπιστευτήρια('es-totp-secret') // OAuth TOTP Secret (https://www.ssl.com/how-to/automate-esigner-ev-code-signing) ENVIRONMENT_NAME = 'PROD' // SSL .com Όνομα περιβάλλοντος. Για επίδειξη λογαριασμού μπορεί να είναι "TEST" διαφορετικά θα είναι "PROD" }
Θα βρείτε τις τιμές για κάθε μεταβλητή στον πίνακα ελέγχου Jenkins κάτω Ασφάλεια> Διαχειριστείτε Διαπιστευτήρια.
Ορίστε τα στάδια για τη δημιουργία καταλόγου τεχνουργημάτων, τη λήψη εικόνας docker, τη δημιουργία .NET και την υπογραφή κώδικα του τεχνουργήματος
1) Δημιουργία καταλόγου τεχνουργημάτων για υπογεγραμμένα και ανυπόγραφα αρχεία τεχνουργημάτων στο κατάστημα.
stage('Δημιουργία καταλόγου τεχνουργημάτων') { βήματα { sh 'mkdir ${WORKSPACE}/artifacts' sh 'mkdir ${WORKSPACE}/packages' } }2) Τραβήξτε το Codesigner Docker Image από το μητρώο Github.
stage('Docker Pull Image') { steps { sh 'docker pull ghcr.io/sslcom/codesigner:latest' } }3) Δημιουργήστε ένα έργο ή λύση dotnet και όλες τις εξαρτήσεις του. Αφού δημιουργηθεί το αρχείο dll ή exe, αντιγράψτε στον φάκελο «πακέτα» για υπογραφή.
stage('Build Dotnet') { steps { sh 'dotnet build dotnet/HelloWorld.csproj -c Release' sh 'cp dotnet/bin/Release/netcoreapp3.1/HelloWorld-0.0.1.dll ${WORKSPACE}/packages/ HelloWorld.dll' } }4) Αυτό είναι το βήμα όπου τα δημιουργημένα αρχεία DLL (artifact) θα υπογραφούν με το CodeSignTool.
stage('Sign and Save Dotnet Core DLL Artifact') { steps { sh 'docker run -i --rm --dns 8.8.8.8 --network host --volume ${WORKSPACE}/packages:/codesign/examples -- τόμος ${WORKSPACE}/artifacts:/codesign/output -e USERNAME=${USERNAME} -e PASSWORD=${PASSWORD} -e CREDENTIAL_ID=${CREDENTIAL_ID} -e TOTP_SECRET=${TOTP_SECRET} -e ENVIRONNAME{$ ENVIRONMENT_NAME} ghcr.io/sslcom/codesigner:last sign -input_file_path=/codesign/examples/HelloWorld.dll -output_dir_path=/codesign/output' } ανάρτηση { πάντα { archiveArtifacts artifacts: "artifacts:I trueelloflld" } } } }
Δημιουργήστε ένα αποθετήριο Github
Αντιγράψτε καθένα από τα στοιχεία της εντολής push στο Github.Γράψτε τις εντολές σε ένα νέο τερματικό στον επεξεργαστή κώδικα για να προωθήσετε τον κώδικα.
Αφού πιέσετε τον κώδικα, μεταβείτε στον λογαριασμό σας Github και αντιγράψτε τη σύνδεση URL του έργου σας.
Προχωρήστε στον λογαριασμό σας Jenkins και κάντε κλικ στο Δημιουργήστε μια δουλειά σύνδεσμο.
Επιλέξτε Πολυκλαδικός Αγωγός, ορίστε το όνομα για το έργο σας και κάντε κλικ στο OK κουμπί.
Κάτω από Πηγές κλάδου, Επιλέξτε Git και επικολλήστε τον σύνδεσμο URL του έργου Github.
Μετακινηθείτε προς τα κάτω στο Σάρωση σκανδαλών πολλαπλών διακλαδώσεων αγωγών. Επιλέξτε το πλαίσιο για Περιοδικά, εάν όχι διαφορετικά, εκτελείται. Μπορείτε να επιλέξετε 2 λεπτά.
Κάντε κλικ στο Αποθήκευση κουμπί.
Επιστρέψτε στον λογαριασμό σας στο Jenkins, κάντε κλικ στο έργο σας και επιβεβαιώστε εάν η διοχέτευση έχει ξεκινήσει
Κάντε κλικ στο έργο Jenkins και επιλέξτε Σάρωση σωλήνων πολλαπλών διακλαδώσεων τώρα στον πίνακα ελέγχου.
Πατήστε Έξοδος κονσόλας
Κάντε κύλιση προς τα κάτω και ελέγξτε εάν η υπογραφή κωδικού είναι επιτυχής
Ολόκληρο το σενάριο
Καθορίστε τον αγωγό
pipeline { agent any options { buildDiscarder(logRotator(numToKeepStr: "5")) disableConcurrentBuilds() }
Εγκαταστήστε το Build Tools
εργαλεία { dotnetsdk "DOTNET_CORE_3.1.24" //https://plugins.jenkins.io/dotnet-sdk }
Δημιουργήστε μια μεταβλητή περιβάλλοντος
περιβάλλον { USERNAME = διαπιστευτήρια('es-username') // όνομα χρήστη λογαριασμού SSL.com. PASSWORD = διαπιστευτήρια ('es-password') // Κωδικός πρόσβασης λογαριασμού SSL.com. CREDENTIAL_ID = διαπιστευτήρια ('es-credential-id') // Αναγνωριστικό διαπιστευτηρίου για υπογραφή πιστοποιητικού. TOTP_SECRET = διαπιστευτήρια('es-totp-secret') // OAuth TOTP Secret (https://www.ssl.com/how-to/automate-esigner-ev-code-signing) ENVIRONMENT_NAME = 'PROD' // SSL .com Όνομα περιβάλλοντος. Για επίδειξη λογαριασμού μπορεί να είναι "TEST" διαφορετικά θα είναι "PROD" }
Σενάριο για τα στάδια κατασκευής και υπογραφής
stages { // 1) Δημιουργία καταλόγου τεχνουργημάτων για υπογεγραμμένα και ανυπόγραφα αρχεία τεχνουργημάτων καταστήματος στάδιο ('Δημιουργία καταλόγου τεχνουργημάτων') { βήματα { sh 'mkdir ${WORKSPACE}/artifacts' sh 'mkdir ${WORKSPACE}/packages' } } / / 2) Pull Codesigner Docker Image From Github Registry stage ('Docker Pull Image') { steps { sh 'docker pull ghcr.io/sslcom/codesigner:latest' } } // 3) Δημιουργία έργου ή λύσης dotnet και όλα τα τις εξαρτήσεις του. // Αφού δημιουργηθεί το αρχείο dll ή exe, αντιγράψτε στο φάκελο "πακέτα" για υπογραφή ("Build Dotnet") { βήματα { sh "dotnet build dotnet/HelloWorld.csproj -c Release" sh "cp dotnet/bin/ Release/netcoreapp3.1/HelloWorld-0.0.1.dll ${WORKSPACE}/packages/HelloWorld.dll' } } // 4) Αυτό είναι το βήμα όπου τα δημιουργημένα αρχεία DLL (artifact) θα υπογραφούν με το CodeSignTool. stage('Sign and Save Dotnet Core DLL Artifact') { steps { sh 'docker run -i --rm --dns 8.8.8.8 --network host --volume ${WORKSPACE}/packages:/codesign/examples -- τόμος ${WORKSPACE}/artifacts:/codesign/output -e USERNAME=${USERNAME} -e PASSWORD=${PASSWORD} -e CREDENTIAL_ID=${CREDENTIAL_ID} -e TOTP_SECRET=${TOTP_SECRET} -e ENVIRONNAME{$ ENVIRONMENT_NAME} ghcr.io/sslcom/codesigner:last sign -input_file_path=/codesign/examples/HelloWorld.dll -output_dir_path=/codesign/output' } ανάρτηση { πάντα { archiveArtifacts artifacts: "artifacts:I trueelloflld" } } } }
Δείγμα αγωγού Jenkins
Δείτε το δείγμα του αγωγού Jenkins που δημιουργήσαμε github.com/SSLcom/codesigner-jenkins-sampleΆλλοι οδηγοί ενσωμάτωσης απομακρυσμένης υπογραφής
- Cloud Code Signing Integration με το CircleCI
- Ενσωμάτωση υπογραφής κώδικα cloud με ενέργειες GitHub
- Cloud Code Signing Integration με το GitLab CI
- Cloud Code Signing Integration με το Travis CI
- Ενσωμάτωση υπογραφής κώδικα Cloud με το Azure DevOps
- Αυτοματισμός υπογραφής κωδικού νέφους με υπηρεσίες CI/CD
Χρειάζεστε προσαρμοσμένες λύσεις;
Με τις εξειδικευμένες γνώσεις μας και το προσωπικό υποστήριξης πέντε αστέρων, είμαστε έτοιμοι και πρόθυμοι να συνεργαστούμε μαζί σας για προσαρμοσμένες λύσεις ή εκπτώσεις υπογραφών μεγάλου όγκου σε εταιρικό επίπεδο. Συμπληρώστε την παρακάτω φόρμα και θα επικοινωνήσουμε.