Computer >> คอมพิวเตอร์ >  >> ระบบ >> Android

วิธีใช้ GitHub Actions เพื่อพัฒนาแอพ Android โดยอัตโนมัติ

มีงานซ้ำๆ มากมายที่เราต้องทำทุกวัน และอาจดูน่าเบื่อ ยาก และซ้ำซากจำเจ

แต่แทนที่จะทำงานประจำวันเหล่านั้น คุณสามารถมอบหมายงานเหล่านั้นเพื่อให้ใครบางคนหรืออย่างอื่นทำแทนคุณ ด้วยวิธีนี้ คุณจะมีเวลาทำสิ่งที่คุณต้องการทำมากขึ้น จะได้มีเวลาพักผ่อน

หากคุณเคยพัฒนาแอปพลิเคชัน Android มาก่อน คุณจะรู้ว่างานบางอย่างจะน่าเบื่อเพียงใด:

  • กำลังทดสอบ
  • ตรวจสอบให้แน่ใจว่าแอปพลิเคชันคอมไพล์เมื่อรวมโค้ดใหม่
  • การสร้างและเผยแพร่แอปพลิเคชัน

แล้วเราควรส่งต่องานเหล่านี้ให้ใคร? เพื่อนร่วมงานคนอื่น? พวกเขาสามารถส่งต่อให้คนอื่นได้และจะไม่ทำให้เวลาใครว่าง นอกจากนี้ เราไม่ต้องการให้เพื่อนร่วมงานของเราเสียเปรียบ วิธีแก้ปัญหา?

ทักทาย GitHub Actions 👐

การกระทำของ GitHub คืออะไร

GitHub Actions คือคำสั่งที่เราทริกเกอร์ได้เมื่อมีบางอย่างเกิดขึ้นในที่เก็บของเรา ที่แกนหลัก การดำเนินการคือไฟล์การกำหนดค่าที่มีรายการคำสั่งที่อธิบาย:

  • สิ่งที่ต้องเกิดขึ้น
  • เมื่อไรจะเกิดขึ้น

ไฟล์การกำหนดค่านี้อยู่ในรูปแบบ YAML (.yml) และตัวอย่างจะมีลักษณะดังนี้:

name: My GitHub Action

on: pull_request

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v1

มาแบ่งตัวอย่างด้านบนกัน:

  1. เราตั้งชื่อให้กับการกระทำของเรา (My GitHub Action) [ไม่บังคับ]
  2. เรามีความหมายว่าการดำเนินการนี้ควรทำงานเมื่อใด (เมื่อมีการเปิดคำขอดึง)
  3. เราเริ่มรายการงาน (งาน) ที่ควรจะเกิดขึ้นเมื่อมีการทริกเกอร์การดำเนินการนี้
  4. อันแรกคือ บิลด์ การกระทำ
  5. ตัว วิ่งต่อ คำสั่งบอก GitHub ว่านักวิ่งคนใดจะทำงานนี้ (นี่คือเซิร์ฟเวอร์เสมือนและคุณสามารถเลือกระหว่าง Windows/Mac/Linux)
  6. แต่ละงานสามารถมีหลายขั้นตอนซึ่งจัดกลุ่มเข้าด้วยกันโดย ขั้นตอน คีย์เวิร์ด
  7. การ ใช้ คีย์เวิร์ดบอกสคริปต์ว่าต้องดำเนินการใด

นี่เป็นตัวอย่างสั้นๆ ที่ไม่ได้แสดงคุณลักษณะทั้งหมดของ GitHub Actions แต่ให้การดูโครงสร้างของไฟล์การกำหนดค่า

ในส่วนถัดไป เราจะสร้างการดำเนินการที่จะช่วยให้วงจรการพัฒนาของเรามีประสิทธิภาพและประสิทธิผล

โปรดทราบว่าไฟล์ GitHub Actions ทั้งหมดต้องอยู่ภายใต้โฟลเดอร์หลักของโครงการของคุณในเส้นทาง .github/เวิร์กโฟลว์ :

วิธีใช้ GitHub Actions เพื่อพัฒนาแอพ Android โดยอัตโนมัติ

วิธีสร้างการดำเนินการ GitHub สำหรับคำขอดึง

