main.yml 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552
  1. name: Build Kernels
  2. permissions:
  3. contents: write
  4. actions: write
  5. on:
  6. workflow_dispatch:
  7. inputs:
  8. release_type:
  9. description: "Release Type"
  10. type: choice
  11. options: [ Actions, Pre-Release, Release ]
  12. default: Actions
  13. ksu_commit:
  14. description: "KSU Commit (optional)"
  15. type: string
  16. default: ""
  17. required: false
  18. kernel_build_version:
  19. description: "Kernel Version to Build"
  20. type: choice
  21. options:
  22. - all
  23. - a12-5-10
  24. - a13-5-10
  25. - a13-5-15
  26. - a14-5-15
  27. - a14-6-1
  28. - a15-6-6
  29. - a16-6-12
  30. - lts
  31. - custom
  32. - testing
  33. - bypass
  34. default: custom
  35. feature_set:
  36. description: "Feature Set"
  37. type: choice
  38. options:
  39. - WKSU+SUSFS+BBG
  40. - WKSU+BBG
  41. - WKSU
  42. - BBG
  43. - None
  44. default: WKSU+SUSFS+BBG
  45. push:
  46. branches:
  47. - main
  48. jobs:
  49. download-dependencies:
  50. uses: ./.github/workflows/dependencies.yml
  51. load-configs:
  52. runs-on: ubuntu-latest
  53. permissions:
  54. contents: read
  55. outputs:
  56. a12-5-10: ${{ steps.load.outputs.a12-5-10 }}
  57. a13-5-10: ${{ steps.load.outputs.a13-5-10 }}
  58. a13-5-15: ${{ steps.load.outputs.a13-5-15 }}
  59. a14-5-15: ${{ steps.load.outputs.a14-5-15 }}
  60. a14-6-1: ${{ steps.load.outputs.a14-6-1 }}
  61. a15-6-6: ${{ steps.load.outputs.a15-6-6 }}
  62. a16-6-12: ${{ steps.load.outputs.a16-6-12 }}
  63. lts: ${{ steps.load.outputs.lts }}
  64. custom: ${{ steps.load.outputs.custom }}
  65. testing: ${{ steps.load.outputs.testing }}
  66. bypass: ${{ steps.load.outputs.bypass }}
  67. steps:
  68. - uses: actions/checkout@v4
  69. - name: Load all matrix configs
  70. id: load
  71. run: |
  72. echo "a12-5-10=$(jq -c . .github/kernel-config/a12-5.10.json)" >> $GITHUB_OUTPUT
  73. echo "a13-5-10=$(jq -c . .github/kernel-config/a13-5.10.json)" >> $GITHUB_OUTPUT
  74. echo "a13-5-15=$(jq -c . .github/kernel-config/a13-5.15.json)" >> $GITHUB_OUTPUT
  75. echo "a14-5-15=$(jq -c . .github/kernel-config/a14-5.15.json)" >> $GITHUB_OUTPUT
  76. echo "a14-6-1=$(jq -c . .github/kernel-config/a14-6.1.json)" >> $GITHUB_OUTPUT
  77. echo "a15-6-6=$(jq -c . .github/kernel-config/a15-6.6.json)" >> $GITHUB_OUTPUT
  78. echo "a16-6-12=$(jq -c . .github/kernel-config/a16-6.12.json)" >> $GITHUB_OUTPUT
  79. echo "lts=$(jq -c . .github/kernel-config/lts.json)" >> $GITHUB_OUTPUT
  80. echo "custom=$(jq -c . .github/kernel-config/custom.json)" >> $GITHUB_OUTPUT
  81. echo "testing=$(jq -c . .github/kernel-config/testing.json)" >> $GITHUB_OUTPUT
  82. echo "bypass=$(jq -c . .github/kernel-config/bypass.json)" >> $GITHUB_OUTPUT
  83. build-a12-5-10:
  84. if: ${{ inputs.kernel_build_version == 'all' || inputs.kernel_build_version == 'a12-5-10' }}
  85. needs: [download-dependencies, load-configs]
  86. name: "Android 12 - 5.10"
  87. strategy:
  88. fail-fast: false
  89. matrix: ${{ fromJSON(needs.load-configs.outputs.a12-5-10) }}
  90. uses: ./.github/workflows/build.yml
  91. secrets: inherit
  92. with:
  93. kernel_version: ${{ matrix.kernel_version }}
  94. variant: ${{ matrix.variant }}
  95. ksu_commit: ${{ inputs.ksu_commit }}
  96. feature_set: ${{ inputs.feature_set }}
  97. build-a13-5-10:
  98. if: ${{ inputs.kernel_build_version == 'all' || inputs.kernel_build_version == 'a13-5-10' }}
  99. needs: [download-dependencies, load-configs]
  100. name: "Android 13 - 5.10"
  101. strategy:
  102. fail-fast: false
  103. matrix: ${{ fromJSON(needs.load-configs.outputs.a13-5-10) }}
  104. uses: ./.github/workflows/build.yml
  105. secrets: inherit
  106. with:
  107. kernel_version: ${{ matrix.kernel_version }}
  108. variant: ${{ matrix.variant }}
  109. ksu_commit: ${{ inputs.ksu_commit }}
  110. feature_set: ${{ inputs.feature_set }}
  111. build-a13-5-15:
  112. if: ${{ inputs.kernel_build_version == 'all' || inputs.kernel_build_version == 'a13-5-15' }}
  113. needs: [download-dependencies, load-configs]
  114. name: "Android 13 - 5.15"
  115. strategy:
  116. fail-fast: false
  117. matrix: ${{ fromJSON(needs.load-configs.outputs.a13-5-15) }}
  118. uses: ./.github/workflows/build.yml
  119. secrets: inherit
  120. with:
  121. kernel_version: ${{ matrix.kernel_version }}
  122. variant: ${{ matrix.variant }}
  123. ksu_commit: ${{ inputs.ksu_commit }}
  124. feature_set: ${{ inputs.feature_set }}
  125. build-a14-5-15:
  126. if: ${{ inputs.kernel_build_version == 'all' || inputs.kernel_build_version == 'a14-5-15' }}
  127. needs: [download-dependencies, load-configs]
  128. name: "Android 14 - 5.15"
  129. strategy:
  130. fail-fast: false
  131. matrix: ${{ fromJSON(needs.load-configs.outputs.a14-5-15) }}
  132. uses: ./.github/workflows/build.yml
  133. secrets: inherit
  134. with:
  135. kernel_version: ${{ matrix.kernel_version }}
  136. variant: ${{ matrix.variant }}
  137. ksu_commit: ${{ inputs.ksu_commit }}
  138. feature_set: ${{ inputs.feature_set }}
  139. build-a14-6-1:
  140. if: ${{ inputs.kernel_build_version == 'all' || inputs.kernel_build_version == 'a14-6-1' }}
  141. needs: [download-dependencies, load-configs]
  142. name: "Android 14 - 6.1"
  143. strategy:
  144. fail-fast: false
  145. matrix: ${{ fromJSON(needs.load-configs.outputs.a14-6-1) }}
  146. uses: ./.github/workflows/build.yml
  147. secrets: inherit
  148. with:
  149. kernel_version: ${{ matrix.kernel_version }}
  150. variant: ${{ matrix.variant }}
  151. ksu_commit: ${{ inputs.ksu_commit }}
  152. feature_set: ${{ inputs.feature_set }}
  153. build-a15-6-6:
  154. if: ${{ inputs.kernel_build_version == 'all' || inputs.kernel_build_version == 'a15-6-6' }}
  155. needs: [download-dependencies, load-configs]
  156. name: "Android 15 - 6.6"
  157. strategy:
  158. fail-fast: false
  159. matrix: ${{ fromJSON(needs.load-configs.outputs.a15-6-6) }}
  160. uses: ./.github/workflows/build.yml
  161. secrets: inherit
  162. with:
  163. kernel_version: ${{ matrix.kernel_version }}
  164. variant: ${{ matrix.variant }}
  165. ksu_commit: ${{ inputs.ksu_commit }}
  166. feature_set: ${{ inputs.feature_set }}
  167. build-a16-6-12:
  168. if: ${{ inputs.kernel_build_version == 'all' || inputs.kernel_build_version == 'a16-6-12' }}
  169. needs: [download-dependencies, load-configs]
  170. name: "Android 16 - 6.12"
  171. strategy:
  172. fail-fast: false
  173. matrix: ${{ fromJSON(needs.load-configs.outputs.a16-6-12) }}
  174. uses: ./.github/workflows/build.yml
  175. secrets: inherit
  176. with:
  177. kernel_version: ${{ matrix.kernel_version }}
  178. variant: ${{ matrix.variant }}
  179. ksu_commit: ${{ inputs.ksu_commit }}
  180. feature_set: ${{ inputs.feature_set }}
  181. build-lts:
  182. if: ${{ inputs.kernel_build_version == 'all' || inputs.kernel_build_version == 'lts' || github.event_name == 'push' }}
  183. needs: [download-dependencies, load-configs]
  184. name: "LTS Kernels"
  185. strategy:
  186. fail-fast: false
  187. matrix: ${{ fromJSON(needs.load-configs.outputs.lts) }}
  188. uses: ./.github/workflows/build.yml
  189. secrets: inherit
  190. with:
  191. kernel_version: ${{ matrix.kernel_version }}
  192. variant: ${{ matrix.variant || '' }}
  193. ksu_commit: ${{ inputs.ksu_commit || '' }}
  194. feature_set: ${{ inputs.feature_set || 'WKSU+SUSFS+BBG' }}
  195. build-custom:
  196. if: ${{ inputs.kernel_build_version == 'all' || inputs.kernel_build_version == 'custom' }}
  197. needs: [download-dependencies, load-configs]
  198. name: "Custom Kernels"
  199. strategy:
  200. fail-fast: false
  201. matrix: ${{ fromJSON(needs.load-configs.outputs.custom) }}
  202. uses: ./.github/workflows/build.yml
  203. secrets: inherit
  204. with:
  205. kernel_version: ${{ matrix.kernel_version }}
  206. variant: ${{ matrix.variant }}
  207. ksu_commit: ${{ inputs.ksu_commit }}
  208. feature_set: ${{ inputs.feature_set }}
  209. build-testing:
  210. if: ${{ inputs.kernel_build_version == 'all' || inputs.kernel_build_version == 'testing' || github.event_name == 'push' }}
  211. needs: [download-dependencies, load-configs]
  212. name: "Testing Kernels"
  213. strategy:
  214. fail-fast: false
  215. matrix: ${{ fromJSON(needs.load-configs.outputs.testing) }}
  216. uses: ./.github/workflows/build.yml
  217. secrets: inherit
  218. with:
  219. kernel_version: ${{ matrix.kernel_version }}
  220. variant: ${{ matrix.variant || '' }}
  221. ksu_commit: ${{ inputs.ksu_commit || '' }}
  222. feature_set: ${{ inputs.feature_set || 'WKSU+SUSFS+BBG' }}
  223. build-bypass:
  224. if: ${{ inputs.kernel_build_version == 'all' || inputs.kernel_build_version == 'bypass' }}
  225. needs: [download-dependencies, load-configs]
  226. name: "Bypass Kernels"
  227. strategy:
  228. fail-fast: false
  229. matrix: ${{ fromJSON(needs.load-configs.outputs.bypass) }}
  230. uses: ./.github/workflows/build.yml
  231. secrets: inherit
  232. with:
  233. kernel_version: ${{ matrix.kernel_version }}
  234. variant: ${{ matrix.variant || '' }}
  235. ksu_commit: ${{ inputs.ksu_commit || '' }}
  236. feature_set: ${{ inputs.feature_set }}
  237. rej:
  238. if: always()
  239. runs-on: ubuntu-latest
  240. permissions:
  241. actions: read
  242. contents: read
  243. needs:
  244. - build-a12-5-10
  245. - build-a13-5-10
  246. - build-a13-5-15
  247. - build-a14-5-15
  248. - build-a14-6-1
  249. - build-a15-6-6
  250. - build-a16-6-12
  251. - build-custom
  252. - build-lts
  253. - build-testing
  254. - build-bypass
  255. steps:
  256. - name: Download Misc Artifacts
  257. uses: actions/download-artifact@v5
  258. with:
  259. path: ./downloaded-artifacts
  260. pattern: '*-Rejects'
  261. - name: Process Reject Artifacts
  262. run: |
  263. mkdir -p aio-rejects
  264. # Iterate over Rejects artifacts in downloaded-artifacts
  265. for dir in ./downloaded-artifacts/*-Rejects; do
  266. # Ensure it is a directory
  267. [ -d "$dir" ] || continue
  268. dirname=$(basename "$dir")
  269. # Process each reject artifact
  270. # Get original name (remove -Rejects suffix)
  271. original_name=${dirname%-Rejects}
  272. mkdir -p "aio-rejects/$original_name"
  273. # Check for patch-rejects folder (legacy structure) or direct contents
  274. if [ -d "$dir/patch-rejects" ]; then
  275. # Legacy structure
  276. cp -r "$dir/patch-rejects/." "aio-rejects/$original_name/"
  277. else
  278. # Current structure
  279. cp -r "$dir/." "aio-rejects/$original_name/"
  280. fi
  281. done
  282. # Zip and upload if we found anything
  283. if [ "$(ls -A aio-rejects)" ]; then
  284. # Create a single zip of all rejects
  285. cd aio-rejects
  286. zip -r -q -9 ../AIO-REJ.zip .
  287. cd ..
  288. else
  289. echo "No rejects found to upload."
  290. fi
  291. - name: Upload AIO-REJ Artifact
  292. uses: actions/upload-artifact@v4
  293. with:
  294. name: AIO-REJ
  295. path: AIO-REJ.zip
  296. if-no-files-found: ignore
  297. release:
  298. runs-on: ubuntu-latest
  299. if: ${{ github.event_name == 'workflow_dispatch' && inputs.release_type != 'Actions' }}
  300. permissions:
  301. contents: write
  302. needs:
  303. - build-a12-5-10
  304. - build-a13-5-10
  305. - build-a13-5-15
  306. - build-a14-5-15
  307. - build-a14-6-1
  308. - build-a15-6-6
  309. - build-a16-6-12
  310. - build-lts
  311. - build-custom
  312. - build-testing
  313. - build-bypass
  314. env:
  315. GH_TOKEN: ${{ github.token }}
  316. RELEASE_NAME: "GKI Kernels With WKSU & SUSFS v2.0.0"
  317. RELEASE_BODY: ""
  318. outputs:
  319. new_tag: ${{ steps.tag.outputs.new_tag }}
  320. steps:
  321. - name: Validate Selected Builds
  322. run: |
  323. set -euo pipefail
  324. failed=0
  325. current_type="${{ inputs.kernel_build_version }}"
  326. check_selected() {
  327. local target="$1"
  328. local job_name="$2"
  329. local result="$3"
  330. if [[ "$current_type" == "all" || "$current_type" == "$target" ]]; then
  331. if [[ "$result" != "success" ]]; then
  332. echo "Required job $job_name did not succeed (result: $result)"
  333. failed=1
  334. fi
  335. fi
  336. }
  337. check_selected "a12-5-10" "build-a12-5-10" "${{ needs.build-a12-5-10.result }}"
  338. check_selected "a13-5-10" "build-a13-5-10" "${{ needs.build-a13-5-10.result }}"
  339. check_selected "a13-5-15" "build-a13-5-15" "${{ needs.build-a13-5-15.result }}"
  340. check_selected "a14-5-15" "build-a14-5-15" "${{ needs.build-a14-5-15.result }}"
  341. check_selected "a14-6-1" "build-a14-6-1" "${{ needs.build-a14-6-1.result }}"
  342. check_selected "a15-6-6" "build-a15-6-6" "${{ needs.build-a15-6-6.result }}"
  343. check_selected "a16-6-12" "build-a16-6-12" "${{ needs.build-a16-6-12.result }}"
  344. check_selected "custom" "build-custom" "${{ needs.build-custom.result }}"
  345. check_selected "lts" "build-lts" "${{ needs.build-lts.result }}"
  346. check_selected "testing" "build-testing" "${{ needs.build-testing.result }}"
  347. if [[ "$failed" -ne 0 ]]; then
  348. exit 1
  349. fi
  350. - name: Free Disk Space
  351. if: true
  352. uses: endersonmenezes/free-disk-space@v3 # Use @main for latest, @v3 for stable
  353. with:
  354. remove_android: true
  355. remove_dotnet: true
  356. remove_haskell: true
  357. remove_tool_cache: true
  358. remove_swap: true
  359. remove_packages: "azure-cli google-cloud-cli microsoft-edge-stable google-chrome-stable firefox postgresql* temurin-* *llvm* mysql* dotnet-sdk-*"
  360. remove_packages_one_command: true
  361. remove_folders: "/usr/share/swift /usr/share/miniconda /usr/share/az* /usr/local/lib/node_modules /usr/local/share/chromium /usr/local/share/powershell /usr/local/julia /usr/local/aws-cli /usr/local/aws-sam-cli /usr/share/gradle"
  362. rm_cmd: "rmz" # Use 'rmz' for faster deletion (default: 'rm')
  363. rmz_version: "3.1.1" # Required when rm_cmd is 'rmz'
  364. testing: false
  365. - name: Checkout code
  366. uses: actions/checkout@v4
  367. - name: Generate New Tag
  368. id: tag
  369. if: inputs.release_type != 'Actions'
  370. run: |
  371. LATEST_TAG=$(gh api repos/${{ github.repository }}/tags --jq '.[0].name' 2>/dev/null || echo "v0.0.0")
  372. if [[ -z "$LATEST_TAG" || "$LATEST_TAG" == "null" ]]; then
  373. LATEST_TAG="v0.0.0"
  374. fi
  375. if [[ "$LATEST_TAG" =~ ^(.*)-r([0-9]+)$ ]]; then
  376. VERSION="${BASH_REMATCH[1]}"
  377. REV="${BASH_REMATCH[2]}"
  378. NEW_REV=$((REV + 1))
  379. NEW_TAG="${VERSION}-r${NEW_REV}"
  380. else
  381. NEW_TAG="${LATEST_TAG}-r1"
  382. fi
  383. echo "Latest tag: $LATEST_TAG"
  384. echo "New tag: $NEW_TAG"
  385. echo "NEW_TAG=${NEW_TAG}" >> $GITHUB_ENV
  386. echo "new_tag=$NEW_TAG" >> $GITHUB_OUTPUT
  387. - name: Set release body
  388. run: |
  389. cat << 'EOF' > release_body.md
  390. !!THIS RELEASE IS A TESTING RELEASE!!
  391. **IMPORTANT DISCLAIMER**
  392. This software is provided for testing and educational purposes only. Use at your own risk.
  393. The developers are not responsible for any damage, data loss, or issues that may occur.
  394. Please ensure you have proper backups before installation.
  395. 🔹 Normal
  396. - Default kernel configuration
  397. - Standard kernel module loading behavior
  398. - Recommended for most users
  399. 🔹 Bypass
  400. - Includes module check bypass modifications
  401. - What are kernel modules? Kernel modules are pieces of code that can be loaded into the kernel at runtime to extend functionality (like device drivers, filesystem support, etc.). These are different from KernelSU/Magisk modules.
  402. - The Problem: Sometimes when installing a custom kernel, the device tries to load a kernel module that fails due to version mismatches, missing dependencies, or signature verification issues. This can cause boot failures or device instability.
  403. - The Solution: This version changes one line from false to true to force load the kernel module, bypassing the failure check that would normally prevent loading.
  404. ⚠️ **IMPORTANT: If you are using a Bypass kernel, please create a GitHub issue!**
  405. We are now building Bypass kernels on-demand to reduce build time and clutter. If you need a Bypass kernel for your device, please:
  406. 1. Create a GitHub issue using the "Bypass Kernel Report" template
  407. 2. Include: kernel version, device model, Android version, and any issues/observations
  408. 3. Message me on Telegram after creating the issue
  409. I will prioritize and release a new Bypass build ASAP based on your feedback. This helps us understand which devices need Bypass kernels and build only what's needed!
  410. Features:
  411. -> Wild KSU Manager Support
  412. -> SUSFS ඞ v2.0.0
  413. -> SUSFS Inline Hooks
  414. -> Ptrace Patch Support for Older Kernels (<5.16) (Disabled for testing)
  415. -> IPSet Support for Advanced Network Filtering (Disabled for testing, please msg me if you need it)
  416. -> Wireguard Support
  417. -> BBR v1 Support (Disabled for testing, please msg me if you need it)
  418. -> BBG: https://github.com/vc-teahouse/Baseband-guard (Disabled for testing, will be enabled in the future)
  419. 🔹 BBG (Baseband-guard)
  420. - A lightweight LSM (Linux Security Module) for Android kernel
  421. - Blocks unauthorized writes to critical partitions/device nodes
  422. - Prevents malicious tampering with baseband and boot chain
  423. - Kernel-level protection via LSM hooks
  424. - Reduces risk of soft-brick/hard-brick issues
  425. Kernel Flasher:
  426. -> https://github.com/fatalcoder524/KernelFlasher/
  427. Manager:
  428. -> Wild KSU Manager: https://github.com/WildKernels/Wild_KSU
  429. Module:
  430. -> https://github.com/sidex15/ksu_module_susfs
  431. !!THIS RELEASE IS A TESTING RELEASE!!
  432. EOF
  433. - name: Create GitHub Release
  434. run: |
  435. PRERELEASE_FLAG=""
  436. if [ "${{ inputs.release_type }}" == "Pre-Release" ]; then
  437. PRERELEASE_FLAG="--prerelease"
  438. fi
  439. # Create GitHub release
  440. gh release create "$NEW_TAG" \
  441. --title "$RELEASE_NAME" \
  442. --notes-file release_body.md \
  443. --target "${{ github.sha }}" \
  444. $PRERELEASE_FLAG
  445. - name: Download Artifacts
  446. uses: actions/download-artifact@v5
  447. with:
  448. path: ./downloaded-artifacts
  449. pattern: '*-AnyKernel3'
  450. - name: Upload Release Assets
  451. run: |+
  452. shopt -s nullglob
  453. mapfile -t anykernel_dirs < <(find ./downloaded-artifacts -maxdepth 2 -type d -name '*-AnyKernel3' -print)
  454. for dir in "${anykernel_dirs[@]}"; do
  455. artifact_name=$(basename "$dir")
  456. # Create zip for each artifact
  457. (cd "$dir" && zip -r -q -9 "$GITHUB_WORKSPACE/${artifact_name}.zip" ./*) &
  458. done
  459. wait
  460. for dir in "${anykernel_dirs[@]}"; do
  461. artifact_name=$(basename "$dir")
  462. # Upload release asset
  463. gh release upload "$NEW_TAG" "$GITHUB_WORKSPACE/${artifact_name}.zip" --clobber
  464. done
  465. notify:
  466. runs-on: ubuntu-latest
  467. needs: release
  468. if: ${{ always() && (inputs.release_type == 'Actions' || needs.release.result == 'success') }}
  469. permissions:
  470. contents: read
  471. actions: read
  472. steps:
  473. - name: Free Disk Space
  474. uses: endersonmenezes/free-disk-space@v3
  475. with:
  476. remove_android: true
  477. remove_dotnet: true
  478. remove_haskell: true
  479. remove_tool_cache: true
  480. remove_swap: true
  481. remove_packages: "azure-cli google-cloud-cli microsoft-edge-stable google-chrome-stable firefox postgresql* temurin-* *llvm* mysql* dotnet-sdk-*"
  482. remove_packages_one_command: true
  483. remove_folders: "/usr/share/swift /usr/share/miniconda /usr/share/az* /usr/local/lib/node_modules /usr/local/share/chromium /usr/local/share/powershell /usr/local/julia /usr/local/aws-cli /usr/local/aws-sam-cli /usr/share/gradle"
  484. rm_cmd: "rmz"
  485. rmz_version: "3.1.1"
  486. testing: false
  487. - name: Send Telegram Notification
  488. uses: ./.github/actions/telegram-notify
  489. with:
  490. release_type: ${{ inputs.release_type }}
  491. new_tag: ${{ needs.release.outputs.new_tag }}
  492. release_result: ${{ needs.release.result }}
  493. telegram_bot_token: ${{ secrets.TELEGRAM_BOT_TOKEN }}
  494. telegram_chat_id: ${{ secrets.TELEGRAM_CHAT_ID }}
  495. telegram_topic_id: ${{ secrets.TELEGRAM_TOPIC_ID_GKI }}
  496. telegram_user_id: ${{ secrets.TELEGRAM_USER_ID }}