Miljøvariabler
- USERNAME: SSL.com-konto brukernavn. (Obligatorisk)
- PASSORD: SSL.com-kontopassord (påkrevd)
- CREDENTIAL_ID: Legitimasjons-ID for signering av sertifikat. Hvis credential_id er utelatt og brukeren bare har ett eSigner-kodesigneringssertifikat, vil CodeSignTool som standard bruke det. Hvis brukeren har mer enn ett kodesigneringssertifikat, er denne parameteren obligatorisk. (Obligatorisk)
- TOTP_SECRET: OAuth TOTP-hemmelighet. Du kan få tilgang til detaljert informasjon om https://www.ssl.com/how-to/automate-esigner-ev-code-signing (Nødvendig)
- ENVIRONMENT_NAME : 'TEST' eller 'PROD' miljø. (Obligatorisk)
Innganger
- input_file_path: Banen til kodeobjektet som skal signeres. (Obligatorisk)
- output_dir_path: Katalog hvor signert kodeobjekt(er) vil bli skrevet. Hvis output_path er utelatt, vil filen spesifisert i -file_path bli overskrevet med den signerte filen.
Forbered komponentene i arbeidsflyten (.NET Code DLL-signering)
- Opprett en .circleci-mappe
På arbeidsområdet for kodesignering oppretter du en .circleci-mappen. Under den lager du en config.yml-filen.
- Still inn CI-versjonen
versjon: 2.1
- Påkalle jobber via arbeidsflyter. Arbeidsflyter orkestrerer et sett med jobber som skal kjøres. Jobbene for denne rørledningen er konfigurert nedenfor
Se: https://circleci.com/docs/2.0/configuration-reference/#workflows
arbeidsflyter:
- Skriv navnet på arbeidsflyten.
dotnet:
- Inne i arbeidsflyten definerer du jobbene du vil kjøre.
jobber: - bygge - tegn: krever: - bygge
Definer byggestadiet
- Definer en jobb som skal startes senere i en arbeidsflyt.
(Se: https://circleci.com/docs/2.0/configuration-reference/#jobs)
jobber: bygge:
- Lag en miljøvariabel
- Miljøvariabler brukes for å gjøre prøvene mer lesbare. I skjermbildet ovenfor av et eksempel på signeringsarbeidsflyt, ble PROJECT_NAME, PROJECT_VERSION og DOTNET_VERSION eventuelt utelatt. Signering kan fortsatt fortsette selv med disse utelatelsene.
miljø: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 DOTNET_VERSION: 3.1 ARBEIDSPLASS: /home/circleci/project
- Definer en Docker-utøver: (https://circleci.com/docs/2.0/executor-types/)
# Du kan spesifisere et bilde fra Dockerhub eller bruke et av våre bekvemmelighetsbilder fra CircleCIs utviklerhub.
docker: - bilde: mcr.microsoft.com/dotnet/sdk:3.1-bullseye
- Plasser arbeidskatalogen for jobben
arbeidskatalog: /home/circleci/project
- Legg til trinn i jobben
Se: https://circleci.com/docs/2.0/configuration-reference/#steps
trinn:
- Sjekk ut kildekoden slik at arbeidsflyten får tilgang til den.
- Sjekk ut
- Opprett artefaktkatalog for å lagre signerte og usignerte artefaktfiler
- run: name: Create Artifacts Directory-kommando: | mkdir -p ${WORKSPACE}/artefakter mkdir -p ${WORKSPACE}/pakker
- Bygg et dotnet-prosjekt eller -løsning og alle dets avhengigheter.
- run: name: Build Dotnet Project Command: dotnet build dotnet/${PROJECT_NAME}.csproj -c Release
- Kopier artefakt til artefaktkatalog
- I denne skriftlige signeringseksemplet ble det opprettet flere prosjekttyper. Dette er grunnen til at filer av forskjellige prosjekttyper ble beholdt ved å opprette undermapper. En undermappe kalt 'dotnet' ble opprettet for Dotnet-prosjekter. I demoskjermbildet ovenfor var det ikke nødvendig å opprette en undermappe kalt 'dotnet', så dette var ikke inkludert i skriptet.
- kjør: navn: Kopier artefakter kommando: | cp dotnet/bin/Release/netcoreapp${DOTNET_VERSION}/${PROJECT_NAME}-${PROJECT_VERSION}.dll ${WORKSPACE}/packages/HelloWorld.dll
- Hold artefakten til artefaktkatalogen for signering
- persist_to_workspace: rot: . stier: - pakker/*
Definer signeringsstadiet
- Definer signeringsjobben
skilt:
- Lag en miljøvariabel
- I skjermbildet ovenfor ble skiltkommandoen definert direkte i skiltskriptet og ikke under miljøvariabler. Bandre metoder kan signere riktig med CircleCI.
- Miljøvariabler brukes for å gjøre prøvene mer lesbare. I skjermbildet ovenfor av eksempelarbeidsflyten var noen variabler valgfritt ikke inkludert. Signering kan fortsatt fortsette selv med disse utelatelsene.
miljø: ENVIRONMENT_NAME: PROD KOMMANDO: signer WORKSPACE: /home/circleci/project
- Plasser arbeidskatalogen for jobben på Circle-CI
arbeidskatalog: /home/circleci/project
- Artefaktnavn for signering
- 'Artifact-name'-verdien er et alternativ for flere prosjekter. 'Artifact-name'-parameteren ble lagt til slik at den samme signeringsdelen kan brukes for alle prosjekttyper. Siden eksemplet i skjermbildet er basert på et enkelt prosjekt, var det ikke nødvendig å inkludere det.
parametere: artefaktnavn: type: streng standard: ''
- Definer en docker-utøver:
For ytterligere referanse, se: https://circleci.com/docs/2.0/executor-types/
Du kan spesifisere et bilde fra Dockerhub eller bruke et av våre bekvemmelighetsbilder fra CircleCIs utviklerhub.
Sørg for å oppdatere Docker-bildekoden nedenfor til openjdk-versjonen av applikasjonen din.
En liste over tilgjengelige CircleCI Docker Convenience-bilder er tilgjengelig her: https://circleci.com/developer/images/image/cimg/openjdk
docker: - bilde: cimg/openjdk:17.0.3
- Legg til trinn i jobben
For ytterligere referanse, se: https://circleci.com/docs/2.0/configuration-reference/#steps
trinn:
- Opprett artefaktkatalog for å lagre signerte og usignerte artefaktfiler
- run: name: Create Artifacts Directory-kommando: | mkdir -p ${WORKSPACE}/artefakter mkdir -p ${WORKSPACE}/pakker
- Legg ved Workspace for å få tilgang til artefaktfilen
- attach_workspace: på: /home/circleci/project
- Aktiver Docker for CodeSigner på Circle-CI
- setup_remote_docker: navn: Setup Remote Docker versjon: 19.03.13 docker_layer_caching: true
- Trekk Codesigner Docker Image fra Github Registry
- run: name: Docker Pull Image kommando: | docker pull ghcr.io/sslcom/codesigner:siste docker pull alpine:3.4
- Skriv trinnet der artefakten skal signeres med CodeSignTool.
- run: name: 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}/packages /<< parameters.artifact-name >> codesign-in:/codesign/packages docker run -i --rm --dns 8.8.8.8 --nettverksvert --volumes-from codesign-in --volumes-from 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: ${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/<< parameters.artifact-name >>
- Skriv trinnet for at artefakten skal lastes opp fra arbeidsflyten din, slik at du kan dele data mellom jobber og lagre data når en arbeidsflyt er fullført
- store_artifacts: navn: Last opp signerte filer bane: /home/circleci/project/artifacts/<< parameters.artifact-name >> destinasjon: << parameters.artifact-name >>
Opprett et nytt depot på kommandolinjen
Kopier push-kommandokomponentene fra plasseringen til prosjektet ditt på GitHub-kontoen din
Inkluder alle push-kommandokomponenter i editoren
Sett opp et prosjekt på CircleCI ved å bruke depotet som er integrert i GitHub
Definer alle miljøvariablene
Mens prosjektet kjører, klikk på Prosjektinnstillinger-knappen etterfulgt av Miljøvariabler for å definere variablene
Plasser verdiene for hver variabel
Klikk på Legg til miljøvariabel for å legge til navn og verdier for alle variabler som kreves for prosjektet.
Vent til prosjektet skal bygges
Klikk på Vedvarer til arbeidsområdet
Vent kort på at arbeidsområdearkivet skal lastes opp.
Klikk på tegnknappen
Vent til Remote Docker er satt opp
Det kan ta mer enn ett minutt, avhengig av størrelsen på filen
Vent til gjenstandene blir signert
Klikk Artifacts tab
Hvis du klikker Artifacts, vil du kunne se filen som du har kodesignert. Du vil også bli varslet av CircleCI om vellykket kodesignering.
Eksempel på CircleCI Pipeline
Sjekk ut prøven CircleCI-pipeline vi har laget på github.com/SSLcom/codesigner-circleci-sampleAndre veiledninger for integrasjon av CI/CD-fjernsignering
- Cloud Code Signing-integrasjon med GitHub Actions
- Cloud Code Signing-integrasjon med GitLab CI
- Cloud Code Signing-integrasjon med Jenkins CI
- Cloud Code Signing-integrasjon med Travis CI
- Cloud Code Signing-integrasjon med Azure DevOps
- Cloud Code Signing-integrasjon med BitBucket
- Skykodesigneringsautomatisering med CI/CD-tjenester
Trenger du tilpassede løsninger?
Med vår ekspertkunnskap og femstjerners støttepersonell er vi klare og villige til å samarbeide med deg om tilpassede løsninger eller store signeringsrabatter på bedriftsnivå. Fyll ut skjemaet under så tar vi kontakt.