Это руководство о том, как Azure DevOps можно интегрировать с eSigner CodeSignTool для выполнения автоматической подписи кода.
CodeSignTool — это утилита командной строки, которая подходит для облачных процессов подписи кода и легко интегрируется с различными платформами CI/CD. Он является частью eSigner: нашей службы удаленной подписи, которая предлагает эффективный, безопасный и удобный подход к подписи кода.
Переменные среды
- USERNAME: имя пользователя учетной записи SSL.com. (Необходимый)
- PASSWORD: пароль учетной записи SSL.com (обязательно)
- CREDENTIAL_ID: Идентификатор учетных данных для сертификата подписи. Если credential_id опущен и у пользователя есть только один сертификат подписи кода eSigner, CodeSignTool будет использовать его по умолчанию. Если у пользователя есть более одного сертификата подписи кода, этот параметр является обязательным. (Необходимый)
- TOTP_SECRET: Секрет OAuth TOTP. Вы можете получить доступ к подробной информации о https://www.ssl.com/how-to/automate-esigner-ev-code-signing (обязательно)
- ИМЯ_ОКРУЖАЮЩЕЙ СРЕДЫ : Среда 'TEST' или 'PROD'. (Необходимый)
входные
- путь_входного_файла: Путь к подписываемому объекту кода. (Необходимый)
- выходной_каталог_путь: Каталог, в который будут записаны подписанные объекты кода. Если output_path опущен, файл, указанный в -file_path, будет перезаписан подписанным файлом.
Создайте проект на visualstudio.com
Создайте новый файл .yml в редакторе кода.
Установите триггеры интеграции и переменные среды
Триггеры непрерывной интеграции
курок:
- никто
Глобально определяет переменные среды. Свойство уровня задания переопределяет глобальные переменные
переменные:
buildConfiguration: «Выпуск»
Группировать задания по этапам
Напишите шаги для этапа сборки. Все работы на одном этапе должны быть завершены до выполнения следующего этапа.
этапы:
– этап: сборка
# Когда рабочий процесс запускается, это имя регистрируется
отображаемое имя: сборка
вакансии:
- работа:
бассейн:
Запуск задания на виртуальных машинах Windows
vmImage: «последняя версия Windows»
действия:
Установите Дотнет 6.0.x
– задача: UseDotNet@2
displayName: «Установить пакет SDK для .NET Core»
входы:
версия: '6.0.x'
выполнитьMultiLevelLookup: true
includePreviewVersions: правда
Восстановить проект Dotnet
– задача: DotNetCoreCLI@2
отображаемое имя: Восстановить
входы:
команда: «восстановить»
Сборка проекта dotnet с конфигурацией Release
– задача: DotNetCoreCLI@2
отображаемое имя: сборка
входы:
команда: построить
проекты: HelloWorld.csproj
аргументы: '–configuration $(buildConfiguration)'
Создание каталогов для подписанных артефактов
- powershell: New-Item -ItemType Directory -Path ./artifacts
displayName: 'Созданные каталоги для артефактов'
Создание каталогов для подписанных пакетов
- powershell: New-Item -ItemType Directory -Path ./packages
displayName: 'Созданные каталоги для пакетов'
Скопируйте артефакт в путь для подписи
- powershell: Copy-Item ./bin/Release/netcoreapp3.1/HelloWorld-0.0.1.dll -Destination ./packages/HelloWorld.dll
displayName: «Скопировать созданные артефакты в каталог пакетов»
Сохраните артефакт, чтобы использовать задание подписи
– задача: PublishBuildArtifacts@1
displayName: 'Сохранить как подписанный артефакт для скачивания'
входы:
путь к публикации: ./packages/HelloWorld.dll
имя_артефакта: HelloWorld.dll
Напишите шаги для этапа Sign
– этап: Знак
# Когда рабочий процесс запускается, это имя регистрируется
отображаемое имя: Знак
вакансии:
- работа:
бассейн:
Запустить задание на виртуальных машинах Ubuntu
vmImage: «Ubuntu-последняя»
действия:
Создание каталогов для подписанных артефактов
– скрипт: mkdir -p ./артефакты && mkdir -p ./пакеты
displayName: «Созданы каталоги для артефактов и пакетов»
Скачать артефакт для подписи
– задача: DownloadPipelineArtifact@2
входы:
Артефакт: HelloWorld.dll
путь загрузки: ./packages
Установите Докер 17.09.0-ce
– задача: DockerInstaller@0
displayName: установщик Docker
входы:
версия докера: 17.09.0-ce
Тип выпуска: стабильный
Docker Pull CodeSigner Образ Docker
– скрипт: docker pull ghcr.io/sslcom/codesigner:latest
displayName: 'Docker Pull CodeSigner Docker Image'
Подписать артефакт с помощью образа докера CodeSigner
– скрипт: docker run -i –rm –dns 8.8.8.8 –сетевой хост –volume $PWD/packages:/codesign/examples –volume $PWD/artifacts:/codesign/output
-e ИМЯ ПОЛЬЗОВАТЕЛЯ=$(ИМЯ ПОЛЬЗОВАТЕЛЯ) -e ПАРОЛЬ=$(ПАРОЛЬ) -e CREDENTIAL_ID=$(CREDENTIAL_ID) -e TOTP_SECRET=$(TOTP_SECRET)
-e ENVIRONMENT_NAME=$(ENVIRONMENT_NAME) ghcr.io/sslcom/codesigner:последний знак -input_file_path=/codesign/examples/HelloWorld.dll
-output_dir_path=/дизайн кода/выход
displayName: 'Подписать артефакт с помощью образа докера CodeSigner'
Сохранить подписанный артефакт для скачивания
– задача: PublishBuildArtifacts@1
displayName: 'Сохранить подписанный артефакт для скачивания'
входы:
путь к публикации: ./artifacts/HelloWorld.dll
имя_артефакта: HelloWorld.dll
Создайте новый файл .gitignore
Печатать:
бункер
об
.vscode
В строке сообщений введите Created pipe.yml и нажмите кнопку Совершать кнопка
Нажмите кнопку Синхронизировать изменения кнопка
Перейдите на сайт visualstudio.com и нажмите Операции РЕПО на приборной панели
Обновите страницу, чтобы увидеть файл yml
Нажмите Трубопроводы на приборной панели
Затем нажмите Создать конвейер
Щелкните Azure Repos Git.
Выберите файл YAML
Нажмите Переменные затем следуют Новая переменная
Поместите значение для каждой переменной среды и нажмите кнопку OK кнопка
Щелкните знак +, чтобы продолжить добавление каждой переменной.
После размещения всех переменных приступайте к созданию конвейера.
Запустите свой конвейер
Нажмите Трубопроводы на приборной панели. Щелкните значок с тремя точками (дополнительные параметры) на конвейере. Нажмите Запустить конвейер, Наконец, нажмите Run .
Нажмите «Сборка», чтобы начать этап сборки.
Проверьте, успешно ли выполнено каждое задание на этапе сборки.
Щелкните стрелку раскрывающегося списка рядом с работа чтобы увидеть статус каждого задания сборки
Начните этап подписания, нажав работа
Проверьте, успешно ли выполнен каждый шаг в процессе подписания.
Дважды проверьте, успешно ли выполнены этапы сборки и подписи.
Пример конвейера Azure DevOps
Ознакомьтесь с образцом конвейера Azure DevOps, который мы создали на github.com/SSLcom/codesigner-azuredevops-образецДругие руководства по интеграции удаленной подписи
- Интеграция подписи облачного кода с CircleCI
- Интеграция облачной подписи кода с GitHub Actions
- Интеграция облачной подписи кода с GitLab CI
- Интеграция облачной подписи кода с Travis CI
- Интеграция облачной подписи кода с Jenkins CI
- Интеграция подписи облачного кода с BitBucket
- Облачная автоматизация подписи кода с помощью CI/CD Services
Нужны индивидуальные решения?
Благодаря нашим экспертным знаниям и пятизвездочному персоналу службы поддержки мы готовы работать с вами над индивидуальными решениями или над скидками на подписание крупных объемов на уровне предприятия. Заполните форму ниже, и мы свяжемся с вами.