นี่คือคำแนะนำเกี่ยวกับวิธีการรวม Azure DevOps กับ eSigner CodeSignTool เพื่อทำการลงนามโค้ดอัตโนมัติ
CodeSignTool เป็นยูทิลิตี้บรรทัดคำสั่งที่เหมาะสำหรับกระบวนการลงนามโค้ดบนคลาวด์และรวมเข้ากับแพลตฟอร์ม CI/CD ต่างๆ ได้อย่างราบรื่น เป็นส่วนหนึ่งของ eSigner: บริการเซ็นชื่อจากระยะไกลซึ่งนำเสนอวิธีการเซ็นโค้ดที่มีประสิทธิภาพ ปลอดภัย และเป็นมิตรกับผู้ใช้
ตัวแปรสภาพแวดล้อม
- 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 จะถูกเขียนทับด้วยไฟล์ที่ลงนาม
สร้างโครงการบน visualstudio.com
สร้างไฟล์ .yml ใหม่ในโปรแกรมแก้ไขโค้ดของคุณ
ตั้งค่าทริกเกอร์การรวมและตัวแปรสภาพแวดล้อม
ทริกเกอร์การรวมอย่างต่อเนื่อง
ทริกเกอร์:
- ไม่มี
กำหนดตัวแปรสภาพแวดล้อมทั่วโลก คุณสมบัติระดับงานแทนที่ตัวแปรส่วนกลาง
ตัวแปร
buildConfiguration: 'ปล่อย'
จัดกลุ่มงานเป็นขั้นตอน
เขียนขั้นตอนสำหรับขั้นตอนการสร้าง งานทั้งหมดในสเตจเดียวต้องทำให้เสร็จก่อนดำเนินการสเตจถัดไป
ขั้นตอน:
– เวที: สร้าง
# เมื่อเวิร์กโฟลว์ทำงาน นี่คือชื่อที่บันทึก
ชื่อที่แสดง: Build
งาน:
- งาน:
สระน้ำ:
เรียกใช้งานบน Windows VMs
vmImage: 'windows-ล่าสุด'
ขั้นตอน
ติดตั้ง Dotnet 6.0.x
– งาน: UseDotNet@2
displayName: 'ติดตั้ง .NET Core SDK'
อินพุต:
เวอร์ชัน: '6.0.x'
performMultiLevelLookup: จริง
รวมPreviewVersions: จริง
คืนค่าโปรเจ็กต์ Dotnet
– งาน: DotNetCoreCLI@2
ชื่อที่แสดง: Restore
อินพุต:
คำสั่ง: 'กู้คืน'
สร้างโปรเจ็กต์ dotnet ด้วยการกำหนดค่ารีลีส
– งาน: DotNetCoreCLI@2
ชื่อที่แสดง: Build
อินพุต:
คำสั่ง: build
โครงการ: HelloWorld.csproj
อาร์กิวเมนต์: '–configuration $(buildConfiguration)'
สร้างไดเร็กทอรีสำหรับอาร์ติแฟกต์ที่ลงนาม
– powershell: รายการใหม่ -ItemType Directory -Path ./artifacts
displayName: 'สร้างไดเร็กทอรีสำหรับอาร์ติแฟกต์'
สร้างไดเร็กทอรีสำหรับแพ็คเกจที่ลงนาม
– powershell: รายการใหม่ -ItemType Directory -Path ./packages
displayName: 'สร้างไดเร็กทอรีสำหรับแพ็คเกจ'
คัดลอกอาร์ติแฟกต์เพื่อเป็นเส้นทางลงนาม
- powershell: คัดลอกรายการ ./bin/Release/netcoreapp3.1/HelloWorld-0.0.1.dll -Destination ./packages/HelloWorld.dll
displayName: “คัดลอกสิ่งประดิษฐ์ที่สร้างขึ้นไปยังไดเร็กทอรีแพ็คเกจ”
บันทึกสิ่งประดิษฐ์เพื่อใช้งานการลงนาม
– งาน: PublishBuildArtifacts@1
displayName: 'บันทึกเป็นสิ่งประดิษฐ์ที่ลงนามเพื่อดาวน์โหลด'
อินพุต:
pathtoPublish: ./packages/HelloWorld.dll
สิ่งประดิษฐ์ชื่อ: HelloWorld.dll
เขียนขั้นตอนสำหรับขั้นตอนป้าย
– เวที: Sign
# เมื่อเวิร์กโฟลว์ทำงาน นี่คือชื่อที่บันทึก
ชื่อที่แสดง: เซ็น
งาน:
- งาน:
สระน้ำ:
เรียกใช้งานบน Ubuntu VMs
vmImage: “อูบุนตูล่าสุด”
ขั้นตอน
สร้างไดเร็กทอรีสำหรับอาร์ติแฟกต์ที่ลงนาม
– สคริปต์: mkdir -p ./artifacts && mkdir -p ./packages
displayName: “สร้างไดเร็กทอรีสำหรับอาร์ติแฟกต์และแพ็คเกจ”
ดาวน์โหลดสิ่งประดิษฐ์ที่จะลงนาม
– งาน: DownloadPipelineArtifact@2
อินพุต:
สิ่งประดิษฐ์: HelloWorld.dll
เส้นทางการดาวน์โหลด: ./packages
ติดตั้ง Docker 17.09.0-ce
– งาน: DockerInstaller@0
ชื่อที่แสดง: โปรแกรมติดตั้ง Docker
อินพุต:
นักเทียบท่าเวอร์ชัน: 17.09.0-ce
releaseType: เสถียร
Docker Pull CodeSigner ภาพนักเทียบท่า
– สคริปต์: นักเทียบท่าดึง ghcr.io/sslcom/codesigner:latest
displayName: 'Docker Pull CodeSigner ภาพนักเทียบท่า'
เซ็นชื่อสิ่งประดิษฐ์ด้วย CodeSigner docker image
– สคริปต์: docker run -i –rm –dns 8.8.8.8 –network host –volume $PWD/packages:/codesign/examples –volume $PWD/artifacts:/codesign/output
-e USERNAME=$(USERNAME) -e รหัสผ่าน=$(รหัสผ่าน) -e CREDENTIAL_ID=$(CREDENTIAL_ID) -e TOTP_SECRET=$(TOTP_SECRET)
-e ENVIRONMENT_NAME=$(ENVIRONMENT_NAME) ghcr.io/sslcom/codesigner: เครื่องหมายล่าสุด -input_file_path=/codesign/examples/HelloWorld.dll
-output_dir_path=/codesign/output
displayName: 'ลงนามสิ่งประดิษฐ์ด้วยภาพนักเทียบท่า CodeSigner'
บันทึกสิ่งประดิษฐ์ที่ลงนามเพื่อดาวน์โหลด
– งาน: PublishBuildArtifacts@1
displayName: 'บันทึกสิ่งประดิษฐ์ที่ลงนามเพื่อดาวน์โหลด'
อินพุต:
pathtoPublish: ./artifacts/HelloWorld.dll
สิ่งประดิษฐ์ชื่อ: HelloWorld.dll
สร้างไฟล์ .gitignore ใหม่
พิมพ์ใน:
ถัง
obj
.vscode
บนแถบข้อความ พิมพ์สร้างไพพ์ไลน์.yml แล้วคลิก กระทำ ปุ่ม
ดำเนินการต่อเพื่อคลิก ซิงค์การเปลี่ยนแปลง ปุ่ม
ไปที่ visualstudio.com แล้วคลิก repos บนแดชบอร์ด
รีเฟรชหน้าเพื่อดูไฟล์ yml
คลิก ท่อ บนแดชบอร์ด
คลิกถัดไป สร้างไปป์ไลน์
คลิก Azure Repos Git
เลือกไฟล์ YAML ของคุณ
คลิก ตัวแปร ตามด้วย ตัวแปรใหม่
วางค่าสำหรับตัวแปรสภาพแวดล้อมแต่ละตัวแล้วคลิก OK ปุ่ม
คลิกเครื่องหมาย + เพื่อเพิ่มตัวแปรแต่ละตัวต่อไป
หลังจากใส่ตัวแปรทั้งหมดแล้ว ให้ดำเนินการสร้างไปป์ไลน์ของคุณ
เรียกใช้ไปป์ไลน์ของคุณ
คลิก ท่อ บนแดชบอร์ด คลิกจุดสามจุด (ตัวเลือกเพิ่มเติม) บนไปป์ไลน์ของคุณ คลิก เรียกใช้ไปป์ไลน์. สุดท้ายให้คลิกที่ วิ่ง ปุ่ม
คลิกสร้างเพื่อเริ่มขั้นตอนการสร้าง
ตรวจสอบว่าแต่ละงานในขั้นตอนการสร้างสำเร็จหรือไม่
คลิกลูกศรแบบเลื่อนลงข้าง การสัมภาษณ์ เพื่อดูสถานะของงานบิลด์แต่ละงาน
เริ่มขั้นตอนการลงชื่อโดยคลิก การสัมภาษณ์
ตรวจสอบว่าแต่ละขั้นตอนในกระบวนการเซ็นสำเร็จหรือไม่
ตรวจสอบอีกครั้งว่าทั้งขั้นตอนการสร้างและลงนามสำเร็จหรือไม่
ตัวอย่างไปป์ไลน์ Azure DevOps
ตรวจสอบตัวอย่างไปป์ไลน์ Azure DevOps ที่เราสร้างขึ้น github.com/SSLcom/codesigner-azuredevops-sampleคู่มือการรวมการเซ็นชื่อระยะไกลอื่นๆ
- การผสานรวมการเซ็นชื่อรหัสบนคลาวด์กับ CircleCI
- การผสานรวมการเซ็นชื่อรหัสบนคลาวด์กับ GitHub Actions
- การผสานรวมการเซ็นชื่อรหัสบนคลาวด์กับ GitLab CI
- การผสานรวมการเซ็นชื่อรหัสบนคลาวด์กับ Travis CI
- การผสานรวมการเซ็นชื่อรหัสบนคลาวด์กับ Jenkins CI
- การรวมการลงนามรหัสบนคลาวด์กับ BitBucket
- ระบบอัตโนมัติลงนามรหัสบนคลาวด์ด้วยบริการ CI/CD
ต้องการโซลูชันที่กำหนดเองหรือไม่
ด้วยความรู้จากผู้เชี่ยวชาญและเจ้าหน้าที่สนับสนุนระดับห้าดาว เราพร้อมและยินดีที่จะทำงานร่วมกับคุณเกี่ยวกับโซลูชันแบบกำหนดเองหรือส่วนลดการลงนามจำนวนมากในระดับองค์กร กรอกแบบฟอร์มด้านล่าง แล้วเราจะติดต่อกลับไป