variabili ambientali
- USERNAME: nome utente dell'account SSL.com. (Necessario)
- PASSWORD: password dell'account SSL.com (richiesto)
- CREDENZIALE_ID: ID credenziale per la firma del certificato. Se credential_id viene omesso e l'utente dispone di un solo certificato di firma del codice eSigner, CodeSignTool verrà impostato automaticamente su quello. Se l'utente ha più di un certificato di firma del codice, questo parametro è obbligatorio. (Necessario)
- TOTP_SEGRETO: Segreto TOTP OAuth. È possibile accedere a informazioni dettagliate su https://www.ssl.com/how-to/automate-esigner-ev-code-signing (Obbligatorio)
- NOME_AMBIENTE : Ambiente 'TEST' o 'PROD'. (Necessario)
ingressi
- percorso_file_input: Percorso dell'oggetto codice da firmare. (Necessario)
- output_dir_percorso: Directory in cui verranno scritti gli oggetti codice firmato. Se output_path viene omesso, il file specificato in -file_path verrà sovrascritto con il file firmato.
Preparare i componenti del flusso di lavoro (firma della DLL del codice .NET)
- Crea una cartella .circleci
Nell'area di lavoro per la firma del codice, crea un file cartella .circleci. Sotto di esso, crea un config.yml.
- Imposta la versione CI
Versione: 2.1
- Richiama lavori tramite flussi di lavoro. I flussi di lavoro orchestrano una serie di lavori da eseguire. I lavori per questa pipeline sono configurati di seguito
Vedi: https://circleci.com/docs/2.0/configuration-reference/#workflows
flussi di lavoro:
- Scrivi il nome del flusso di lavoro.
rete:
- All'interno del flusso di lavoro, definisci i lavori che desideri eseguire.
lavori: - build - sign: richiede: - build
Definisci la fase di costruzione
- Definire un lavoro da richiamare in seguito in un flusso di lavoro.
(Vedi: https://circleci.com/docs/2.0/configuration-reference/#jobs)
lavori: costruire:
- Crea una variabile di ambiente
- Le variabili di ambiente vengono utilizzate per rendere i campioni più leggibili. Nello screenshot sopra di un flusso di lavoro di firma di esempio, PROJECT_NAME, PROJECT_VERSION e DOTNET_VERSION sono stati opzionalmente omessi. La firma può comunque procedere anche con queste omissioni.
ambiente: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 DOTNET_VERSION: 3.1 WORKSPACE: /home/circleci/project
- Definisci un esecutore Docker: (https://circleci.com/docs/2.0/executor-types/)
# Puoi specificare un'immagine da Dockerhub o utilizzare una delle nostre Immagini di convenienza dall'Hub di sviluppo di CircleCI.
docker: - immagine: mcr.microsoft.com/dotnet/sdk:3.1-bullseye
- Posizionare la directory di lavoro per il lavoro
directory_di_lavoro: /home/circleci/progetto
- Aggiungi passaggi al lavoro
Vedi: https://circleci.com/docs/2.0/configuration-reference/#steps
passaggi:
- Controlla il codice sorgente in modo che il flusso di lavoro possa accedervi.
- guardare
- Crea una directory degli artefatti per archiviare file di artefatti firmati e non firmati
- esegui: nome: comando Crea directory degli artefatti: | mkdir -p ${WORKSPACE}/artifacts mkdir -p ${WORKSPACE}/pacchetti
- Crea un progetto o una soluzione dotnet e tutte le sue dipendenze.
- run: name: Build Dotnet Project Comando: dotnet build dotnet/${PROJECT_NAME}.csproj -c Release
- Copia l'artefatto nella directory degli artefatti
- In questo flusso di lavoro di esempio di firma scritta, sono stati creati più tipi di progetto. Questo è il motivo per cui i file di diversi tipi di progetto sono stati conservati creando delle sottocartelle. Per i progetti Dotnet è stata creata una sottocartella denominata 'dotnet'. Nello screenshot della demo sopra, non era necessario creare una sottocartella denominata "dotnet", quindi questa non era inclusa nello script.
- eseguire: nome: Copia artefatti comando: | cp dotnet/bin/Release/netcoreapp${DOTNET_VERSION}/${PROJECT_NAME}-${PROJECT_VERSION}.dll ${WORKSPACE}/packages/HelloWorld.dll
- Mantieni l'artefatto nella directory degli artefatti per la firma
- persist_to_workspace: root: . percorsi: - pacchetti/*
Definisci la fase della firma
- Definisci il lavoro di firma
cartello:
- Crea una variabile di ambiente
- Nello screenshot sopra, il comando sign è stato definito direttamente nello script sign e non nelle variabili di ambiente. Baltri metodi possono firmare correttamente con CircleCI.
- Le variabili di ambiente vengono utilizzate per rendere i campioni più leggibili. Nella schermata sopra del flusso di lavoro di esempio, alcune variabili facoltativamente non sono state incluse. La firma può comunque procedere anche con queste omissioni.
ambiente: ENVIRONMENT_NAME: PROD COMMAND: sign WORKSPACE: /home/circleci/project
- Posizionare la directory di lavoro per il lavoro su Circle-CI
directory_di_lavoro: /home/circleci/progetto
- Nome dell'artefatto per la firma
- Il valore 'artifact-name' è un'opzione per più progetti Il parametro 'artifact-name' è stato aggiunto in modo che la stessa parte di firma possa essere utilizzata per tutti i tipi di progetto. Poiché l'esempio nello screenshot è basato su un singolo progetto, non è stato necessario includerlo.
parametri: nome-artefatto: tipo: stringa predefinito: ''
- Definisci un esecutore Docker:
Per ulteriori riferimenti, vedere: https://circleci.com/docs/2.0/executor-types/
Puoi specificare un'immagine da Dockerhub o utilizzare una delle nostre Immagini di convenienza dall'Hub di sviluppo di CircleCI.
Assicurati di aggiornare il tag immagine Docker di seguito alla versione openjdk della tua applicazione.
Un elenco delle immagini disponibili CircleCI Docker è disponibile qui: https://circleci.com/developer/images/image/cimg/openjdk
finestra mobile: - immagine: cimg/openjdk:17.0.3
- Aggiungi passaggi al lavoro
Per ulteriori riferimenti, vedere: https://circleci.com/docs/2.0/configuration-reference/#steps
passaggi:
- Crea una directory degli artefatti per archiviare file di artefatti firmati e non firmati
- esegui: nome: comando Crea directory degli artefatti: | mkdir -p ${WORKSPACE}/artifacts mkdir -p ${WORKSPACE}/pacchetti
- Allega a Workspace per accedere al file artefatto
- attach_workspace: in: /home/circleci/project
- Abilita Docker per CodeSigner su Circle-CI
- setup_remote_docker: nome: Configurazione versione Docker remoto: 19.03.13 docker_layer_caching: true
- Estrai l'immagine Docker di Codesigner dal registro di Github
- esegui: nome: comando Docker Pull Image: | docker pull ghcr.io/sslcom/codesigner:ultimo docker pull alpine:3.4
- Scrivi il passaggio in cui verrà firmato l'artefatto con CodeSignTool.
- run: name: comando Sign Artifact File: | 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 --network host --volumes-from codesign-in --volumes-from codesign- out -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:latest ${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 >>
- Scrivi il passaggio per il tuo artefatto da caricare dal tuo flusso di lavoro consentendoti di condividere i dati tra i lavori e archiviare i dati una volta completato un flusso di lavoro
- store_artifacts: nome: Carica file firmati percorso: /home/circleci/project/artifacts/<< parameters.artifact-name >> destinazione: << parameters.artifact-name >>
Crea un nuovo repository sulla riga di comando
Copia i componenti del comando push dalla posizione del tuo progetto sul tuo account GitHub
Includi tutti i componenti dei comandi push nel tuo editor
Configura un progetto su CircleCI utilizzando il repository integrato in GitHub
Definisci tutte le variabili d'ambiente
Mentre il progetto è in esecuzione, fare clic sul pulsante Impostazioni progetto seguito da Variabili d'ambiente per definire le variabili
Posiziona i valori per ciascuna variabile
Clicca su Aggiungi variabile d'ambiente pulsante per aggiungere i nomi e i valori di tutte le variabili richieste per il progetto.
Aspetta che il progetto venga costruito
Fare clic su Persistenza nell'area di lavoro
Attendere brevemente che l'archivio dell'area di lavoro venga caricato correttamente.
Fare clic sul pulsante del segno
Attendi la configurazione del Docker remoto
Potrebbe volerci più di un minuto, a seconda delle dimensioni del file
Attendi che gli artefatti vengano firmati
Clicchi Artifacts linguetta
Se fai clic su Artifacts, sarai in grado di vedere il file che hai firmato correttamente con il codice. Inoltre, CircleCI ti avviserà dell'avvenuta firma del codice.
Pipeline CircleCI di esempio
Dai un'occhiata alla pipeline CircleCI di esempio che abbiamo creato github.com/SSLcom/codesigner-circleci-sampleAltre guide all'integrazione della firma remota CI/CD
- Integrazione della firma del codice cloud con le azioni GitHub
- Integrazione Cloud Code Signing con GitLab CI
- Integrazione della firma del codice cloud con Jenkins CI
- Integrazione Cloud Code Signing con Travis CI
- Integrazione della firma del codice cloud con Azure DevOps
- Integrazione della firma del codice cloud con BitBucket
- Automazione della firma del codice cloud con servizi CI/CD
Hai bisogno di soluzioni personalizzate?
Con la nostra conoscenza esperta e il personale di supporto a cinque stelle, siamo pronti e disposti a lavorare con te su soluzioni personalizzate o sconti per firme di alto volume a livello aziendale. Compila il modulo sottostante e sarai ricontattato.