ไม่ว่าคุณจะทำงานในโครงการคนเดียวหรือเป็นส่วนหนึ่งของทีม การตรวจสอบให้แน่ใจว่าแอปพลิเคชันของคุณมีเสถียรภาพเป็นสิ่งสำคัญ ดังนั้นจึงเหมาะสมอย่างยิ่งที่จะตรวจสอบให้แน่ใจว่าแอปพลิเคชันของคุณรวบรวมอย่างถูกต้องและการทดสอบทั้งหมดจะผ่านเมื่อใดก็ตามที่คุณพิจารณารวมคำขอดึง

เราได้แสดงให้เห็นแล้วในตัวอย่างของเราว่าเราสามารถชำระเงินโค้ดในที่เก็บของเราได้อย่างไร ในการดำเนินการนี้ เราจะรวมขั้นตอนต่อไปนี้:

  1. การตั้งค่าเวอร์ชัน JDK
  2. การเปลี่ยนการอนุญาตสำหรับสภาพแวดล้อมเสมือน
  3. ทำการทดสอบ (ถ้ามี)
  4. การสร้างแอปพลิเคชัน
name: Android Build

on: pull_request

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v1

      - name: Set Up JDK              // 1
        uses: actions/setup-java@v1
        with:
          java-version: 1.8

      - name: Change wrapper permissions  // 2
        run: chmod +x ./gradlew

      - name: Run Tests                   // 3
        run: ./gradlew test

      - name: Build Project               // 4
        run: ./gradlew assemble

คุณจะเห็นได้ว่าข้างต้น แต่ละขั้นตอนมีคุณสมบัติและคุณลักษณะเฉพาะของตนเอง

ฉันจะไม่พูดถึงแต่ละรายการ เนื่องจากคุณสามารถทำได้ด้วยตัวเองผ่านเอกสารประกอบ สิ่งที่พบได้ทั่วไปสำหรับขั้นตอนส่วนใหญ่คือการ วิ่ง คำสำคัญ. คุณลักษณะนี้ระบุคำสั่งที่จะดำเนินการ

✋ เราต้องการขั้นตอนที่สองเพื่อให้สภาพแวดล้อมเสมือนสามารถเรียกใช้คำสั่ง gradle ได้ หากไม่มีสิ่งนี้ มันก็จะทำไม่ได้

วิธีสร้าง GitHub Action สำหรับการเผยแพร่แอปพลิเคชัน

เมื่อคุณเผยแพร่ใบสมัครของคุณเป็นครั้งแรกแล้ว การเผยแพร่ซ้ำจะกลายเป็นเรื่องน่าเบื่อ

คุณต้องตรวจสอบให้แน่ใจว่าได้อัปเกรดเวอร์ชันแล้ว สร้าง APK ส่งผ่าน Google Play Console และงานที่น่าเบื่ออื่นๆ

เราสามารถทำให้กระบวนการนี้เป็นไปโดยอัตโนมัติด้วยการดำเนินการ GitHub อื่น การดำเนินการนี้ซับซ้อนกว่าครั้งก่อนเล็กน้อยเนื่องจากต้องใช้ GitHub Secrets

สรุป GitHub Secrets เป็นวิธีการจัดเก็บข้อมูลที่สำคัญเป็นตัวแปรสภาพแวดล้อมของที่เก็บของคุณ เราจำเป็นต้องใช้เพราะ:

  1. เราจะต้องลงนามในใบสมัครของเรา
  2. เราจะอนุญาตให้ดำเนินการนี้เพื่อส่งแอปพลิเคชันที่สร้างขึ้นของเราไปยัง Google Play Store

มาดูกันว่าเราจะสร้าง GitHub Secrets ได้อย่างไร

  • ในหน้าหลักของที่เก็บของคุณ ให้คลิกที่ การตั้งค่า แท็บ
วิธีใช้ GitHub Actions เพื่อพัฒนาแอพ Android โดยอัตโนมัติ
  • ที่เมนูด้านซ้ายมือ จะมีตัวเลือก ความลับ
วิธีใช้ GitHub Actions เพื่อพัฒนาแอพ Android โดยอัตโนมัติ
  • ในการสร้างความลับ ให้กด ความลับที่เก็บใหม่ ปุ่ม
วิธีใช้ GitHub Actions เพื่อพัฒนาแอพ Android โดยอัตโนมัติ

เมื่อเราจัดการได้แล้ว มาดูสคริปต์สำหรับเผยแพร่แอปพลิเคชันกัน:

name: Android Publish

