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.
Przygotuj elementy przepływu pracy (Podpisywanie biblioteki DLL kodu .NET)
- Utwórz folder .circleci
W obszarze roboczym podpisywania kodu utwórz folder .circleci. Pod nim utwórz plik config.yml.
- Ustaw wersję CI
Wersja: 2.1
- Wywołaj zadania za pomocą przepływów pracy. Przepływy pracy organizują zestaw zadań do uruchomienia. Zadania dla tego potoku są skonfigurowane poniżej
Zobacz: https://circleci.com/docs/2.0/configuration-reference/#workflows
przepływy pracy:
- Wpisz nazwę przepływu pracy.
kropka:
- Wewnątrz przepływu pracy definiujesz zadania, które chcesz uruchomić.
zadania: - buduj - znak: wymaga: - buduj
Zdefiniuj etap kompilacji
- Zdefiniuj zadanie do późniejszego wywołania w przepływie pracy.
(Zobacz: https://circleci.com/docs/2.0/configuration-reference/#jobs)
praca: budowa:
- Utwórz zmienną środowiskową
- Zmienne środowiskowe są używane, aby próbki były bardziej czytelne. Na powyższym zrzucie ekranu przykładowego przepływu pracy podpisywania PROJECT_NAME, PROJECT_VERSION i DOTNET_VERSION zostały opcjonalnie pominięte. Podpisywanie może nadal przebiegać nawet z tymi pominięciami.
środowisko: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 DOTNET_VERSION: 3.1 PRZESTRZEŃ ROBOCZA: /home/circleci/project
- Zdefiniuj executor Dockera: (https://circleci.com/docs/2.0/executor-types/)
# Możesz określić obraz z Dockerhub lub użyć jednego z naszych wygodnych obrazów z Centrum programistów CircleCI.
okno dokowane: — obraz: mcr.microsoft.com/dotnet/sdk:3.1-bullseye
- Umieść katalog roboczy dla zadania
katalog_roboczy: /home/circleci/projekt
- Dodaj kroki do pracy
Zobacz: https://circleci.com/docs/2.0/configuration-reference/#steps
kroki:
- Sprawdź kod źródłowy, aby przepływ pracy miał do niego dostęp.
- Sprawdź
- Utwórz katalog artefaktów, aby przechowywać podpisane i niepodpisane pliki artefaktów
- uruchom: nazwa: Utwórz katalog artefaktów polecenie: | mkdir -p ${PRZESTRZEŃ ROBOCZA}/artefakty mkdir -p ${PRZESTRZEŃ ROBOCZA}/pakiety
- Utwórz projekt lub rozwiązanie dotnet i wszystkie jego zależności.
- run: name: Build Dotnet Project Command: dotnet build dotnet/${PROJECT_NAME}.csproj -c Release
- Skopiuj artefakt do katalogu artefaktów
- W tym pisemnym, przykładowym przepływie pracy podpisywania utworzono wiele typów projektów. Dlatego utrzymywano pliki różnych typów projektów, tworząc podfoldery. Dla projektów Dotnet utworzono podfolder o nazwie „dotnet”. Na powyższym zrzucie demonstracyjnym nie było potrzeby tworzenia podfolderu o nazwie „dotnet”, więc nie zostało to uwzględnione w skrypcie.
- uruchom: nazwa: polecenie Kopiuj artefakty: | cp dotnet/bin/Release/netcoreapp${DOTNET_VERSION}/${PROJECT_NAME}-${PROJECT_VERSION}.dll ${WORKSPACE}/packages/HelloWorld.dll
- Zachowaj artefakt w katalogu artefaktów w celu podpisania
- persist_to_workspace: root: . ścieżki: - pakiety/*
Zdefiniuj etap podpisywania
- Zdefiniuj zadanie podpisywania
znak:
- Utwórz zmienną środowiskową
- Na powyższym zrzucie ekranu polecenie podpisu zostało zdefiniowane bezpośrednio w skrypcie podpisu, a nie pod zmiennymi środowiskowymi. Binne metody mogą poprawnie podpisywać się za pomocą CircleCI.
- Zmienne środowiskowe są używane, aby próbki były bardziej czytelne. Na powyższym zrzucie ekranu przykładowego przepływu pracy niektóre zmienne opcjonalnie nie zostały uwzględnione. Podpisywanie może nadal przebiegać nawet z tymi pominięciami.
środowisko: ENVIRONMENT_NAME: PROD COMMAND: znak WORKSPACE: /home/circleci/project
- Umieść katalog roboczy dla zadania na Circle-CI
katalog_roboczy: /home/circleci/projekt
- Nazwa artefaktu do podpisania
- Wartość 'artifact-name' jest opcją dla wielu projektów. Dodano parametr 'artifact-name', aby ta sama część podpisująca mogła być używana dla wszystkich typów projektów. Ponieważ przykład na zrzucie ekranu opiera się na pojedynczym projekcie, nie było potrzeby jego dołączania.
parametry: nazwa-artefaktu: typ: ciąg domyślnie: ''
- Zdefiniuj executor dockera:
Aby uzyskać dodatkowe informacje, zobacz: https://circleci.com/docs/2.0/executor-types/
Możesz określić obraz z Dockerhub lub użyć jednego z naszych wygodnych obrazów z Centrum programistów CircleCI.
Pamiętaj, aby zaktualizować poniższy tag obrazu platformy Docker do wersji openjdk aplikacji.
Lista dostępnych obrazów CircleCI Docker Convenience dostępna jest tutaj: https://circleci.com/developer/images/image/cimg/openjdk
Docker: - obraz: cimg/openjdk:17.0.3
- Dodaj kroki do pracy
Aby uzyskać dodatkowe informacje, zobacz: https://circleci.com/docs/2.0/configuration-reference/#steps
kroki:
- Utwórz katalog artefaktów, aby przechowywać podpisane i niepodpisane pliki artefaktów
- uruchom: nazwa: Utwórz katalog artefaktów polecenie: | mkdir -p ${PRZESTRZEŃ ROBOCZA}/artefakty mkdir -p ${PRZESTRZEŃ ROBOCZA}/pakiety
- Dołącz do Workspace, aby uzyskać dostęp do pliku artefaktu
- attach_workspace: w: /home/circleci/project
- Włącz Docker dla CodeSigner na Circle-CI
- setup_remote_docker: nazwa: Konfiguracja zdalnego Dockera wersja: 19.03.13 docker_layer_caching: true
- Wyciągnij obraz dockera Codesigner z rejestru Github
- uruchom: nazwa: polecenie Docker Pull Image: | docker pull ghcr.io/sslcom/codesigner: najnowsze docker pull alpine: 3.4
- Napisz krok, w którym artefakt zostanie podpisany za pomocą CodeSignTool.
- uruchom: nazwa: Podpisz polecenie pliku artefaktów: | docker create -v /codesign/packages --name codesign-in alpine:3.4 /bin/true docker create -v /codesign/artifacts --name codesign-out alpine:3.4 /bin/true docker cp ${WORKSPACE}/packages /<< parametry. nazwa-artefaktu >> codesign-in:/codesign/packages docker run -i --rm --dns 8.8.8.8 --network host --volumes-from codesign-in --volumes-from codesign- out -e USERNAME=${USERNAME} -e PASSWORD=${PASSWORD} -e CREDENTIAL_ID=${CREDENTIAL_ID} -e TOTP_SECRET=${TOTP_SECRET} -e ENVIRONMENT_NAME=${ENVIRONMENT_NAME} ghcr.io/sslcom/codesigner:latest ${COMMAND} -input_file_path=/codesign/packages/<< parametry.nazwa-artefaktu >> -output_dir_path=/codesign/artifacts docker cp codesign-out:/codesign/artifacts/<< parametry.nazwa-artefaktu >> ${ OBSZAR ROBOCZY}/artifacts/<< parametry.nazwa-artefaktu >>
- Napisz krok, aby artefakt został przesłany z przepływu pracy, umożliwiając udostępnianie danych między zadaniami i przechowywanie danych po zakończeniu przepływu pracy
- store_artifacts: name: Upload Signed Files ścieżka: /home/circleci/project/artifacts/<< parametry.artifact-name >> destination: << parameters.artifact-name >>
Utwórz nowe repozytorium w wierszu poleceń
Skopiuj komponenty poleceń push z lokalizacji swojego projektu na swoim koncie GitHub
Uwzględnij wszystkie komponenty poleceń push w swoim edytorze
Skonfiguruj projekt w CircleCI, korzystając z repozytorium zintegrowanego z GitHub
Zdefiniuj wszystkie zmienne środowiskowe
Gdy projekt jest uruchomiony, kliknij przycisk Ustawienia projektu, a następnie Zmienne środowiskowe, aby zdefiniować zmienne
Umieść wartości dla każdej zmiennej
Kliknij Dodaj zmienną środowiskową przycisk, aby dodać nazwy i wartości wszystkich zmiennych wymaganych dla projektu.
Poczekaj, aż projekt zostanie zbudowany
Kliknij Utrwalanie w obszarze roboczym
Krótko poczekaj na pomyślne przesłanie archiwum obszaru roboczego.
Kliknij przycisk znak
Poczekaj na skonfigurowanie zdalnego Dockera
Może to zająć więcej niż minutę, w zależności od rozmiaru pliku
Poczekaj na podpisanie artefaktów
Kliknij Artefakty Zakładka
Jeśli klikniesz Artefakty, będziesz mógł zobaczyć plik, który pomyślnie podpisano kodem. Zostaniesz również powiadomiony przez CircleCI o pomyślnym podpisaniu kodu.
Przykładowy rurociąg CircleCI
Sprawdź przykładowy potok CircleCI, na którym utworzyliśmy https://github.com/SSLcom/codesigner-circleci-sampleInne przewodniki integracji zdalnego podpisywania CI/CD
- Integracja Cloud Code Signing z działaniami GitHub
- Integracja Cloud Code Signing z GitLab CI
- Integracja Cloud Code Signing z Jenkins CI
- Integracja Cloud Code Signing z Travis CI
- Integracja podpisywania kodu w chmurze z usługą Azure DevOps
- 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ą.