Miljövariabler
- USERNAME: Användarnamn för SSL.com-konto. (Nödvändig)
- LÖSENORD: Lösenord för SSL.com-konto (krävs)
- CREDENTIAL_ID: Autentiserings-ID för signering av certifikat. Om credential_id utelämnas och användaren bara har ett eSigner-kodsigneringscertifikat, kommer CodeSignTool att använda det som standard. Om användaren har mer än ett kodsigneringscertifikat är denna parameter obligatorisk. (Nödvändig)
- TOTP_SECRET: OAuth TOTP-hemlighet. Du kan komma åt detaljerad information om https://www.ssl.com/how-to/automate-esigner-ev-code-signing (Nödvändig)
- ENVIRONMENT_NAME : 'TEST' eller 'PROD' miljö. (Nödvändig)
ingångar
- input_file_path: Sökväg till kodobjekt som ska signeras. (Nödvändig)
- output_dir_path: Katalog där signerade kodobjekt kommer att skrivas. Om output_path utelämnas kommer filen som anges i -file_path att skrivas över med den signerade filen.
Förbered komponenterna i arbetsflödet (.NET Code DLL-signering)
- Skapa en .circleci-mapp
På din arbetsyta för kodsignering skapar du en .circleci-mappen. Under den skapar du en config.yml filen.
- Ställ in CI-versionen
version: 2.1
- Anropa jobb via arbetsflöden. Arbetsflöden orkestrerar en uppsättning jobb som ska köras. Jobben för denna pipeline konfigureras nedan
Se: https://circleci.com/docs/2.0/configuration-reference/#workflows
arbetsflöden:
- Skriv namnet på arbetsflödet.
dotnet:
- Inuti arbetsflödet definierar du de jobb du vill köra.
jobb: - bygga - tecken: kräver: - bygga
Definiera byggstadiet
- Definiera ett jobb som ska anropas senare i ett arbetsflöde.
(Se: https://circleci.com/docs/2.0/configuration-reference/#jobs)
jobb: bygga:
- Skapa en miljövariabel
- Miljövariabler används för att göra proverna mer läsbara. I skärmdumpen ovan av ett exempel på ett arbetsflöde för signering utelämnades eventuellt PROJECT_NAME, PROJECT_VERSION och DOTNET_VERSION. Undertecknandet kan fortfarande fortsätta även med dessa utelämnanden.
miljö: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 DOTNET_VERSION: 3.1 ARBETSPLATS: /home/circleci/project
- Definiera en Docker-exekutor: (https://circleci.com/docs/2.0/executor-types/)
# Du kan ange en bild från Dockerhub eller använda en av våra bekvämlighetsbilder från CircleCIs utvecklarhubb.
docker: - bild: mcr.microsoft.com/dotnet/sdk:3.1-bullseye
- Placera arbetskatalogen för jobbet
arbetskatalog: /home/circleci/project
- Lägg till steg i jobbet
Se: https://circleci.com/docs/2.0/configuration-reference/#steps
steg:
- Kolla in källkoden så att arbetsflödet kan komma åt den.
- kolla upp
- Skapa artefaktkatalog för att lagra signerade och osignerade artefaktfiler
- run: name: Create Artifacts Directory kommando: | mkdir -p ${WORKSPACE}/artefakter mkdir -p ${WORKSPACE}/paket
- Bygg ett dotnet-projekt eller -lösning och alla dess beroenden.
- kör: namn: Bygg Dotnet-projektkommando: dotnet bygg dotnet/${PROJECT_NAME}.csproj -c Release
- Kopiera artefakt till artefaktkatalog
- I det här skriftliga signeringsexemplet skapades flera projekttyper. Det är därför filer av olika projekttyper behölls genom att skapa undermappar. En undermapp med namnet 'dotnet' skapades för Dotnet-projekt. I demoskärmdumpen ovan behövdes det inte skapa en undermapp med namnet 'dotnet' så denna ingick inte i skriptet.
- kör: namn: kommandot Kopiera artefakter: | cp dotnet/bin/Release/netcoreapp${DOTNET_VERSION}/${PROJECT_NAME}-${PROJECT_VERSION}.dll ${WORKSPACE}/packages/HelloWorld.dll
- Behåll artefakten till artefaktkatalogen för signering
- persist_to_workspace: root: . sökvägar: - paket/*
Definiera signeringsstadiet
- Definiera signeringsjobbet
skylt:
- Skapa en miljövariabel
- I skärmdumpen ovan definierades teckenkommandot direkt i teckenskriptet och inte under miljövariabler. Bandra metoder kan signera korrekt med CircleCI.
- Miljövariabler används för att göra proverna mer läsbara. I skärmdumpen ovan av exempelarbetsflödet inkluderades vissa variabler eventuellt inte. Undertecknandet kan fortfarande fortsätta även med dessa utelämnanden.
miljö: ENVIRONMENT_NAME: PROD COMMAND: sign WORKSPACE: /home/circleci/project
- Placera arbetskatalogen för jobbet på Circle-CI
arbetskatalog: /home/circleci/project
- Artefaktnamn för signering
- Värdet 'artefaktnamn' är ett alternativ för flera projekt. Parametern 'artefaktnamn' lades till så att samma signeringsdel kan användas för alla projekttyper. Eftersom exemplet i skärmdumpen är baserat på ett enskilt projekt var det inte nödvändigt att inkludera det.
parametrar: artefaktnamn: typ: sträng standard: ''
- Definiera en docker-exekutor:
För ytterligare referens, se: https://circleci.com/docs/2.0/executor-types/
Du kan ange en bild från Dockerhub eller använda en av våra bekvämlighetsbilder från CircleCIs utvecklarhubb.
Se till att uppdatera Docker-bildtaggen nedan till openjdk-versionen av din applikation.
En lista över tillgängliga CircleCI Docker Convenience-bilder finns här: https://circleci.com/developer/images/image/cimg/openjdk
docker: - bild: cimg/openjdk:17.0.3
- Lägg till steg i jobbet
För ytterligare referens, se: https://circleci.com/docs/2.0/configuration-reference/#steps
steg:
- Skapa artefaktkatalog för att lagra signerade och osignerade artefaktfiler
- run: name: Create Artifacts Directory kommando: | mkdir -p ${WORKSPACE}/artefakter mkdir -p ${WORKSPACE}/paket
- Bifoga till Workspace för att komma åt artefaktfilen
- attach_workspace: på: /home/circleci/project
- Aktivera Docker för CodeSigner på Circle-CI
- setup_remote_docker: namn: Setup Remote Docker version: 19.03.13 docker_layer_caching: true
- Dra Codesigner Docker Image från Github Registry
- kör: namn: Docker Pull Image kommando: | docker pull ghcr.io/sslcom/codesigner:senaste docker pull alpin:3.4
- Skriv steget där artefakten kommer att signeras med CodeSignTool.
- kör: namn: Sign Artifact File kommando: | 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}/paket /<< parameters.artifact-name >> codesign-in:/codesign/packages docker run -i --rm --dns 8.8.8.8 --nätverksvärd --volymer-från codesign-in --volymer-från codesign- ut -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:late ${COMMAND} -input_file_path=/codesign/packages/<< parameters.artifact-name >> -output_dir_path=/codesign/artifacts docker cp codesign-out:/codesign/artifacts/<< parameters.artifact-name >> ${ WORKSPACE}/artifacts/<< parametrar.artefaktnamn >>
- Skriv steget för att din artefakt ska laddas upp från ditt arbetsflöde så att du kan dela data mellan jobb och lagra data när ett arbetsflöde är klart
- store_artifacts: namn: Ladda upp signerade filer sökväg: /home/circleci/project/artifacts/<< parameters.artifact-name >> destination: << parameters.artifact-name >>
Skapa ett nytt arkiv på kommandoraden
Kopiera push-kommandokomponenterna från platsen för ditt projekt på ditt GitHub-konto
Inkludera alla push-kommandokomponenter i din editor
Skapa ett projekt på CircleCI med hjälp av arkivet som är integrerat med GitHub
Definiera alla miljövariabler
Medan projektet körs klickar du på knappen Projektinställningar följt av Miljövariabler för att definiera variablerna
Placera värdena för varje variabel
Klicka på Lägg till miljövariabel knappen för att lägga till namn och värden för alla variabler som krävs för projektet.
Vänta på att projektet ska byggas
Klicka på Fortsätter till arbetsytan
Vänta kort på att arbetsytans arkiv ska laddas upp.
Klicka på teckenknappen
Vänta på att Remote Docker ska ställas in
Det kan ta mer än en minut, beroende på storleken på filen
Vänta på att artefakterna ska signeras
Klicka Artefakter fliken
Om du klickar Artefakter, kommer du att kunna se filen som du har kodsignerat. Du kommer också att meddelas av CircleCI om framgångsrik kodsignering.
Exempel CircleCI Pipeline
Kolla in exempel på CircleCI-pipeline vi har skapat på github.com/SSLcom/codesigner-circleci-sampleAndra CI/CD-integrationsguider för fjärrsignering
- Cloud Code Signing-integration med GitHub Actions
- Cloud Code Signing-integration med GitLab CI
- Cloud Code Signing-integration med Jenkins CI
- Cloud Code Signing-integration med Travis CI
- Cloud Code Signing-integration med Azure DevOps
- Cloud Code Signing Integration med BitBucket
- Cloud Code Signing Automation med CI/CD-tjänster
Behöver du anpassade lösningar?
Med vår expertkunskap och femstjärniga supportpersonal är vi redo och villiga att arbeta med dig på skräddarsydda lösningar eller rabatter på stora volymer av signering på företagsnivå. Fyll i formuläret nedan så hör vi av oss.