on:
  workflow_dispatch:

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v1

      - name: Set Up JDK
        uses: actions/setup-java@v1
        with:
          java-version: 1.8

      - name: Change wrapper permissions
        run: chmod +x ./gradlew

      - name: Run Tests
        run: ./gradlew test

      - name: Build Project
        run: ./gradlew build

      - name: Build Release AAB      // 1
        run: ./gradlew bundleRelease

      - name: Sign AAB               // 2
        uses: r0adkll/sign-android-release@v1
        with:
          releaseDirectory: app/build/outputs/bundle/release
          signingKeyBase64: ${{ secrets.SIGN_KEY }}
          alias: ${{ secrets.ALIAS }}
          keyStorePassword: ${{ secrets.STORE_KEY_PASSWORD }}
          keyPassword: ${{ secrets.KEY_PASSWORD }}

      - name: Deploy to Play Store   // 3
        uses: r0adkll/upload-google-play@v1
        with:
          serviceAccountJsonPlainText: ${{secrets.SERVICE_ACCOUNT}}
          packageName: com.tomerpacific.laundry
          releaseFiles: app/build/outputs/bundle/release/app-release.aab
          track: production

คุณอาจสังเกตเห็นว่าการดำเนินการนี้จะเรียกใช้ บน workflow_dispatch . นั่นหมายความว่าอย่างไร? โดยพื้นฐานแล้วจะอนุญาตให้ดำเนินการนี้ด้วยตนเองจาก GitHub เอง

คุณสามารถตัดสินใจได้ว่าคุณอยากจะเรียกใช้การดำเนินการนี้เมื่อเกิดการพุชที่สาขาหลัก (เช่น)

ขั้นตอนที่ทำเครื่องหมายด้วย 1 ในตัวอย่างด้านบนจะทริกเกอร์การสร้าง .aab ของแอปพลิเคชันของเรา เหมือนกับที่เราทำถ้าเรากำลังสร้างมันใน Android Studio เราต้องเซ็นชื่อไฟล์ .aab นี้

นี่เป็นครั้งแรกที่ GitHub Secrets เข้ามามีบทบาท เราจำเป็นต้องสร้างความลับสำหรับ:

  • กุญแจลงนาม (ความลับ SIGN_KEY)
  • นามแฝงหลัก (secrets.ALIAS)
  • รหัสผ่านกุญแจร้านค้า (secrets.STORE_KEY_PASSWORD)
  • รหัสผ่านที่สำคัญ (secrets.KEY_PASSWORD)

เมื่อเราลงนามในไฟล์ .aab แล้ว เราสามารถนำไปใช้กับ Google Play Store ได้ ในขั้นตอนนี้ ยังมีงานอีกเล็กน้อยที่ต้องทำ เนื่องจากเราต้องอนุญาตให้ GitHub Action นี้ได้รับอนุญาตให้ปรับใช้แอปพลิเคชันสำหรับเราบน Google Play แต่เดี๋ยวก่อนเราจะทำอย่างนั้นได้อย่างไร เราใช้บัญชีบริการ

วิธีสร้างบัญชีบริการ

บัญชีบริการคือเอนทิตีที่คุณสร้างขึ้นเพื่อแจ้งบริการหรือแอปพลิเคชันที่โต้ตอบกับบัญชีที่ทำงานในนามของคุณ

ในกรณีของเรา GitHub Action ของเรากำลังโต้ตอบกับ Google Play Store เพื่อให้สามารถอัปโหลดแอปพลิเคชันเวอร์ชันใหม่ของเราได้

หากต้องการสร้างบัญชีบริการ ให้ไปที่ Google Cloud Console หากคุณไม่มีบัญชีที่นั่น ให้สร้างบัญชีใหม่ จากนั้นในหน้าหลัก ในเมนูด้านซ้ายมือ จะมีรายการชื่อบัญชีบริการ

วิธีใช้ GitHub Actions เพื่อพัฒนาแอพ Android โดยอัตโนมัติ

เมื่อคุณคลิกแล้ว ทางด้านขวามือของหน้าต่าง คุณจะเห็นบัญชีบริการที่คุณมีอยู่แล้ว

เราต้องการสร้างใหม่ และในส่วนบนของหน้าต่างจะมีปุ่มสำหรับดำเนินการนั้น

วิธีใช้ GitHub Actions เพื่อพัฒนาแอพ Android โดยอัตโนมัติ

