main.yml 20 KB

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