ข้ามไปที่เนื้อหา

Azure Release pipeline

หลังจากได้ Images จากการ Build and Push ในส่วนของ Pipeline แล้ว ขั้นตอนต่อไปจะเป็นส่วนของการ Deploy containers ที่ server ปลายทาง ซึ่งจะต้องใช้ Release pipeline

Release pipeline จะเป็นอีก 1 pipeline ที่ทำงานแยกกับ Pipeline ทั่วไป ส่วนนี้จะรองรับสำหรับการ Release service โดยเฉพาะ สามารถ deploy ระบบที่มีความซับซ้อนได้ดี

Create release pipeline

Concept การใช้งานคือ การใช้งาน Task ssh เพื่อ remote ไปยัง server ปลายทางและทำการใช้คำสั่ง docker-compose up

  1. ในหมวดของ Pipelines จะใช้เมนูย่อยที่ชื่อว่า Releases
  2. กดปุ่ม New pipeline
  3. ในหน้า Select a template ให้เลือก Empty job ข้างบนสุด
  4. จะได้ Stage 1 มาเป็น Stage เริ่มต้น สามารถตั้งชื่อให้กับ Stage ได้
  5. กดเข้าไปที่ 1 job, 0 task ภายใน Stage 1 เพื่อเข้าไปสร้าง task deploy
  6. เลือก Agent job1
  7. กำหนด Agent pool

Task 1: Download docker-compose file from Published Artifact task

  1. กดปุ่ม + ที่ Agent job
  2. Search หา task ชื่อ Download Build Artifacts
  3. กด Add Download Build Artifacts task
  4. Download artifacts produced by กำหนดเป็น Current build
  5. Download type กำหนดเป็น Specific files
  6. Matching pattern กำหนดเป็น **
  7. Destination directory กำหนดเป็น $(System.ArtifactsDirectory)

Task 2: Pull images with SSH task

  1. กดปุ่ม + ที่ Agent job
  2. Search หา task ชื่อ SSH
  3. กด Add SSH task
  4. ให้ตั้งชื่อว่า Pull images
  5. เลือก SSH service connection เป็น SSH service connection ที่สร้างไว้
  6. เลือก Run เป็น Commands และใส่คำสั่งลงไปในกล่อง Commands
    cd $(System.ArtifactsDirectory)/compose-files && docker-compose pull 2>&1
    

Task 3: Run service with SSH task

  1. กดปุ่ม + ที่ Agent job
  2. Search หา task ชื่อ SSH
  3. กด Add SSH task
  4. SSH Task อันถัดไปให้ตั้งชื่อว่า Run services
  5. เลือก SSH service connection เป็น SSH service connection ที่สร้างไว้
  6. เลือก Run เป็น Commands และใส่คำสั่งลงไปในกล่อง Commands
    cd $(System.ArtifactsDirectory)/compose-files && docker-compose up -d --no-build 2>&1
    

Task 4: Clean up with SSH task

  1. กดปุ่ม + ที่ Agent job
  2. Search หา task ชื่อ SSH
  3. กด Add SSH task
  4. SSH Task อันถัดไปให้ตั้งชื่อว่า Clean up unused images
  5. เลือก SSH service connection เป็น SSH service connection ที่สร้างไว้
  6. เลือก Run เป็น Commands และใส่คำสั่งลงไปในกล่อง Commands
    docker image prune -f
    

Finish configure release pipeline

กดปุ่ม Save เพื่อเสร็จสิ้นการสร้าง Release pipeline ที่ขวาบนของหน้าจอ


Final step: Release Application

Create Release

หลังจากที่ Pipeline ได้ Build Image และ Push Image เสร็จสิ้นแล้ว มีขั้นตอนดังนี้

  1. กดปุ่ม Create Release ที่ขวาบนของหน้า Releases
  2. เลือก Artifacts หรือ version ของ source code
  3. ใส่รายละเอียดเกี่ยวกับการ Release
  4. กด Create ด้านล่าง
  5. รอ Release pipeline ทำงานจนครบทุก Task ถือว่าเสร็จสิ้นการ Deploy

Accessing published artifacts

การเข้าถึงไฟล์ artifact ที่ได้ publish มาจาก pipeline สามารถเข้าถึงด้วย Directory $(System.ArtifactsDirectory)/[artifact-name]

อีก 1 ช่องทางคือ Artifacts จะถูกเก็บอยู่ภายใน agent folder > _work

folder _work มาจากการ config Folder ทำงานของ agent ซึ่งจะ default ไว้ที่ _work ถ้าไม่มีการเปลี่ยนแปลงค่า การตั้งค่า agent ข้อที่ 7