Ortam Değişkenleri
- KULLANICI ADI: SSL.com hesabı kullanıcı adı. (Gerekli)
- ŞİFRE: SSL.com hesap şifresi (Gerekli)
- KİMLİK_KİMLİĞİ: İmza sertifikası için kimlik bilgisi. credential_id atlanırsa ve kullanıcının yalnızca bir eSigner kod imzalama sertifikası varsa, CodeSignTool varsayılan olarak bunu ayarlar. Kullanıcının birden fazla kod imzalama sertifikası varsa bu parametre zorunludur. (Gerekli)
- TOTP_SECRET: OAuth TOTP Gizli. adresinden detaylı bilgilere ulaşabilirsiniz. https://www.ssl.com/how-to/automate-esigner-ev-code-signing (Gereklidir)
- ENVIRONMENT_NAME : 'TEST' veya 'PROD' Ortamı. (Gerekli)
Girdiler
- girdi_dosya_yolu: İmzalanacak kod nesnesinin yolu. (Gerekli)
- çıktı_dir_yolu: İmzalı kod nesnesinin/nesnelerinin yazılacağı dizin. output_path atlanırsa, -file_path içinde belirtilen dosyanın üzerine imzalı dosya yazılır.
İş akışının bileşenlerini hazırlayın (.NET Kodu DLL İmzalama)
- Bir .circleci klasörü oluşturun
Kod imzalama çalışma alanınızda bir .circleci klasörü. Altında, bir oluştur config.yml dosyası.
- CI sürümünü ayarlayın
versiyon: 2.1
- İşleri iş akışları aracılığıyla çağırın. İş akışları, çalıştırılacak bir dizi işi düzenler. Bu işlem hattı için işler aşağıda yapılandırılmıştır
Bakınız: https://circleci.com/docs/2.0/configuration-reference/#workflows
iş akışları:
- İş akışının adını yazın.
nokta ağı:
- İş akışı içinde çalıştırmak istediğiniz işleri tanımlarsınız.
işler: - inşa - işaret: şunları gerektirir: - inşa
Yapı Aşamasını Tanımlayın
- Bir iş akışında daha sonra çağrılacak bir iş tanımlayın.
(Bakınız: https://circleci.com/docs/2.0/configuration-reference/#jobs)
işler: inşa:
- Bir ortam değişkeni oluşturun
- Örnekleri daha okunaklı hale getirmek için ortam değişkenleri kullanılır. Örnek bir imzalama iş akışının yukarıdaki ekran görüntüsünde, PROJECT_NAME, PROJECT_VERSION ve DOTNET_VERSION isteğe bağlı olarak çıkarılmıştır. İmzalama, bu eksikliklerle bile devam edebilir.
ortam: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 DOTNET_VERSION: 3.1 WORKSPACE: /home/circleci/project
- Bir Docker yürütücüsü tanımlayın: (https://circleci.com/docs/2.0/executor-types/)
# Dockerhub'dan bir görüntü belirtebilir veya CircleCI'nin Geliştirici Merkezindeki Kolaylık Görüntülerimizden birini kullanabilirsiniz.
liman işçisi: - resim: mcr.microsoft.com/dotnet/sdk:3.1-bullseye
- İş için çalışma dizinini yerleştirin
çalışma_dizini: /home/circleci/project
- İşe adımlar ekleyin
Bakınız: https://circleci.com/docs/2.0/configuration-reference/#steps
adım:
- İş akışının erişebilmesi için kaynak kodunu kontrol edin.
- ödeme
- İmzalı ve imzasız yapı dosyalarını depolamak için Yapıt Dizini oluşturun
- çalıştır: isim: Eserler Dizini Oluştur komutu: | mkdir -p ${WORKSPACE}/artifacts mkdir -p ${WORKSPACE}/packages
- Bir dotnet projesi veya çözümü ve tüm bağımlılıklarını oluşturun.
- run: name: Build Dotnet Project Command: dotnet build dotnet/${PROJECT_NAME}.csproj -c Release
- Eseri eserler dizinine kopyalayın
- Bu yazılı imza örneği iş akışında birden çok proje türü oluşturulmuştur. Bu nedenle alt klasörler oluşturularak farklı proje türlerine ait dosyalar tutulmuştur. Dotnet projeleri için 'dotnet' adında bir alt klasör oluşturuldu. Yukarıdaki demo ekran görüntüsünde, 'dotnet' adında bir alt klasör oluşturmaya gerek yoktu, bu yüzden bu komut dosyasına dahil edilmedi.
- çalıştır: isim: Eserleri Kopyala komutu: | cp dotnet/bin/Release/netcoreapp${DOTNET_VERSION}/${PROJECT_NAME}-${PROJECT_VERSION}.dll ${WORKSPACE}/packages/HelloWorld.dll
- İmza için yapıtı yapıtlar dizinine devam ettirin
- persist_to_workspace: kök: . yollar: - paketler/*
İmza Aşamasını Tanımlayın
- İmzalama işini tanımlayın
işaret:
- Bir ortam değişkeni oluşturun
- Yukarıdaki ekran görüntüsünde, işaret komutu, ortam değişkenleri altında değil, doğrudan işaret komut dosyasında tanımlanmıştır. Bdiğer yöntemler CircleCI ile doğru şekilde imzalayabilir.
- Örnekleri daha okunaklı hale getirmek için ortam değişkenleri kullanılır. Örnek iş akışının yukarıdaki ekran görüntüsünde bazı değişkenler isteğe bağlı olarak dahil edilmemiştir. İmzalama, bu eksikliklerle bile devam edebilir.
ortam: ENVIRONMENT_NAME: PROD COMMAND: imzala WORKSPACE: /home/circleci/project
- İş için çalışma dizinini Circle-CI'ye yerleştirin
çalışma_dizini: /home/circleci/project
- İmza için yapıt adı
- 'artifact-name' değeri birden fazla proje için bir seçenektir. 'artifact-name' parametresi, tüm proje türleri için aynı imzalama bölümünün kullanılabilmesi için eklendi. Ekran görüntüsündeki örnek tek bir projeye dayandığı için dahil edilmesine gerek duyulmamıştır.
parametreler: yapı-adı: tür: dize varsayılanı: ''
- Bir liman işçisi yürütücüsü tanımlayın:
Ek referans için, bakınız: https://circleci.com/docs/2.0/executor-types/
Dockerhub'dan bir görüntü belirtebilir veya CircleCI'nin Geliştirici Merkezindeki Kolaylık Görüntülerimizden birini kullanabilirsiniz.
Aşağıdaki Docker resim etiketini uygulamanızın openjdk sürümüne güncellediğinizden emin olun.
Mevcut CircleCI Docker Kolaylık Görüntülerinin bir listesi burada mevcuttur: https://circleci.com/developer/images/image/cimg/openjdk
liman işçisi: - resim: cimg/openjdk:17.0.3
- İşe adımlar ekleyin
Ek referans için, bakınız: https://circleci.com/docs/2.0/configuration-reference/#steps
adım:
- İmzalı ve imzasız yapı dosyalarını depolamak için Yapıt Dizini oluşturun
- çalıştır: isim: Eserler Dizini Oluştur komutu: | mkdir -p ${WORKSPACE}/artifacts mkdir -p ${WORKSPACE}/packages
- Yapıt dosyasına erişmek için Çalışma Alanına Ekle
- ataşe_çalışma alanı: /home/circleci/project adresinde
- Circle-CI üzerinde CodeSigner için Docker'ı etkinleştirin
- setup_remote_docker: ad: Remote Docker Kurulumu sürümü: 19.03.13 docker_layer_caching: true
- Github Kayıt Defterinden Codesigner Docker Görüntüsünü Çekin
- çalıştır: isim: Docker Resim Çekme komutu: | liman işçisi çekme ghcr.io/sslcom/codesigner:en son liman işçisi alpine çekme:3.4
- Yapıtın CodeSignTool ile imzalanacağı adımı yazın.
- çalıştır: ad: Artifact Dosyasını İmzala komutu: | 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 /<< parameter.artifact-name >> codesign-in:/codesign/packages docker run -i --rm --dns 8.8.8.8 --ağ ana bilgisayarı --codesign-in'den ciltler --codesign'dan ciltler- çıkış -e USERNAME=${USERNAME} -e ŞİFRE=${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/<< parameter.artifact-name >> -output_dir_path=/codesign/artifacts docker cp codesign-out:/codesign/artifacts/<< parameter.artifact-name >> ${ WORKSPACE}/artifacts/<< parameter.artifact-name >>
- Bir iş akışı tamamlandıktan sonra işler arasında veri paylaşmanıza ve veri depolamanıza olanak tanıyan iş akışınızdan yüklenecek yapınızın adımını yazın
- store_artifacts: ad: İmzalı Dosyaları Yükle yol: /home/circleci/project/artifacts/<< parametreler.artifact-adı >> hedef: << parametreler.artifact-adı >>
Komut satırında yeni bir depo oluşturun
GitHub hesabınızdaki projenizin konumundan push komut bileşenlerini kopyalayın
Tüm push komut bileşenlerini düzenleyicinize dahil edin
GitHub'a entegre depoyu kullanarak CircleCI üzerinde bir proje oluşturun
Tüm Ortam Değişkenlerini Tanımlayın
Proje çalışırken, değişkenleri tanımlamak için Proje Ayarları düğmesini ve ardından Ortam Değişkenleri'ni tıklayın.
Her değişken için değerleri yerleştirin
Tıkla Ortam Değişkeni Ekle proje için gerekli tüm değişkenlerin adlarını ve değerlerini eklemek için düğmesine basın.
Projenin inşa edilmesini bekleyin
Çalışma alanına devam ediyor'a tıklayın
Çalışma alanı arşivinin başarıyla yüklenmesini kısaca bekleyin.
İmzala düğmesini tıklayın
Remote Docker'ın kurulmasını bekleyin
Dosyanın boyutuna bağlı olarak bir dakikadan fazla sürebilir
Eserlerin imzalanmasını bekleyin
Tıkla Eserleri çıkıntı
tıklarsanız Eserleri, kodunu başarıyla imzaladığınız dosyayı görebileceksiniz. Ayrıca, başarılı kod imzalama konusunda CircleCI tarafından bilgilendirileceksiniz.
Örnek CircleCI Boru Hattı
Üzerinde oluşturduğumuz örnek CircleCI işlem hattına göz atın github.com/SSLcom/codesigner-circleci-sampleDiğer CI/CD Uzaktan İmzalama Entegrasyon Kılavuzları
- GitHub Eylemleri ile Bulut Kod İmzalama Entegrasyonu
- GitLab CI ile Bulut Kod İmzalama Entegrasyonu
- Jenkins CI ile Bulut Kod İmzalama Entegrasyonu
- Travis CI ile Bulut Kod İmzalama Entegrasyonu
- Azure DevOps ile Bulut Kod İmzalama Entegrasyonu
- BitBucket ile Bulut Kod İmzalama Entegrasyonu
- CI/CD Hizmetleri ile Bulut Kod İmzalama Otomasyonu
Özel Çözümlere mi ihtiyacınız var?
Uzman bilgi birikimimiz ve beş yıldızlı destek ekibimizle, özel çözümler veya kurumsal düzeyde yüksek hacimli imza indirimleri konusunda sizinle birlikte çalışmaya hazır ve istekliyiz. Aşağıdaki formu doldurun, sizinle iletişime geçelim.