ในหน้าต่างที่เปิดขึ้น คุณจะต้องป้อนชื่อบริการและป้อนคำอธิบายได้ด้วย

วิธีใช้ GitHub Actions เพื่อพัฒนาแอพ Android โดยอัตโนมัติ

ชื่อที่ระบุที่นี่จะเป็นตัวระบุเฉพาะของบัญชีบริการนี้

ในขั้นตอนที่สอง คุณจะถูกขอให้มอบบทบาทบัญชีบริการนี้ จาก เลือกบทบาท ดรอปดาวน์ เลือก Basic → Editor

วิธีใช้ GitHub Actions เพื่อพัฒนาแอพ Android โดยอัตโนมัติ

สุดท้าย ในขั้นตอนที่ 3 ให้กรอกอีเมลของคุณทั้งสองที่ในส่วน "ให้สิทธิ์ผู้ใช้ในการเข้าถึงบัญชีบริการนี้":

วิธีใช้ GitHub Actions เพื่อพัฒนาแอพ Android โดยอัตโนมัติ

หลังจากกดปุ่มเสร็จสิ้น คุณจะต้องสร้างรหัสสำหรับบัญชีบริการนี้ การดำเนินการจะใช้คีย์นี้เพื่อระบุโดย Google Play

หากต้องการสร้างคีย์ ให้คลิกจุดแนวนอนสามจุดใต้ป้ายกำกับการดำเนินการในหน้าจอบัญชีบริการหลัก ในเมนูที่ปรากฏขึ้น ให้เลือกจัดการคีย์ .

วิธีใช้ GitHub Actions เพื่อพัฒนาแอพ Android โดยอัตโนมัติ

ในหน้าต่างนี้ เราจะสร้างคีย์โดยเลือก คีย์ใหม่ และเลือก "สร้างคีย์ใหม่" จากเมนูที่ปรากฏขึ้น

วิธีใช้ GitHub Actions เพื่อพัฒนาแอพ Android โดยอัตโนมัติ

ตอนนี้เรามีตัวเลือกในการเลือกรูปแบบของคีย์ใหม่ของเรา ค่าเริ่มต้นคือ JSON และเราจะปล่อยให้มันเลือกไว้ คลิกสร้าง

วิธีใช้ GitHub Actions เพื่อพัฒนาแอพ Android โดยอัตโนมัติ

เมื่อคุณทำเสร็จแล้ว ไฟล์จะถูกดาวน์โหลดไปยังคอมพิวเตอร์ของคุณ ตรวจสอบให้แน่ใจว่าได้เก็บไฟล์นี้ไว้ เนื่องจากมีข้อมูลทั้งหมดที่เกี่ยวข้องกับบัญชีบริการของคุณ และคุณจะไม่สามารถดาวน์โหลดได้อีก

เราจะนำเนื้อหาของไฟล์นี้แล้วสร้างความลับของ GitHub ด้วย (secrets.SERVICE_ACCOUNT )

สุดท้ายนี้ เราต้องแจ้งให้ Google Play ทราบเกี่ยวกับบัญชีบริการนี้ การทำเช่นนั้นกำหนดให้เราต้องลงชื่อเข้าใช้บัญชี Google Play Console และไปที่ ตั้งค่า →การเข้าถึง API .

หากคุณเลื่อนลงมาที่หน้า คุณจะเห็นส่วนชื่อบัญชีบริการ คุณควรจะเห็นบัญชีบริการที่คุณสร้างไว้ก่อนหน้านี้ คลิกลิงก์ให้สิทธิ์เข้าถึง

วิธีใช้ GitHub Actions เพื่อพัฒนาแอพ Android โดยอัตโนมัติ

ในการตั้งค่าที่เปิดขึ้น ตรงไปที่การอนุญาตของแอพ ที่นี่ คุณจะเลือกแอปพลิเคชันที่บัญชีบริการนี้โต้ตอบด้วย

ภายใต้การอนุญาตบัญชี ทุกอย่างภายใต้ รุ่น ควรตรวจสอบส่วน ฉันขอแนะนำอย่างยิ่งให้คุณดูการตั้งค่าอื่นๆ ทั้งหมดและตัดสินใจด้วยตัวเองว่าคุณต้องการทำเครื่องหมายอะไรไว้หรือต้องการทำเครื่องหมายอะไร

