Miljøvariabler
- USERNAME: SSL.com konto brugernavn. (Påkrævet)
- PASSWORD: SSL.com kontoadgangskode (påkrævet)
- CREDENTIAL_ID: Legitimations-id til signering af certifikat. Hvis credential_id er udeladt, og brugeren kun har ét eSigner-kodesigneringscertifikat, vil CodeSignTool som standard være det. Hvis brugeren har mere end ét kodesigneringscertifikat, er denne parameter obligatorisk. (Påkrævet)
- TOTP_SECRET: OAuth TOTP-hemmelighed. Du kan få adgang til detaljerede oplysninger om https://www.ssl.com/how-to/automate-esigner-ev-code-signing (Påkrævet)
- ENVIRONMENT_NAME : 'TEST' eller 'PROD' miljø. (Påkrævet)
Indgange
- input_file_path: Sti til kodeobjekt, der skal signeres. (Påkrævet)
- output_dir_path: Bibliotek, hvor signeret kodeobjekt(er) vil blive skrevet. Hvis output_path er udeladt, vil filen specificeret i -file_path blive overskrevet med den signerede fil.
Forbered komponenterne i arbejdsgangen (.NET Code DLL-signering)
- Opret en .circleci-mappe
På dit kodesigneringsarbejdsområde skal du oprette en .circleci mappe. Under den skal du oprette en config.yml fil.
- Indstil CI-versionen
version: 2.1
- Påkald jobs via arbejdsgange. Arbejdsgange orkestrerer et sæt job, der skal køres. Jobbene for denne pipeline er konfigureret nedenfor
Se: https://circleci.com/docs/2.0/configuration-reference/#workflows
arbejdsgange:
- Skriv navnet på arbejdsgangen.
dotnet:
- Inde i arbejdsgangen definerer du de jobs, du vil køre.
jobs: - bygge - tegn: kræver: - bygge
Definer byggefasen
- Definer et job, der skal kaldes senere i en arbejdsgang.
(Se: https://circleci.com/docs/2.0/configuration-reference/#jobs)
jobs: bygge:
- Opret en miljøvariabel
- Miljøvariabler bruges til at gøre prøverne mere læsbare. I skærmbilledet ovenfor af et eksempel på signeringsarbejdsgang blev PROJECT_NAME, PROJECT_VERSION og DOTNET_VERSION eventuelt udeladt. Underskrivelsen kan stadig fortsætte selv med disse udeladelser.
miljø: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 DOTNET_VERSION: 3.1 WORKSPACE: /home/circleci/project
- Definer en Docker executor: (https://circleci.com/docs/2.0/executor-types/)
# Du kan angive et billede fra Dockerhub eller bruge et af vores bekvemmelighedsbilleder fra CircleCI's Developer Hub.
docker: - billede: mcr.microsoft.com/dotnet/sdk:3.1-bullseye
- Placer arbejdsbiblioteket for jobbet
arbejdsmappe: /home/circleci/project
- Tilføj trin til jobbet
Se: https://circleci.com/docs/2.0/configuration-reference/#steps
trin:
- Tjek kildekoden, så arbejdsgangen kan få adgang til den.
- kassen
- Opret artefaktmappe for at gemme signerede og usignerede artefaktfiler
- run: name: Create Artifacts Directory-kommando: | mkdir -p ${WORKSPACE}/artefakter mkdir -p ${WORKSPACE}/pakker
- Byg et dotnet-projekt eller -løsning og alle dets afhængigheder.
- Kør: navn: Byg Dotnet-projektkommando: dotnet byg dotnet/${PROJECT_NAME}.csproj -c Udgivelse
- Kopiér artefakt til artefaktbibliotek
- I dette skriftlige underskriftseksempel workflow blev der oprettet flere projekttyper. Dette er grunden til, at filer af forskellige projekttyper blev opbevaret ved at oprette undermapper. En undermappe ved navn 'dotnet' blev oprettet til Dotnet-projekter. I demo-skærmbilledet ovenfor var der ikke behov for at oprette en undermappe ved navn 'dotnet', så denne var ikke inkluderet i scriptet.
- run: name: Copy Artifacts kommando: | cp dotnet/bin/Release/netcoreapp${DOTNET_VERSION}/${PROJECT_NAME}-${PROJECT_VERSION}.dll ${WORKSPACE}/packages/HelloWorld.dll
- Vedvarer artefakten til artefaktbiblioteket til signering
- persist_to_workspace: root: . stier: - pakker/*
Definer signeringsstadiet
- Definer signeringsjobbet
skilt:
- Opret en miljøvariabel
- I skærmbilledet ovenfor blev sign-kommandoen defineret direkte i sign-scriptet og ikke under miljøvariabler. Bandre metoder kan signere korrekt med CircleCI.
- Miljøvariabler bruges til at gøre prøverne mere læsbare. I skærmbilledet ovenfor af eksempelworkflowet var nogle variabler eventuelt ikke inkluderet. Underskrivelsen kan stadig fortsætte selv med disse udeladelser.
miljø: ENVIRONMENT_NAME: PROD KOMMANDO: underskriv WORKSPACE: /home/circleci/project
- Placer arbejdsbiblioteket for jobbet på Circle-CI
arbejdsmappe: /home/circleci/project
- Artefaktnavn til signering
- Værdien 'artefaktnavn' er en mulighed for flere projekter. Parameteren 'artefaktnavn' blev tilføjet, så den samme signaturdel kan bruges til alle projekttyper. Da eksemplet i skærmbilledet er baseret på et enkelt projekt, var det ikke nødvendigt at inkludere det.
parametre: artefakt-navn: type: streng standard: ''
- Definer en docker executor:
For yderligere reference, se: https://circleci.com/docs/2.0/executor-types/
Du kan angive et billede fra Dockerhub eller bruge et af vores bekvemmelighedsbilleder fra CircleCI's Developer Hub.
Sørg for at opdatere Docker-billedtagget nedenfor til openjdk-versionen af din applikation.
En liste over tilgængelige CircleCI Docker Convenience-billeder er tilgængelig her: https://circleci.com/developer/images/image/cimg/openjdk
docker: - billede: cimg/openjdk:17.0.3
- Tilføj trin til jobbet
For yderligere reference, se: https://circleci.com/docs/2.0/configuration-reference/#steps
trin:
- Opret artefaktmappe for at gemme signerede og usignerede artefaktfiler
- run: name: Create Artifacts Directory-kommando: | mkdir -p ${WORKSPACE}/artefakter mkdir -p ${WORKSPACE}/pakker
- Vedhæft til Workspace for at få adgang til artefaktfilen
- attach_workspace: på: /home/circleci/project
- Aktiver Docker for CodeSigner på Circle-CI
- setup_remote_docker: navn: Setup Remote Docker version: 19.03.13 docker_layer_caching: true
- Træk Codesigner Docker-billede fra Github Registry
- run: name: Docker Pull Image kommando: | docker pull ghcr.io/sslcom/codesigner:nyeste docker pull alpine:3.4
- Skriv det trin, hvor artefakten vil blive signeret med CodeSignTool.
- run: name: Sign Artifact File kommando: | docker create -v /codesign/packages --navn codesign-in alpine:3.4 /bin/true docker create -v /codesign/artifacts --name codesign-out alpine:3.4 /bin/true docker cp ${WORKSPACE}/pakker /<< parameters.artifact-name >> codesign-in:/codesign/packages docker run -i --rm --dns 8.8.8.8 --netværksvært --volumes-fra codesign-in --volumes-fra codesign- ud -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/<< parametre.artefaktnavn >>
- Skriv trinnet for, at dit artefakt skal uploades fra dit workflow, så du kan dele data mellem job og gemme data, når et workflow er færdigt
- store_artifacts: navn: Upload signerede filer sti: /home/circleci/project/artifacts/<< parameters.artifact-name >> destination: << parameters.artifact-name >>
Opret et nyt lager på kommandolinjen
Kopier push-kommandokomponenterne fra placeringen af dit projekt på din GitHub-konto
Inkluder alle push-kommandokomponenter i din editor
Opsæt et projekt på CircleCI ved hjælp af repository, der er integreret i GitHub
Definer alle miljøvariabler
Mens projektet kører, skal du klikke på knappen Projektindstillinger efterfulgt af Miljøvariabler for at definere variablerne
Placer værdierne for hver variabel
Klik på knappen Tilføj miljøvariabel knappen for at tilføje navne og værdier for alle variabler, der kræves til projektet.
Vent på, at projektet bliver bygget
Klik på Vedvarende til arbejdsområdet
Vent kort på, at arbejdsområdearkivet bliver uploadet.
Klik på tegnknappen
Vent på, at Remote Docker er konfigureret
Det kan tage mere end et minut, afhængigt af filens størrelse
Vent på, at artefakterne er underskrevet
Klik Artifacts fanen
Hvis du klikker på Artifacts, vil du kunne se den fil, som du har kodesigneret. Du vil også blive underrettet af CircleCI om den vellykkede kodesignering.
Prøve CircleCI Pipeline
Tjek prøven af CircleCI-pipeline, vi har oprettet på github.com/SSLcom/codesigner-circleci-sampleAndre CI/CD Remote Signing Integration Guides
- 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-tjenester
Brug for tilpassede løsninger?
Med vores ekspertviden og femstjernede supportmedarbejdere er vi klar til og villige til at arbejde sammen med dig om skræddersyede løsninger eller store signeringsrabatter på virksomhedsniveau. Udfyld formularen nedenfor, så kontakter vi dig.