main.yml 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661
  1. name: CI
  2. on: [push, pull_request]
  3. jobs:
  4. build-linux-ubuntu-x64-clang:
  5. if: github.ref_type != 'tag'
  6. runs-on: ubuntu-24.04
  7. steps:
  8. - name: Checkout
  9. uses: actions/checkout@v4
  10. with:
  11. fetch-depth: 10
  12. - name: Adjust snapshot build number
  13. uses: ./.github/actions/adjust-snapshot-buildno
  14. - name: Prepare
  15. run: |
  16. sudo apt-get install libtool-bin libtomcrypt1 libtomcrypt-dev libtommath1 libtommath-dev libicu-dev zlib1g-dev cmake
  17. - name: Build
  18. run: |
  19. CC=clang CXX=clang++ ./autogen.sh --enable-binreloc --prefix=/opt/firebird
  20. make -j4
  21. make tests -j4
  22. make run_tests
  23. make dist
  24. tar xzvf gen/Firebird-*-linux-x64.tar.gz
  25. (cd Firebird-*-linux-x64; sudo ./install.sh -silent)
  26. - name: Upload installer
  27. uses: actions/upload-artifact@v4
  28. with:
  29. name: firebird-ubuntu-20.04-clang-x64
  30. path: gen/Firebird-*-linux-x64.tar.gz
  31. build-linux-docker:
  32. name: build-linux-docker-${{ matrix.arch }}
  33. runs-on: ubuntu-24.04
  34. env:
  35. FB_DOCKER_PATH: ${{ (startsWith(matrix.arch, 'arm') && 'arm32-arm64') || 'x86-x64' }}
  36. strategy:
  37. fail-fast: false
  38. matrix:
  39. arch:
  40. - x86
  41. - x64
  42. - arm32
  43. - arm64
  44. steps:
  45. - name: Checkout
  46. uses: actions/checkout@v4
  47. with:
  48. fetch-depth: 10
  49. - name: Adjust snapshot build number
  50. uses: ./.github/actions/adjust-snapshot-buildno
  51. - name: Get Release Notes
  52. uses: ./.github/actions/get-release-notes
  53. - name: Set up QEMU
  54. uses: docker/setup-qemu-action@v3
  55. if: ${{ startsWith(matrix.arch, 'arm') }}
  56. - name: Build
  57. run: |
  58. cd builds/docker/linux/$FB_DOCKER_PATH
  59. ./run-${{ matrix.arch }}.sh
  60. - name: Upload installer
  61. uses: actions/upload-artifact@v4
  62. with:
  63. name: firebird-linux-${{ matrix.arch }}
  64. path: gen/Firebird-*-linux-${{ matrix.arch }}.tar.gz
  65. - name: Upload debug symbols
  66. uses: actions/upload-artifact@v4
  67. with:
  68. name: firebird-linux-${{ matrix.arch }}-debugSymbols
  69. path: gen/Firebird-*-linux-${{ matrix.arch }}-debugSymbols.tar.gz
  70. - name: Create release
  71. uses: ./.github/actions/create-release
  72. with:
  73. token: ${{ secrets.SNAPSHOT_RELEASE_TOKEN }}
  74. deletePatterns: Firebird-*-linux-${{ matrix.arch }}*.tar.gz
  75. uploadFiles: gen/Firebird-*-linux-${{ matrix.arch }}*.tar.gz
  76. build-src-bundle-docker:
  77. name: build-src-bundle-docker
  78. runs-on: ubuntu-24.04
  79. steps:
  80. - name: Checkout
  81. uses: actions/checkout@v4
  82. with:
  83. fetch-depth: 10
  84. - name: Adjust snapshot build number
  85. uses: ./.github/actions/adjust-snapshot-buildno
  86. - name: Get Release Notes
  87. uses: ./.github/actions/get-release-notes
  88. - name: Build
  89. run: |
  90. cd builds/docker/linux/x86-x64
  91. ./run-src-bundle.sh
  92. - name: Create release
  93. uses: ./.github/actions/create-release
  94. with:
  95. token: ${{ secrets.SNAPSHOT_RELEASE_TOKEN }}
  96. deletePatterns: Firebird-*-source.tar.xz
  97. uploadFiles: gen/Firebird-*-source.tar.xz
  98. build-alpine-x64:
  99. if: github.ref_type != 'tag'
  100. runs-on: ubuntu-24.04
  101. container: alpine:3.22.1
  102. steps:
  103. - name: Checkout
  104. uses: actions/checkout@v4
  105. with:
  106. fetch-depth: 10
  107. - name: Prepare
  108. run: apk update && apk --no-cache --update add build-base libtool git autoconf automake cmake zlib-dev icu-dev ncurses-dev libedit-dev linux-headers tar sed
  109. - name: Adjust snapshot build number
  110. uses: ./.github/actions/adjust-snapshot-buildno
  111. - name: Build
  112. run: |
  113. ./autogen.sh --enable-binreloc-threads --with-builtin-tommath --with-builtin-tomcrypt --prefix=/opt/firebird
  114. make -j4
  115. make tests -j4
  116. make run_tests
  117. make dist
  118. tar xzvf gen/Firebird-*-linux-x64.tar.gz
  119. - name: Upload installer
  120. uses: actions/upload-artifact@v4
  121. with:
  122. name: firebird-alpine-x64
  123. path: gen/Firebird-*-linux-x64.tar.gz
  124. build-windows:
  125. if: github.ref_type != 'tag'
  126. runs-on: ${{ matrix.os }}
  127. env:
  128. VS_VERSION: 2022
  129. strategy:
  130. fail-fast: false
  131. matrix:
  132. os:
  133. - windows-2025
  134. platform: [x64, x86]
  135. steps:
  136. - name: Checkout
  137. uses: actions/checkout@v4
  138. with:
  139. fetch-depth: 10
  140. - name: Adjust snapshot build number
  141. uses: ./.github/actions/adjust-snapshot-buildno
  142. - name: Prepare
  143. shell: cmd
  144. run: |
  145. for /r %%i in (*.bat) do unix2dos "%%i"
  146. choco install --no-progress --yes innosetup --version=6.4.0 --allow-downgrade
  147. - name: Build
  148. shell: cmd
  149. env:
  150. PLATFORM: ${{ matrix.platform }}
  151. VS_SCRIPT: C:\Program Files\Microsoft Visual Studio\%VS_VERSION%\Enterprise\Common7\Tools\VsDevCmd.bat
  152. run: |
  153. set SEVENZIP=C:\Program Files\7-Zip
  154. set INNO6_SETUP_PATH=C:\Program Files (x86)\Inno Setup 6
  155. if "%PLATFORM%" == "x64" set FB_VS_ARCH=amd64
  156. if "%PLATFORM%" == "x64" set FB_PROCESSOR_ARCHITECTURE=AMD64
  157. if "%PLATFORM%" == "x86" set FB_VS_ARCH=x86
  158. if "%PLATFORM%" == "x86" set FB_PROCESSOR_ARCHITECTURE=x86
  159. call "%VS_SCRIPT%" -arch=%FB_VS_ARCH%
  160. cd builds\win32
  161. call run_all.bat
  162. call run_tests.bat
  163. - name: Upload zip
  164. uses: actions/upload-artifact@v4
  165. with:
  166. name: firebird-windows-vs-${{ env.VS_VERSION }}-${{ matrix.platform }}-zip
  167. path: builds/install_images/Firebird-*-windows-${{ matrix.platform }}.zip
  168. - name: Upload installer
  169. uses: actions/upload-artifact@v4
  170. with:
  171. name: firebird-windows-vs-${{ env.VS_VERSION }}-${{ matrix.platform }}-installer
  172. path: builds/install_images/*-windows-${{ matrix.platform }}.exe
  173. # Windows ARM container is not yet available, so official build is done directly in Windows 11 runner
  174. build-windows-arm64:
  175. #if: github.ref_type != 'tag'
  176. runs-on: windows-11-arm
  177. env:
  178. VS_VERSION: 2022
  179. steps:
  180. - name: Checkout
  181. uses: actions/checkout@v4
  182. with:
  183. fetch-depth: 10
  184. - name: Adjust snapshot build number
  185. uses: ./.github/actions/adjust-snapshot-buildno
  186. - name: Prepare
  187. shell: cmd
  188. run: |
  189. for /r %%i in (*.bat) do unix2dos "%%i"
  190. choco install --no-progress --yes innosetup --version=6.4.0 --allow-downgrade
  191. - name: Build
  192. shell: cmd
  193. env:
  194. VS_SCRIPT: C:\Program Files\Microsoft Visual Studio\%VS_VERSION%\Enterprise\Common7\Tools\VsDevCmd.bat
  195. run: |
  196. set SEVENZIP=C:\Program Files\7-Zip
  197. set INNO6_SETUP_PATH=C:\Program Files (x86)\Inno Setup 6
  198. set FB_VS_ARCH=arm64
  199. set FB_PROCESSOR_ARCHITECTURE=ARM64
  200. call "%VS_SCRIPT%" -arch=%FB_VS_ARCH%
  201. cd builds\win32
  202. call run_all.bat PDB
  203. call run_tests.bat
  204. - name: Upload zip
  205. uses: actions/upload-artifact@v4
  206. with:
  207. name: firebird-windows-arm64-zip
  208. path: builds/install_images/Firebird-*-windows-arm64.zip
  209. - name: Upload zip (withDebugSymbols)
  210. uses: actions/upload-artifact@v4
  211. with:
  212. name: firebird-windows-arm64-withDebugSymbols-zip
  213. path: builds/install_images/Firebird-*-windows-arm64-withDebugSymbols.zip
  214. - name: Upload installer
  215. uses: actions/upload-artifact@v4
  216. with:
  217. name: firebird-windows-arm64-installer
  218. path: builds/install_images/*-windows-arm64.exe
  219. - name: Upload installer (withDebugSymbols)
  220. uses: actions/upload-artifact@v4
  221. with:
  222. name: firebird-windows-arm64-withDebugSymbols-installer
  223. path: builds/install_images/*-windows-arm64-withDebugSymbols.exe
  224. - name: Create release
  225. uses: ./.github/actions/create-release
  226. with:
  227. token: ${{ secrets.SNAPSHOT_RELEASE_TOKEN }}
  228. deletePatterns: |
  229. Firebird-*-windows-arm64*.exe
  230. Firebird-*-windows-arm64*.zip
  231. uploadFiles: |
  232. builds/install_images/Firebird-*-windows-arm64*.exe
  233. builds/install_images/Firebird-*-windows-arm64*.zip
  234. build-windows-docker:
  235. runs-on: windows-2022
  236. strategy:
  237. fail-fast: false
  238. matrix:
  239. platform: [x64, x86]
  240. steps:
  241. - name: Checkout
  242. uses: actions/checkout@v4
  243. with:
  244. fetch-depth: 10
  245. - name: Adjust snapshot build number
  246. uses: ./.github/actions/adjust-snapshot-buildno
  247. - name: Get Release Notes
  248. uses: ./.github/actions/get-release-notes
  249. - name: Build x86 for client package in x64
  250. id: build-x86
  251. shell: cmd
  252. if: ${{ matrix.platform == 'x64' }}
  253. run: |
  254. mkdir builds\install_images
  255. cd builds\docker\windows
  256. call build.bat
  257. call run.bat C:\fbscripts\build-x86.bat
  258. - name: Build
  259. id: build
  260. shell: cmd
  261. env:
  262. PLATFORM: ${{ matrix.platform }}
  263. run: |
  264. mkdir builds\install_images
  265. cd builds\docker\windows
  266. call build.bat
  267. call run.bat C:\fbscripts\build-%PLATFORM%.bat
  268. - name: Upload zip
  269. uses: actions/upload-artifact@v4
  270. with:
  271. name: firebird-windows-${{ matrix.platform }}-zip
  272. path: builds/install_images/Firebird-*-windows-${{ matrix.platform }}.zip
  273. - name: Upload zip (withDebugSymbols)
  274. uses: actions/upload-artifact@v4
  275. with:
  276. name: firebird-windows-${{ matrix.platform }}-withDebugSymbols-zip
  277. path: builds/install_images/Firebird-*-windows-${{ matrix.platform }}-withDebugSymbols.zip
  278. - name: Upload installer
  279. uses: actions/upload-artifact@v4
  280. with:
  281. name: firebird-windows-${{ matrix.platform }}-installer
  282. path: builds/install_images/*-windows-${{ matrix.platform }}.exe
  283. - name: Upload installer (withDebugSymbols)
  284. uses: actions/upload-artifact@v4
  285. with:
  286. name: firebird-windows-${{ matrix.platform }}-withDebugSymbols-installer
  287. path: builds/install_images/*-windows-${{ matrix.platform }}-withDebugSymbols.exe
  288. - name: Create release
  289. uses: ./.github/actions/create-release
  290. with:
  291. token: ${{ secrets.SNAPSHOT_RELEASE_TOKEN }}
  292. deletePatterns: |
  293. Firebird-*-windows-${{ matrix.platform }}*.exe
  294. Firebird-*-windows-${{ matrix.platform }}*.zip
  295. uploadFiles: |
  296. builds/install_images/Firebird-*-windows-${{ matrix.platform }}*.exe
  297. builds/install_images/Firebird-*-windows-${{ matrix.platform }}*.zip
  298. build-macos:
  299. name: build-macos-${{ matrix.arch }}
  300. runs-on: ${{ (matrix.arch == 'arm64' && 'macos-15') || 'macos-15-intel' }}
  301. strategy:
  302. fail-fast: false
  303. matrix:
  304. arch:
  305. - x64
  306. - arm64
  307. steps:
  308. - name: Checkout
  309. uses: actions/checkout@v4
  310. with:
  311. fetch-depth: 10
  312. submodules: 'true'
  313. - name: Adjust snapshot build number
  314. uses: ./.github/actions/adjust-snapshot-buildno
  315. - name: Prepare - Install tools
  316. run: |
  317. brew install --quiet automake autoconf-archive libtool ninja
  318. - name: Restore vcpkg cache
  319. uses: actions/cache/restore@v4
  320. id: restore-vcpkg-cache
  321. with:
  322. path: ~/.cache/vcpkg/archives
  323. key: vcpkg-cache-${{ runner.os }}-${{ matrix.arch }}-${{ hashFiles('vcpkg-custom/**', 'vcpkg.json', 'vcpkg-configuration.json') }}
  324. restore-keys: |
  325. vcpkg-cache-${{ runner.os }}-${{ matrix.arch }}-
  326. - name: Build
  327. run: |
  328. export LIBTOOLIZE=glibtoolize
  329. export LIBTOOL=glibtool
  330. ./autogen.sh --with-builtin-tommath --with-builtin-tomcrypt
  331. make -j4
  332. make tests -j4
  333. make run_tests
  334. make -C gen -B -f make.platform.postfix
  335. make -C gen -B -f Makefile.install
  336. # Rename directory to make sure the build is relocatable.
  337. mv gen gen2
  338. sudo installer -pkg gen2/Release/*.pkg -verbose -target /
  339. export FIREBIRD_LOCK=`pwd`/temp
  340. echo "create database 't.fdb'; select '1' from rdb\$database; select _win1252 '2' from rdb\$database; select _utf8 '3' collate unicode from rdb\$database;" | /Library/Frameworks/Firebird.framework/Resources/bin/isql
  341. echo "create database 'localhost:/tmp/t.fdb' user sysdba password 'masterkey'; select '11' from rdb\$database; select _win1252 '22' from rdb\$database; select _utf8 '33' collate unicode from rdb\$database;" | /Library/Frameworks/Firebird.framework/Resources/bin/isql
  342. mv gen2 gen
  343. mkdir gen/artifacts
  344. mv gen/Release/*.pkg gen/artifacts
  345. - name: Save vcpkg cache
  346. uses: actions/cache/save@v4
  347. # Saves if the key changed (hashes on vcpkg/**, vcpkg.json, vcpkg-configuration.json)
  348. if: steps.restore-vcpkg-cache.outputs.cache-hit != 'true'
  349. with:
  350. path: ~/.cache/vcpkg/archives
  351. key: ${{ steps.restore-vcpkg-cache.outputs.cache-primary-key }}
  352. - name: Upload installer
  353. uses: actions/upload-artifact@v4
  354. with:
  355. name: firebird-macos-${{ matrix.arch }}
  356. path: gen/artifacts
  357. - name: Create release
  358. uses: ./.github/actions/create-release
  359. with:
  360. token: ${{ secrets.SNAPSHOT_RELEASE_TOKEN }}
  361. deletePatterns: Firebird-*-macos-${{ matrix.arch }}*.pkg
  362. uploadFiles: gen/artifacts/Firebird-*-macos-${{ matrix.arch }}*.pkg
  363. build-android-initial:
  364. name: build-android-${{ matrix.arch }}-initial
  365. runs-on: ubuntu-24.04
  366. env:
  367. NDK: /home/runner/Android/Ndk
  368. ARCH: ${{ matrix.arch }}
  369. FB_PREFIX: ${{ (matrix.arch == 'arm32' && 'arme') || (matrix.arch == 'x64' && 'x86_64') || matrix.arch }}
  370. strategy:
  371. fail-fast: false
  372. matrix:
  373. arch:
  374. - arm32
  375. - arm64
  376. - x86
  377. - x64
  378. steps:
  379. - name: Checkout
  380. uses: actions/checkout@v4
  381. with:
  382. fetch-depth: 10
  383. - name: Adjust snapshot build number
  384. uses: ./.github/actions/adjust-snapshot-buildno
  385. - name: Prepare - install Linux tools
  386. run: |
  387. sudo apt-get install libtool-bin libtomcrypt1 libtomcrypt-dev libtommath1 libtommath-dev libicu-dev zlib1g-dev
  388. - name: Prepare - Download and install Android NDK
  389. run: |
  390. mkdir downloads
  391. pushd downloads
  392. curl -OL https://dl.google.com/android/repository/android-ndk-r28c-linux.zip
  393. mkdir -p $NDK
  394. unzip android-ndk-r28c-linux.zip -d $NDK && f=("$NDK"/*) && mv "$NDK"/*/* "$NDK" && rmdir "${f[@]}"
  395. - name: Build
  396. run: |
  397. ./autogen.sh --prefix=/opt/firebird --enable-binreloc --with-cross-build=android.$FB_PREFIX --without-editline
  398. make -j4
  399. make CROSS_OUT=Y tests -j4
  400. builds/install/arch-specific/android/BuildPackage.sh $ARCH
  401. - name: Upload initial build
  402. uses: actions/upload-artifact@v4
  403. with:
  404. name: firebird-android-initial-${{ matrix.arch }}
  405. path: |
  406. gen/Firebird-*-android-initial-${{ matrix.arch }}*.tar.gz
  407. gen/Make.Version
  408. build-android-final:
  409. name: build-android-${{ matrix.arch }}-final
  410. needs: build-android-initial
  411. runs-on: ubuntu-latest
  412. env:
  413. ARCH: ${{ matrix.arch }}
  414. strategy:
  415. fail-fast: false
  416. matrix:
  417. arch:
  418. - arm32
  419. - arm64
  420. - x86
  421. - x64
  422. steps:
  423. - name: Checkout
  424. uses: actions/checkout@v4
  425. with:
  426. fetch-depth: 10
  427. - name: Adjust snapshot build number
  428. uses: ./.github/actions/adjust-snapshot-buildno
  429. - name: Enable KVM
  430. run: |
  431. echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
  432. sudo udevadm control --reload-rules
  433. sudo udevadm trigger --name-match=kvm
  434. - name: Download initial build
  435. uses: actions/download-artifact@v4
  436. with:
  437. name: firebird-android-initial-${{ matrix.arch }}
  438. path: gen
  439. - name: Cache - AVD
  440. uses: actions/cache@v4
  441. id: avd-cache
  442. with:
  443. path: |
  444. ~/.android/avd/*
  445. ~/.android/adb*
  446. key: avd-v7
  447. - name: Create AVD and generate snapshot for caching
  448. if: steps.avd-cache.outputs.cache-hit != 'true'
  449. uses: reactivecircus/android-emulator-runner@v2
  450. with:
  451. avd-name: firebird-builder
  452. arch: x86_64
  453. api-level: 30
  454. target: google_apis
  455. ndk: 28.2.13676358
  456. emulator-options: -no-window -noaudio -no-boot-anim -camera-back none -port 5554
  457. emulator-boot-timeout: 900
  458. script: |
  459. echo "Generated AVD snapshot for caching."
  460. - name: Create necessary files in Android emulator
  461. uses: reactivecircus/android-emulator-runner@v2
  462. with:
  463. avd-name: firebird-builder
  464. arch: x86_64
  465. api-level: 30
  466. target: google_apis
  467. ndk: 28.2.13676358
  468. emulator-options: -no-snapshot-save -no-window -noaudio -no-boot-anim -camera-back none -port 5554
  469. emulator-boot-timeout: 900
  470. script: |
  471. adb wait-for-device
  472. adb root
  473. NDK=/usr/local/lib/android/sdk/ndk/28.2.13676358 builds/install/arch-specific/android/BuildFinalPackage.sh $ARCH
  474. - name: Upload installer
  475. uses: actions/upload-artifact@v4
  476. with:
  477. name: firebird-android-${{ matrix.arch }}
  478. path: gen/Firebird-*-android-${{ matrix.arch }}.tar.gz
  479. - name: Upload installer (withDebugSymbols)
  480. uses: actions/upload-artifact@v4
  481. with:
  482. name: firebird-android-${{ matrix.arch }}-withDebugSymbols
  483. path: gen/Firebird-*-android-${{ matrix.arch }}-withDebugSymbols.tar.gz
  484. - name: Delete initial build
  485. uses: geekyeggo/delete-artifact@v5
  486. with:
  487. name: firebird-android-initial-${{ matrix.arch }}
  488. - name: Create release
  489. uses: ./.github/actions/create-release
  490. with:
  491. token: ${{ secrets.SNAPSHOT_RELEASE_TOKEN }}
  492. deletePatterns: Firebird-*-android-${{ matrix.arch }}*.tar.gz
  493. uploadFiles: gen/Firebird-*-android-${{ matrix.arch }}*.tar.gz
  494. build-android-aar:
  495. needs: build-android-final
  496. runs-on: ubuntu-24.04
  497. steps:
  498. - name: Checkout
  499. uses: actions/checkout@v4
  500. with:
  501. fetch-depth: 10
  502. - name: Adjust snapshot build number
  503. uses: ./.github/actions/adjust-snapshot-buildno
  504. - name: Download final build (x86)
  505. uses: actions/download-artifact@v4
  506. with:
  507. name: firebird-android-x86
  508. path: android/temp
  509. - name: Download final build (x64)
  510. uses: actions/download-artifact@v4
  511. with:
  512. name: firebird-android-x64
  513. path: android/temp
  514. - name: Download final build (arm32)
  515. uses: actions/download-artifact@v4
  516. with:
  517. name: firebird-android-arm32
  518. path: android/temp
  519. - name: Download final build (arm64)
  520. uses: actions/download-artifact@v4
  521. with:
  522. name: firebird-android-arm64
  523. path: android/temp
  524. - name: Extract final builds
  525. working-directory: android
  526. run: |
  527. mkdir -p embedded/src/main/jniLibs/{x86,x86_64,armeabi-v7a,arm64-v8a}
  528. tar xzvf temp/Firebird-*-android-x86.tar.gz -C embedded/src/main/jniLibs/x86 --strip-components=1
  529. tar xzvf temp/Firebird-*-android-x64.tar.gz -C embedded/src/main/jniLibs/x86_64 --strip-components=1
  530. tar xzvf temp/Firebird-*-android-arm32.tar.gz -C embedded/src/main/jniLibs/armeabi-v7a --strip-components=1
  531. tar xzvf temp/Firebird-*-android-arm64.tar.gz -C embedded/src/main/jniLibs/arm64-v8a --strip-components=1
  532. mkdir -p embedded/src/main/assets/firebird
  533. mv embedded/src/main/jniLibs/x86/{*.conf,*.msg,*.dat,*.res} embedded/src/main/assets/firebird/
  534. find embedded/src/main/jniLibs -type f ! -iname "*.so" -delete
  535. - name: Assemble AAR
  536. working-directory: android
  537. run: |
  538. ./gradlew assembleRelease
  539. FB_VERSION=`cd ../src/misc/ && . writeBuildNum.sh && echo $PRODUCT_VER_STRING-$FIREBIRD_PACKAGE_VERSION`
  540. mv embedded/build/outputs/aar/firebird-embedded-release.aar \
  541. embedded/build/outputs/aar/Firebird-$FB_VERSION-android-embedded.aar
  542. - name: Upload installer
  543. uses: actions/upload-artifact@v4
  544. with:
  545. name: firebird-android-aar
  546. path: android/embedded/build/outputs/aar/Firebird-*-android-embedded.aar
  547. - name: Create release
  548. uses: ./.github/actions/create-release
  549. with:
  550. token: ${{ secrets.SNAPSHOT_RELEASE_TOKEN }}
  551. deletePatterns: Firebird-*-android-embedded.aar
  552. uploadFiles: android/embedded/build/outputs/aar/Firebird-*-android-embedded.aar