To jest przewodnik dotyczący sposobu integracji usługi Azure DevOps z narzędziem eSigner CodeSignTool w celu automatycznego podpisywania kodu.
CodeSignTool to narzędzie wiersza poleceń, które jest odpowiednie do procesów podpisywania kodu w chmurze i bezproblemowo integruje się z różnymi platformami CI/CD. Stanowi część eSigner: naszej usługi zdalnego podpisywania, która oferuje wydajne, bezpieczne i przyjazne dla użytkownika podejście do podpisywania kodu.
Zmienne środowiskowe
- USERNAME: Nazwa użytkownika konta SSL.com. (Wymagany)
- HASŁO: Hasło do konta SSL.com (wymagane)
- CREDENTIAL_ID: Identyfikator poświadczeń do podpisywania certyfikatu. Jeśli credential_id zostanie pominięty, a użytkownik ma tylko jeden certyfikat podpisywania kodu eSigner, CodeSignTool domyślnie to zrobi. Jeśli użytkownik ma więcej niż jeden certyfikat podpisywania kodu, ten parametr jest obowiązkowy. (Wymagany)
- TOTP_SECRET: Klucz tajny TOTP protokołu OAuth. Możesz uzyskać dostęp do szczegółowych informacji na temat https://www.ssl.com/how-to/automate-esigner-ev-code-signing (Wymagany)
- ŚRODOWISKO_NAME : 'TEST' lub 'PROD' Środowisko. (Wymagany)
Wejścia
- ścieżka_pliku_wejściowego: Ścieżka obiektu kodu do podpisania. (Wymagany)
- ścieżka_katalogu_wyjściowego: Katalog, w którym zostaną zapisane obiekty z podpisanym kodem. Jeśli ścieżka_wyjściowa zostanie pominięta, plik określony w -ścieżka_pliku zostanie zastąpiony podpisanym plikiem.
Utwórz projekt na visualstudio.com
Utwórz nowy plik .yml w edytorze kodu
Ustaw wyzwalacze integracji i zmienne środowiskowe
Wyzwalacze ciągłej integracji
cyngiel:
- Żaden
Globalnie definiuje zmienne środowiskowe. Właściwość poziomu zadania zastępuje zmienne globalne
zmienne:
buildConfiguration: 'Wydanie'
Grupuj zadania w etapy
Napisz kroki dla etapu kompilacji. Wszystkie prace w jednym etapie muszą zostać zakończone przed wykonaniem kolejnego etapu.
gradacja:
– etap: budowa
# Gdy przepływ pracy jest uruchomiony, jest to nazwa, która jest rejestrowana
displayName: kompilacja
Oferty pracy:
- stanowisko:
basen:
Uruchom zadanie na maszynach wirtualnych z systemem Windows
vmImage: 'windows-najnowsze'
kroki:
Zainstaluj Dotnet 6.0.x
– zadanie: UseDotNet@2
displayName: 'Zainstaluj zestaw SDK .NET Core'
wejścia:
wersja: '6.0.x'
performMultiLevelLookup: prawda
includePreviewWersje: true
Przywróć projekt Dotnet
– zadanie: DotNetCoreCLI@2
displayName: Przywróć
wejścia:
polecenie: „przywróć”
Kompiluj projekt dotnet z konfiguracją wydania
– zadanie: DotNetCoreCLI@2
displayName: kompilacja
wejścia:
polecenie: buduj
projekty: HelloWorld.csproj
argumenty: '–konfiguracja $(buildConfiguration)'
Twórz katalogi dla podpisanych artefaktów
– powershell: New-Item -ItemType Directory -Path ./artifacts
displayName: 'Utworzono katalogi dla artefaktów'
Twórz katalogi dla podpisanych pakietów
– powershell: New-Item -ItemType Directory -Path ./packages
displayName: 'Utworzone katalogi dla pakietów'
Skopiuj artefakt na ścieżkę podpisu
– powershell: Copy-Item ./bin/Release/netcoreapp3.1/HelloWorld-0.0.1.dll -Destination ./packages/HelloWorld.dll
displayName: „Skopiuj wbudowane artefakty do katalogu pakietów”
Zapisz artefakt, aby użyć zadania podpisywania
– zadanie: PublikujBuildArtefakty@1
displayName: 'Zapisz do podpisania artefakt do pobrania'
wejścia:
ścieżka do publikacji: ./packages/HelloWorld.dll
nazwa artefaktu: HelloWorld.dll
Napisz kroki dla etapu Znaku
– scena: Znak
# Gdy przepływ pracy jest uruchomiony, jest to nazwa, która jest rejestrowana
displayName: znak
Oferty pracy:
- stanowisko:
basen:
Uruchom zadanie na maszynach wirtualnych Ubuntu
vmImage: „najnowszy Ubuntu”
kroki:
Twórz katalogi dla podpisanych artefaktów
– skrypt: mkdir -p ./artifacts && mkdir -p ./packages
displayName: „Utworzone katalogi dla artefaktów i pakietów”
Pobierz artefakt do podpisania
– zadanie: PobierzPipelineArtefakt@2
wejścia:
artefakt: HelloWorld.dll
Ścieżka pobierania: ./pakiety
Zainstaluj Docker 17.09.0-ce
– zadanie: DockerInstaller@0
displayName: Instalator platformy Docker
wejścia:
Wersja docker: 17.09.0-ce
typ wydania: stabilny
Docker Pull CodeSigner obraz dokowany
– skrypt: docker pull ghcr.io/sslcom/codesigner:latest
displayName: 'Docker Pobierz obraz dokowany CodeSigner'
Podpisz artefakt za pomocą obrazu dokowanego CodeSigner
– skrypt: docker run -i –rm –dns 8.8.8.8 –host sieciowy –volume $PWD/packages:/codesign/examples –volume $PWD/artefakty:/codesign/output
-e NAZWA UŻYTKOWNIKA=$(NAZWA UŻYTKOWNIKA) -e HASŁO=$(HASŁO) -e CREDENTIAL_ID=$(CREDENTIAL_ID) -e TOTP_SECRET=$(TOTP_SECRET)
-e ENVIRONMENT_NAME=$(ENVIRONMENT_NAME) ghcr.io/sslcom/codesigner:najnowszy znak -input_file_path=/codesign/examples/HelloWorld.dll
-output_dir_path=/codesign/output
displayName: 'Podpisz artefakt za pomocą obrazu dokowanego CodeSigner'
Zapisz podpisany artefakt do pobrania
– zadanie: PublikujBuildArtefakty@1
displayName: 'Zapisz podpisany artefakt do pobrania'
wejścia:
ścieżka do publikacji: ./artifacts/HelloWorld.dll
nazwa artefaktu: HelloWorld.dll
Utwórz nowy plik .gitignore
Wpisz:
kosz
Obj
.vscode
Na pasku komunikatów wpisz Created pipeline.yml i kliknij Popełnić przycisk
Przejdź do kliknięcia Synchronizuj zmiany przycisk
Przejdź do visualstudio.com i kliknij Repo na desce rozdzielczej
Odśwież stronę, aby zobaczyć plik yml
Kliknij Rurociągi na desce rozdzielczej
Następnie kliknij Utwórz potok
Kliknij Git Azure Repos
Wybierz swój plik YAML
Kliknij Zmienne przycisk, a następnie Nowa zmienna
Umieść wartość dla każdej zmiennej środowiskowej i kliknij OK przycisk
Kliknij znak +, aby kontynuować dodawanie każdej zmiennej
Po umieszczeniu wszystkich zmiennych przejdź do tworzenia potoku
Uruchom swój potok
Kliknij Rurociągi na desce rozdzielczej. Kliknij trzy kropki (więcej opcji) w potoku. Kliknij Uruchom potok. Na koniec kliknij run przycisk.
Kliknij Build, aby rozpocząć etap kompilacji
Sprawdź, czy każda praca na etapie budowania zakończyła się sukcesem
Kliknij strzałkę w dół obok Praca aby zobaczyć status każdego zadania budowlanego
Rozpocznij etap Podpisywania, klikając Praca
Sprawdź, czy każdy krok w procesie podpisywania zakończył się pomyślnie
Sprawdź dwukrotnie, czy etapy kompilacji i podpisywania zakończyły się sukcesem
Przykładowy potok usługi Azure DevOps
Sprawdź przykładowy potok usługi Azure DevOps, na którym utworzyliśmy https://github.com/SSLcom/codesigner-azuredevops-sampleInne przewodniki dotyczące integracji zdalnego podpisywania
- Integracja Cloud Code Signing z CircleCI
- Integracja Cloud Code Signing z działaniami GitHub
- Integracja Cloud Code Signing z GitLab CI
- Integracja Cloud Code Signing z Travis CI
- Integracja Cloud Code Signing z Jenkins CI
- Integracja podpisywania kodu w chmurze z BitBucket
- Automatyzacja podpisywania kodu w chmurze z usługami CI/CD
Potrzebujesz niestandardowych rozwiązań?
Dzięki naszej wiedzy eksperckiej i pięciogwiazdkowemu personelowi pomocy technicznej jesteśmy gotowi i chętni do współpracy z Tobą w zakresie niestandardowych rozwiązań lub rabatów na podpisywanie na dużą skalę na poziomie przedsiębiorstwa. Wypełnij poniższy formularz, a skontaktujemy się z Tobą.