ตัวแปรสภาพแวดล้อม
- USERNAME: ชื่อผู้ใช้บัญชี SSL.com (ที่จำเป็น)
- รหัสผ่าน: รหัสผ่านบัญชี SSL.com (จำเป็น)
- ข้อมูลประจำตัว_ID: รหัสประจำตัวสำหรับใบรับรองการลงนาม หากละเว้น credential_id และผู้ใช้มีใบรับรองการลงชื่อรหัส eSigner เพียงใบเดียว CodeSignTool จะใช้ค่าเริ่มต้นตามนั้น หากผู้ใช้มีใบรับรองการลงนามโค้ดมากกว่าหนึ่งรายการ พารามิเตอร์นี้บังคับ (ที่จำเป็น)
- TOTP_ความลับ: OAuth TOTP ความลับ คุณสามารถเข้าถึงข้อมูลรายละเอียดเกี่ยวกับ https://www.ssl.com/how-to/automate-esigner-ev-code-signing (จำเป็น)
- สิ่งแวดล้อม_NAME : สภาพแวดล้อม 'TEST' หรือ 'PROD' (ที่จำเป็น)
ปัจจัยการผลิต
- input_file_path: เส้นทางของรหัสวัตถุที่จะลงนาม (ที่จำเป็น)
- output_dir_path: ไดเร็กทอรีที่จะเขียนโค้ดอ็อบเจ็กต์ หากละเว้น output_path ไฟล์ที่ระบุใน -file_path จะถูกเขียนทับด้วยไฟล์ที่ลงนาม
เตรียมส่วนประกอบของเวิร์กโฟลว์ (.NET Code DLL เซ็นชื่อ)
- สร้างโฟลเดอร์ .circleci
ในพื้นที่ทำงานการเซ็นโค้ดของคุณ ให้สร้าง .circleci โฟลเดอร์. ภายใต้มันสร้าง ไฟล์ config.yml.
- ตั้งค่าเวอร์ชัน CI
รุ่น: 2.1
- เรียกใช้งานผ่านเวิร์กโฟลว์ เวิร์กโฟลว์จัดชุดงานที่จะรัน งานสำหรับไปป์ไลน์นี้มีการกำหนดค่าด้านล่าง
โปรดดูที่: https://circleci.com/docs/2.0/configuration-reference/#workflows
เวิร์กโฟลว์:
- เขียนชื่อเวิร์กโฟลว์
ดอทเน็ต:
- ภายในเวิร์กโฟลว์ คุณกำหนดงานที่คุณต้องการเรียกใช้
งาน: - build - sign: ต้องการ: - build
กำหนดขั้นตอนการสร้าง
- กำหนดงานที่จะเรียกใช้ในภายหลังในเวิร์กโฟลว์
(ดู: https://circleci.com/docs/2.0/configuration-reference/#jobs)
งาน: สร้าง:
- สร้างตัวแปรสภาพแวดล้อม
- ตัวแปรสภาพแวดล้อมใช้เพื่อทำให้ตัวอย่างอ่านง่ายขึ้น ในภาพหน้าจอด้านบนของตัวอย่างเวิร์กโฟลว์การเซ็นชื่อ PROJECT_NAME, PROJECT_VERSION และ DOTNET_VERSION ถูกละเว้นหรือไม่ก็ได้ การลงนามยังคงดำเนินต่อไปได้แม้จะละเว้นเหล่านี้
สภาพแวดล้อม: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 DOTNET_VERSION: 3.1 WORKSPACE: /home/circleci/project
- กำหนดตัวดำเนินการ Docker: (https://circleci.com/docs/2.0/executor-types/)
# คุณสามารถระบุรูปภาพจาก Dockerhub หรือใช้ Convenience Images ของเราได้จาก Developer Hub ของ CircleCI
นักเทียบท่า: - ภาพ: mcr.microsoft.com/dotnet/sdk:3.1-bullseye
- วางไดเร็กทอรีการทำงานสำหรับงาน
Working_directory: /home/circleci/project
- เพิ่มขั้นตอนในการทำงาน
ดู: https://circleci.com/docs/2.0/configuration-reference/#steps
ขั้นตอน
- ตรวจสอบซอร์สโค้ดเพื่อให้เวิร์กโฟลว์สามารถเข้าถึงได้
- เช็คเอาท์
- สร้าง Artifact Directory เพื่อจัดเก็บไฟล์ Artifact ที่ลงชื่อและไม่ได้ลงนาม
- run: ชื่อ: Create Artifacts Directory คำสั่ง: | mkdir -p ${WORKSPACE}/artifacts mkdir -p ${WORKSPACE}/แพ็คเกจ
- สร้างโปรเจ็กต์ dotnet หรือโซลูชันและการพึ่งพาทั้งหมด
- run: ชื่อ: Build Dotnet Project Command: dotnet build dotnet/${PROJECT_NAME}.csproj -c Release
- คัดลอกอาร์ติแฟกต์ไปยังไดเร็กทอรีอาร์ติแฟกต์
- ในเวิร์กโฟลว์ตัวอย่างการเซ็นชื่อที่เป็นลายลักษณ์อักษรนี้ มีการสร้างโครงการหลายประเภท นี่คือสาเหตุที่ไฟล์ประเภทโปรเจ็กต์ต่างๆ ถูกเก็บไว้โดยการสร้างโฟลเดอร์ย่อย โฟลเดอร์ย่อยชื่อ 'dotnet' ถูกสร้างขึ้นสำหรับโปรเจ็กต์ Dotnet ในภาพหน้าจอสาธิตด้านบน ไม่จำเป็นต้องสร้างโฟลเดอร์ย่อยชื่อ 'dotnet' ดังนั้นจึงไม่รวมอยู่ในสคริปต์
- run: ชื่อ: Copy Artifacts คำสั่ง: | cp dotnet/bin/Release/netcoreapp${DOTNET_VERSION}/${PROJECT_NAME}-${PROJECT_VERSION}.dll ${WORKSPACE}/packages/HelloWorld.dll
- คงอาร์ติแฟกต์ไว้ในไดเร็กทอรีอาร์ติแฟกต์สำหรับการลงนาม
-persist_to_workspace: รูท: . เส้นทาง: - แพ็คเกจ/*
กำหนดขั้นตอนการลงนาม
- กำหนดงานลงนาม
ลงชื่อ:
- สร้างตัวแปรสภาพแวดล้อม
- ในภาพหน้าจอด้านบน คำสั่ง sign ถูกกำหนดโดยตรงในสคริปต์สัญญาณและไม่ได้อยู่ภายใต้ตัวแปรสภาพแวดล้อม บีวิธีอื่นสามารถลงนามอย่างถูกต้องด้วย CircleCI
- ตัวแปรสภาพแวดล้อมใช้เพื่อทำให้ตัวอย่างอ่านง่ายขึ้น ในภาพหน้าจอด้านบนของเวิร์กโฟลว์ตัวอย่าง ตัวแปรบางตัวไม่ได้รวมอยู่ด้วย การลงนามยังคงดำเนินต่อไปได้แม้จะละเว้นเหล่านี้
สภาพแวดล้อม: ENVIRONMENT_NAME: PROD COMMAND: ลงชื่อ พื้นที่ทำงาน: /home/circleci/project
- วางไดเร็กทอรีการทำงานสำหรับงานบน Circle-CI
Working_directory: /home/circleci/project
- ชื่อสิ่งประดิษฐ์สำหรับการลงนาม
- ค่า 'ชื่อสิ่งประดิษฐ์' เป็นตัวเลือกสำหรับหลายโปรเจ็กต์ มีการเพิ่มพารามิเตอร์ 'ชื่ออาร์ติแฟกต์' เพื่อให้ส่วนการเซ็นชื่อเดียวกันสามารถใช้ได้กับโปรเจ็กต์ทุกประเภท เนื่องจากตัวอย่างในภาพหน้าจออิงตามโปรเจ็กต์เดียว ไม่จำเป็นต้องรวมไว้ด้วย
พารามิเตอร์: ชื่อสิ่งประดิษฐ์: ประเภท: สตริง ค่าเริ่มต้น: ''
- กำหนดตัวดำเนินการนักเทียบท่า:
สำหรับการอ้างอิงเพิ่มเติม โปรดดูที่: https://circleci.com/docs/2.0/executor-types/
คุณสามารถระบุรูปภาพจาก Dockerhub หรือใช้ Convenience Images ของเราได้จาก Developer Hub ของ CircleCI
อย่าลืมอัปเดตแท็กอิมเมจ Docker ด้านล่างเป็นเวอร์ชัน openjdk ของแอปพลิเคชันของคุณ
รายการรูปภาพ CircleCI Docker Convenience ที่มีจำหน่ายอยู่ที่นี่: https://circleci.com/developer/images/image/cimg/openjdk
นักเทียบท่า: - ภาพ: cimg/openjdk:17.0.3
- เพิ่มขั้นตอนในการทำงาน
สำหรับการอ้างอิงเพิ่มเติม โปรดดูที่: https://circleci.com/docs/2.0/configuration-reference/#steps
ขั้นตอน
- สร้าง Artifact Directory เพื่อจัดเก็บไฟล์ Artifact ที่ลงชื่อและไม่ได้ลงนาม
- run: ชื่อ: Create Artifacts Directory คำสั่ง: | mkdir -p ${WORKSPACE}/artifacts mkdir -p ${WORKSPACE}/แพ็คเกจ
- แนบไปกับเวิร์กสเปซเพื่อเข้าถึงไฟล์อาร์ติแฟกต์
- attach_workspace: ที่: /home/circleci/project
- เปิดใช้งาน Docker สำหรับ CodeSigner บน Circle-CI
- setup_remote_docker: ชื่อ: Setup Remote Docker เวอร์ชั่น: 19.03.13 docker_layer_caching: true
- ดึง Codesigner Docker Image จาก Github Registry
- รัน: ชื่อ: คำสั่ง Docker Pull Image: | นักเทียบท่าดึง ghcr.io/sslcom/codesigner: นักเทียบท่าล่าสุดดึงอัลไพน์: 3.4
- เขียนขั้นตอนที่จะลงนามสิ่งประดิษฐ์ด้วย CodeSignTool
- รัน: ชื่อ: เซ็นคำสั่งไฟล์สิ่งประดิษฐ์: | นักเทียบท่า 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- ออก -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/<< Parameter.artifact-name >> ${ พื้นที่ทำงาน}/artifacts/<< Parameters.artifact-name >>
- เขียนขั้นตอนสำหรับอาร์ติแฟกต์ของคุณที่จะอัปโหลดจากเวิร์กโฟลว์ของคุณ ช่วยให้คุณสามารถแบ่งปันข้อมูลระหว่างงานและจัดเก็บข้อมูลเมื่อเวิร์กโฟลว์เสร็จสมบูรณ์
- store_artifacts: ชื่อ: อัปโหลดไฟล์ที่ลงนาม เส้นทาง: /home/circleci/project/artifacts/<< Parameters.artifact-name >> ปลายทาง: << Parameters.artifact-name >>
สร้างที่เก็บใหม่บนบรรทัดคำสั่ง
คัดลอกส่วนประกอบคำสั่งพุชจากตำแหน่งโครงการของคุณในบัญชี GitHub
รวมส่วนประกอบคำสั่งพุชทั้งหมดในโปรแกรมแก้ไขของคุณ
ตั้งค่าโครงการบน CircleCI โดยใช้ที่เก็บที่รวมเข้ากับ GitHub
กำหนดตัวแปรสภาพแวดล้อมทั้งหมด
ขณะที่โปรเจ็กต์กำลังทำงานอยู่ ให้คลิกปุ่มการตั้งค่าโปรเจ็กต์ตามด้วยตัวแปรสภาพแวดล้อมเพื่อกำหนดตัวแปร
วางค่าสำหรับตัวแปรแต่ละตัว
คลิก เพิ่มตัวแปรสภาพแวดล้อม ปุ่มเพื่อเพิ่มชื่อและค่าของตัวแปรทั้งหมดที่จำเป็นสำหรับโครงการ
รอโครงการสร้าง
คลิก Persisting to workspace
รอสักครู่เพื่อให้อัปโหลดไฟล์เก็บถาวรเวิร์กสเปซสำเร็จ
คลิกที่ปุ่มเข้าสู่ระบบ
รอให้ Remote Docker ถูกตั้งค่า
อาจใช้เวลานานกว่าหนึ่งนาที ขึ้นอยู่กับขนาดของไฟล์
รอให้สิ่งประดิษฐ์ที่จะลงนาม
คลิก ศิลปวัตถุ แถบ
ถ้าคุณคลิก ศิลปวัตถุคุณจะสามารถเห็นไฟล์ที่คุณเซ็นรหัสสำเร็จ คุณจะได้รับแจ้งจาก CircleCI เกี่ยวกับการลงนามรหัสสำเร็จ
ตัวอย่างไปป์ไลน์ CircleCI
ตรวจสอบตัวอย่างไปป์ไลน์ CircleCI ที่เราสร้างขึ้น github.com/SSLcom/codesigner-circleci-sampleคู่มือการบูรณาการการลงนามระยะไกล CI/CD อื่นๆ
- การผสานรวมการเซ็นชื่อรหัสบนคลาวด์กับ GitHub Actions
- การผสานรวมการเซ็นชื่อรหัสบนคลาวด์กับ GitLab CI
- การผสานรวมการเซ็นชื่อรหัสบนคลาวด์กับ Jenkins CI
- การผสานรวมการเซ็นชื่อรหัสบนคลาวด์กับ Travis CI
- การรวมการลงนามรหัสบนคลาวด์กับ Azure DevOps
- การรวมการลงนามรหัสบนคลาวด์กับ BitBucket
- ระบบอัตโนมัติลงนามรหัสบนคลาวด์ด้วยบริการ CI/CD
ต้องการโซลูชันที่กำหนดเองหรือไม่
ด้วยความรู้จากผู้เชี่ยวชาญและเจ้าหน้าที่สนับสนุนระดับห้าดาว เราพร้อมและยินดีที่จะทำงานร่วมกับคุณเกี่ยวกับโซลูชันแบบกำหนดเองหรือส่วนลดการลงนามจำนวนมากในระดับองค์กร กรอกแบบฟอร์มด้านล่าง แล้วเราจะติดต่อกลับไป