Proměnné prostředí
- USERNAME: Uživatelské jméno účtu SSL.com. (Požadované)
- HESLO: Heslo účtu SSL.com (vyžadováno)
- CREDENTIAL_ID: ID pověření pro podpisový certifikát. Pokud je credential_id vynecháno a uživatel má pouze jeden certifikát pro podpis kódu eSigner, CodeSignTool jej použije jako výchozí. Pokud má uživatel více než jeden certifikát pro podpis kódu, je tento parametr povinný. (Požadované)
- TOTP_SECRET: Tajné OAuth TOTP. Podrobné informace získáte na https://www.ssl.com/how-to/automate-esigner-ev-code-signing (Povinné)
- ENVIRONMENT_NAME : Prostředí 'TEST' nebo 'PROD'. (Požadované)
Vstupy
- cesta k vstupnímu_souboru: Cesta objektu kódu, který má být podepsán. (Požadované)
- výstupní_adresář_cesta: Adresář, do kterého budou zapsány podepsané objekty kódu. Pokud je výstupní_cesta vynechána, soubor zadaný v -file_path bude přepsán podepsaným souborem.
Připravte součásti pracovního postupu (.NET Code DLL Signing)
- Vytvořte složku .circleci
V pracovním prostoru pro podepisování kódu vytvořte a složka .circleci. Pod ním vytvořte a soubor config.yml.
- Nastavte verzi CI
Verze: 2.1
- Vyvolejte úlohy prostřednictvím pracovních postupů. Pracovní postupy organizují sadu úloh, které mají být spuštěny. Úlohy pro tento kanál jsou nakonfigurovány níže
Viz: https://circleci.com/docs/2.0/configuration-reference/#workflows
pracovní postupy:
- Napište název pracovního postupu.
dotnet:
- Uvnitř pracovního postupu definujete úlohy, které chcete spouštět.
práce: - stavět - podepsat: vyžaduje: - stavět
Definujte fázi sestavení
- Definujte úlohu, která se má později v pracovním postupu vyvolat.
(Viz: https://circleci.com/docs/2.0/configuration-reference/#jobs)
práce: stavět:
- Vytvořte proměnnou prostředí
- Aby byly vzorky čitelnější, používají se proměnné prostředí. Na výše uvedeném snímku obrazovky příkladu pracovního postupu podepisování byly volitelně vynechány PROJECT_NAME, PROJECT_VERSION a DOTNET_VERSION. Podepisování může pokračovat i přes tato opomenutí.
prostředí: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 DOTNET_VERSION: 3.1 WORKSPACE: /home/circleci/project
- Definujte exekutor Docker: (https://circleci.com/docs/2.0/executor-types/)
# Můžete zadat obrázek z Dockerhubu nebo použít jeden z našich Convenience Images z vývojářského centra CircleCI.
docker: - obrázek: mcr.microsoft.com/dotnet/sdk:3.1-bullseye
- Umístěte pracovní adresář pro úlohu
pracovní_adresář: /home/circleci/project
- Přidejte kroky k úkolu
Viz: https://circleci.com/docs/2.0/configuration-reference/#steps
Kroky:
- Podívejte se na zdrojový kód, aby k němu měl pracovní postup přístup.
- Překontrolovat
- Vytvořte adresář artefaktů pro ukládání podepsaných a nepodepsaných souborů artefaktů
- run: name: Create Artifacts Directory command: | mkdir -p ${WORKSPACE}/artefakty mkdir -p ${WORKSPACE}/balíčky
- Sestavte projekt nebo řešení dotnet a všechny jeho závislosti.
- run: name: Build Dotnet Project Command: dotnet build dotnet/${PROJECT_NAME}.csproj -c Release
- Zkopírujte artefakt do adresáře artefaktů
- V tomto pracovním postupu písemného příkladu podepisování bylo vytvořeno několik typů projektů. To je důvod, proč byly soubory různých typů projektů udržovány vytvořením podsložek. Pro projekty Dotnet byla vytvořena podsložka s názvem 'dotnet'. Na ukázkovém snímku výše nebylo nutné vytvářet podsložku s názvem 'dotnet', takže to nebylo součástí skriptu.
- run: name: Copy Artifacts command: | cp dotnet/bin/Release/netcoreapp${DOTNET_VERSION}/${PROJECT_NAME}-${PROJECT_VERSION}.dll ${WORKSPACE}/packages/HelloWorld.dll
- Uložte artefakt do adresáře artefaktů k podepsání
- persist_to_workspace: root: . cesty: - balíčky/*
Definujte fázi podpisu
- Definujte úlohu podepisování
podepsat:
- Vytvořte proměnnou prostředí
- Na výše uvedeném snímku obrazovky byl příkaz sign definován přímo ve skriptu sign a nikoli pod proměnnými prostředí. Bostatní metody se mohou správně podepsat pomocí CircleCI.
- Aby byly vzorky čitelnější, používají se proměnné prostředí. Na výše uvedeném snímku obrazovky příkladu pracovního postupu nebyly některé proměnné volitelně zahrnuty. Podepisování může pokračovat i přes tato opomenutí.
prostředí: ENVIRONMENT_NAME: PROD COMMAND: podepsat WORKSPACE: /home/circleci/project
- Umístěte pracovní adresář úlohy na Circle-CI
pracovní_adresář: /home/circleci/project
- Název artefaktu pro podepisování
- Hodnota 'artifact-name' je volitelná pro více projektů Parametr 'artifact-name' byl přidán, aby bylo možné použít stejnou podepisovací část pro všechny typy projektů. Vzhledem k tomu, že příklad na snímku obrazovky je založen na jediném projektu, nebylo nutné jej zahrnout.
parametry: název-artefaktu: typ: řetězec výchozí: ''
- Definujte docker exekutor:
Další reference viz: https://circleci.com/docs/2.0/executor-types/
Můžete zadat obrázek z Dockerhubu nebo použít jeden z našich Convenience Images z vývojářského centra CircleCI.
Nezapomeňte aktualizovat značku obrázku Docker níže na verzi openjdk vaší aplikace.
Seznam dostupných obrázků CircleCI Docker Convenience Images je k dispozici zde: https://circleci.com/developer/images/image/cimg/openjdk
docker: - obrázek: cimg/openjdk:17.0.3
- Přidejte kroky k úkolu
Další reference viz: https://circleci.com/docs/2.0/configuration-reference/#steps
Kroky:
- Vytvořte adresář artefaktů pro ukládání podepsaných a nepodepsaných souborů artefaktů
- run: name: Create Artifacts Directory command: | mkdir -p ${WORKSPACE}/artefakty mkdir -p ${WORKSPACE}/balíčky
- Připojit k pracovnímu prostoru, abyste získali přístup k souboru artefaktu
- připojit_pracovní prostor: at: /home/circleci/project
- Povolte Docker pro CodeSigner na Circle-CI
- setup_remote_docker: name: Setup Remote Docker verze: 19.03.13 docker_layer_caching: true
- Vytáhněte obrázek Codesigner Docker z registru Github
- spustit: jméno: Docker Pull Obrazový příkaz: | docker pull ghcr.io/sslcom/codesigner:nejnovější docker pull alpine:3.4
- Napište krok, kde bude artefakt podepsán pomocí CodeSignTool.
- run: name: Sign Artifact File příkaz: | 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 /<< parametry.název-artifact >> 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 ${COMMAND} -input_file_path=/codesign/packages/<< parametry.artifact-name >> -output_dir_path=/codesign/artifacts docker cp codesign-out:/codesign/artifacts/<< parametry.artifact-name >> ${ WORKSPACE}/artifacts/<< parametry.název-artifact >>
- Napište krok pro váš artefakt, který se má nahrát z vašeho pracovního postupu, což vám umožní sdílet data mezi úlohami a ukládat data po dokončení pracovního postupu
- store_artifacts: name: Upload Signed Files path: /home/circleci/project/artifacts/<< parameters.artifact-name >> destination: << parameters.artifact-name >>
Vytvořte nové úložiště na příkazovém řádku
Zkopírujte komponenty příkazu push z umístění vašeho projektu na váš účet GitHub
Zahrňte do svého editoru všechny komponenty příkazů push
Nastavte projekt na CircleCI pomocí úložiště, které je integrované do GitHubu
Definujte všechny proměnné prostředí
Když je projekt spuštěn, klikněte na tlačítko Nastavení projektu a poté na Proměnné prostředí a definujte proměnné
Umístěte hodnoty pro každou proměnnou
Klepněte na tlačítko Přidat proměnnou prostředí tlačítko pro přidání názvů a hodnot všech proměnných požadovaných pro projekt.
Počkejte, až bude projekt postaven
Klepněte na Trvalé do pracovního prostoru
Krátce počkejte na úspěšné nahrání archivu pracovního prostoru.
Klikněte na tlačítko podepsat
Počkejte na nastavení vzdáleného ukotvovače
V závislosti na velikosti souboru to může trvat déle než minutu
Počkejte, až budou artefakty podepsány
klikněte Artefakty Karta
Pokud kliknete Artefakty, uvidíte soubor, který jste úspěšně podepsali. O úspěšném podepsání kódu budete také informováni společností CircleCI.
Ukázka potrubí CircleCI
Podívejte se na ukázku potrubí CircleCI, na které jsme vytvořili github.com/SSLcom/codesigner-circleci-sampleDalší příručky pro integraci vzdáleného podepisování CI/CD
- Integrace cloudového podepisování kódu s akcemi GitHub
- Integrace cloudového kódového podpisu s GitLab CI
- Integrace cloudového podepisování kódu s Jenkins CI
- Integrace cloudového podepisování kódu s Travis CI
- Integrace cloudového podepisování kódu s Azure DevOps
- Integrace cloudového podepisování kódu s BitBucket
- Cloudová automatizace podepisování kódu se službami CI/CD
Potřebujete vlastní řešení?
S našimi odbornými znalostmi a pětihvězdičkovým podpůrným personálem jsme připraveni a ochotni s vámi spolupracovat na vlastních řešeních nebo slevách na velkoobjemové podpisy na podnikové úrovni. Vyplňte formulář níže a my se vám ozveme.