action.yml 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. name: Setup Wild KSU
  2. description: Download and configure Wild KSU with version tracking
  3. inputs:
  4. ksu_commit:
  5. description: "KernelSU-Next ref/commit (optional, defaults to dev)"
  6. required: false
  7. default: ""
  8. runs:
  9. using: composite
  10. steps:
  11. - name: Download Wild KSU
  12. shell: bash
  13. working-directory: ${{ github.workspace }}/kernel
  14. run: |
  15. set -euo pipefail
  16. TARGET_REF="${{ inputs.ksu_commit }}"
  17. if [ -z "$TARGET_REF" ]; then TARGET_REF="dev"; fi
  18. curl -LSs "https://raw.githubusercontent.com/KernelSU-Next/KernelSU-Next/dev/kernel/setup.sh" | bash -s dev
  19. if [ "$TARGET_REF" != "dev" ]; then
  20. cd KernelSU-Next
  21. if git rev-parse --is-shallow-repository >/dev/null 2>&1 && git rev-parse --is-shallow-repository | grep -q true; then
  22. git fetch --unshallow --tags --prune || true
  23. fi
  24. git fetch --all --tags --prune
  25. if git checkout "$TARGET_REF" 2>/dev/null; then
  26. :
  27. elif git checkout "origin/$TARGET_REF" 2>/dev/null; then
  28. :
  29. elif git checkout "refs/tags/$TARGET_REF" 2>/dev/null; then
  30. :
  31. else
  32. echo "Error: could not checkout KernelSU-Next ref/commit/tag: $TARGET_REF"
  33. exit 1
  34. fi
  35. cd "$GITHUB_WORKSPACE/kernel"
  36. fi
  37. cd KernelSU-Next/kernel
  38. COMMITS_COUNT=$(/usr/bin/git rev-list --count HEAD)
  39. BASE_VERSION=30000
  40. KSU_VERSION=$(expr $COMMITS_COUNT "+" $BASE_VERSION)
  41. sed -i "s/^KSU_VERSION_FALLBACK := 1$/KSU_VERSION_FALLBACK := ${KSU_VERSION}/" Kbuild
  42. KSU_GIT_TAG="$(git describe --tags --abbrev=0 2>/dev/null || echo "v0.0.1")"
  43. sed -i "s/^KSU_VERSION_TAG_FALLBACK := v0.0.1$/KSU_VERSION_TAG_FALLBACK := ${KSU_GIT_TAG}/" Kbuild
  44. - name: Enable KernelSU Config
  45. shell: bash
  46. working-directory: ${{ github.workspace }}/kernel
  47. run: |
  48. cat >> "${{ github.workspace }}/wild_gki.fragment" << 'EOF'
  49. # KernelSU Configuration
  50. CONFIG_KSU=y
  51. EOF
  52. - name: Extract KSU Version Info
  53. id: ksu-version
  54. shell: bash
  55. working-directory: ${{ github.workspace }}/kernel/KernelSU-Next
  56. run: |
  57. # Extract and export KSU version info
  58. KSU_GIT_VERSION=$(git rev-list --count HEAD 2>/dev/null)
  59. KSU_GIT_TAG=$(git describe --tags --abbrev=0 2>/dev/null)
  60. KSU_COMMIT=$(git rev-parse --short HEAD 2>/dev/null)
  61. KSU_VERSION=$((30000 + KSU_GIT_VERSION))
  62. echo "KSU_GIT_TAG=$KSU_GIT_TAG" >> $GITHUB_ENV
  63. echo "KSU_VERSION=$KSU_VERSION" >> $GITHUB_ENV
  64. echo "KSU_COMMIT=$KSU_COMMIT" >> $GITHUB_ENV