เมื่อเสร็จแล้ว ให้คลิก เชิญผู้ใช้ ปุ่มอยู่ที่มุมล่างขวา

วิธีใช้ GitHub Actions เพื่อพัฒนาแอพ Android โดยอัตโนมัติ

หลังจากส่งคำเชิญแล้ว เราสามารถดำเนินการเผยแพร่เพื่อจัดเก็บได้

วิธีตรวจสอบการดำเนินการของเราใน GitHub

หากต้องการดูการดำเนินการที่กำหนดไว้สำหรับที่เก็บของคุณ ให้คลิกที่แท็บ การดำเนินการ แท็บนี้แสดงเวิร์กโฟลว์ทั้งหมดที่กำหนดไว้และที่ทำงานแล้ว

วิธีใช้ GitHub Actions เพื่อพัฒนาแอพ Android โดยอัตโนมัติ

ทางด้านซ้ายมือ คุณจะเห็นการดำเนินการทั้งหมดที่กำหนดไว้ และทางด้านขวามือ คุณจะเห็นการดำเนินการทั้งหมดที่มีการเรียกใช้ หากต้องการดูการดำเนินการใดโดยเฉพาะ ให้คลิกที่การกระทำนั้น

วิธีใช้ GitHub Actions เพื่อพัฒนาแอพ Android โดยอัตโนมัติ

หากการดำเนินการถูกกำหนดให้ทำงานบน workflow_dispatch คุณจะเห็นปุ่มที่ให้คุณเรียกใช้ได้ (เช่นในภาพด้านบน)

หากคุณต้องการดูการรันเวิร์กโฟลว์เฉพาะ คุณสามารถทำได้จากหน้าเวิร์กโฟลว์หลักโดยคลิกที่การรันอันใดอันหนึ่ง หากการดำเนินการใดล้มเหลว ที่นี่จะเป็นที่สำหรับตรวจสอบและดูว่ามีอะไรผิดพลาด

การดำเนินการแรกของเราควรจะทริกเกอร์เมื่อมีการเปิดคำขอดึง หากทำงานอย่างถูกต้อง คุณควรเห็นสิ่งนี้:

วิธีใช้ GitHub Actions เพื่อพัฒนาแอพ Android โดยอัตโนมัติ

แล้วคุณล่ะ!

สรุปผล

อ่านมาถึงตอนนี้เป็นเวลานาน แต่เราได้ผ่านทุกสิ่งที่คุณต้องการเพื่อเริ่มต้นสร้างไปป์ไลน์การผสานรวมอย่างต่อเนื่องและการปรับใช้อย่างต่อเนื่องสำหรับแอปพลิเคชันของคุณ

หากคุณสนใจที่จะดูวิธีการตั้งค่า GitHub Actions คุณสามารถตรวจสอบได้ในหนึ่งในที่เก็บของฉันที่นี่:

การดำเนินการ · TomerPacific/LaundrySymbolsแอปพลิเคชันที่เขียนด้วยภาษา Kotlin แสดงสัญลักษณ์การซักรีดต่างๆ พร้อมคำอธิบาย :cyclone:​​- Actions · TomerPacific/LaundrySymbols วิธีใช้ GitHub Actions เพื่อพัฒนาแอพ Android โดยอัตโนมัติ TomerPacificGitHub วิธีใช้ GitHub Actions เพื่อพัฒนาแอพ Android โดยอัตโนมัติ

หากต้องการอ่านเพิ่มเติมเกี่ยวกับ GitHub Actions โปรดไปที่:

เอกสารประกอบการทำงานของ GitHub - GitHub Docs กำหนดอัตโนมัติ ปรับแต่ง และดำเนินการเวิร์กโฟลว์การพัฒนาซอฟต์แวร์ของคุณในที่เก็บของคุณด้วย GitHub Actions คุณสามารถค้นหา สร้าง และแบ่งปันการดำเนินการเพื่อทำงานใดๆ ที่คุณต้องการ รวมถึง CI/CD และรวมการดำเนินการต่างๆ ไว้ในเวิร์กโฟลว์ที่ปรับแต่งได้อย่างสมบูรณ์ วิธีใช้ GitHub Actions เพื่อพัฒนาแอพ Android โดยอัตโนมัติ เอกสาร GitHub วิธีใช้ GitHub Actions เพื่อพัฒนาแอพ Android โดยอัตโนมัติ