action.yml 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. name: 'Download Kernel Repository'
  2. description: 'Initialize and sync Android kernel source repository'
  3. inputs:
  4. android_version:
  5. description: 'Android version (e.g., android14)'
  6. required: true
  7. kernel_version:
  8. description: 'Kernel version (e.g., 5.15, 6.1)'
  9. required: true
  10. sub_level:
  11. description: 'Kernel sublevel'
  12. required: true
  13. os_patch_level:
  14. description: 'OS patch level (e.g., 2024-01)'
  15. required: true
  16. kernel_root:
  17. description: 'Path to kernel root directory'
  18. required: true
  19. outputs:
  20. kernel_root:
  21. description: 'Path to the synced kernel root'
  22. value: ${{ steps.setup.outputs.kernel_root }}
  23. deprecated_branch:
  24. description: 'Whether the branch is deprecated'
  25. value: ${{ steps.sync.outputs.deprecated }}
  26. runs:
  27. using: composite
  28. steps:
  29. - name: Setup Kernel Root Directory
  30. id: setup
  31. shell: bash
  32. run: |
  33. KERNEL_ROOT="${{ inputs.kernel_root }}"
  34. mkdir -p "$KERNEL_ROOT"
  35. echo "kernel_root=$KERNEL_ROOT" >> $GITHUB_OUTPUT
  36. echo "✓ Created kernel root directory: $KERNEL_ROOT"
  37. - name: Initialize and Sync Kernel Repository
  38. id: sync
  39. shell: bash
  40. working-directory: ${{ inputs.kernel_root }}
  41. run: |
  42. FORMATTED_BRANCH="${{ inputs.android_version }}-${{ inputs.kernel_version }}-${{ inputs.os_patch_level }}"
  43. echo "========================================"
  44. echo " Initializing Kernel Repository"
  45. echo "========================================"
  46. echo "Branch: common-${FORMATTED_BRANCH}"
  47. echo "========================================"
  48. repo init -u https://android.googlesource.com/kernel/manifest -b common-${FORMATTED_BRANCH} --depth=1
  49. # Check if branch is deprecated
  50. REMOTE_BRANCH=$(git ls-remote https://android.googlesource.com/kernel/common ${FORMATTED_BRANCH})
  51. DEFAULT_MANIFEST_PATH=.repo/manifests/default.xml
  52. DEPRECATED=false
  53. if grep -q deprecated <<< $REMOTE_BRANCH; then
  54. sed -i "s/\"${FORMATTED_BRANCH}\"/\"deprecated\/${FORMATTED_BRANCH}\"/g" $DEFAULT_MANIFEST_PATH
  55. echo "⚠ Note: Branch ${FORMATTED_BRANCH} is considered deprecated."
  56. DEPRECATED=true
  57. fi
  58. echo "deprecated=$DEPRECATED" >> $GITHUB_OUTPUT
  59. echo "========================================"
  60. echo " Syncing Kernel Source"
  61. echo "========================================"
  62. repo --trace sync -c -j$(nproc --all) --fail-fast --no-tags --force-sync --no-clone-bundle
  63. echo "========================================"
  64. echo " ✓ Kernel Source Synced Successfully"
  65. echo "========================================"