| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672 |
- name: CI
- on: [push, pull_request]
- jobs:
- build-linux-ubuntu-x64-clang:
- runs-on: ubuntu-20.04
- steps:
- - name: Checkout
- uses: actions/checkout@v3
- with:
- fetch-depth: 10
- - name: Prepare
- run: |
- sudo apt-get install libtool-bin libtomcrypt1 libtomcrypt-dev libtommath1 libtommath-dev libicu-dev zlib1g-dev cmake
- - name: Build
- run: |
- CC=clang CXX=clang++ ./autogen.sh --enable-binreloc --prefix=/opt/firebird
- make -j4
- make tests -j4
- make run_tests
- make dist
- tar xzvf gen/Firebird-*-linux-x64.tar.gz
- (cd Firebird-*-linux-x64; sudo ./install.sh -silent)
- - name: Upload installer
- uses: actions/upload-artifact@main
- with:
- name: firebird-ubuntu-20.04-clang-x64
- path: gen/Firebird-*-linux-x64.tar.gz
- build-linux-docker:
- name: build-linux-docker-${{ matrix.arch }}
- runs-on: ubuntu-22.04
- env:
- FB_DOCKER_PATH: ${{ (startsWith(matrix.arch, 'arm') && 'arm32-arm64') || 'x86-x64' }}
- strategy:
- fail-fast: false
- matrix:
- arch:
- - x86
- - x64
- - arm32
- - arm64
- steps:
- - name: Checkout
- uses: actions/checkout@v3
- with:
- fetch-depth: 10
- - name: Set up QEMU
- uses: docker/setup-qemu-action@v2
- if: ${{ startsWith(matrix.arch, 'arm') }}
- - name: Build
- run: |
- cd builds/docker/linux/$FB_DOCKER_PATH
- ./run-${{ matrix.arch }}.sh
- - name: Upload installer
- uses: actions/upload-artifact@main
- with:
- name: firebird-linux-${{ matrix.arch }}
- path: gen/Firebird-*-linux-${{ matrix.arch }}.tar.gz
- - name: Upload debug symbols
- uses: actions/upload-artifact@main
- with:
- name: firebird-linux-${{ matrix.arch }}-debugSymbols
- path: gen/Firebird-*-linux-${{ matrix.arch }}-debugSymbols.tar.gz
- - name: Snapshot - prepare
- id: snapshot_prepare
- if: |
- github.repository == 'FirebirdSQL/firebird' &&
- github.event.head_commit.message == 'increment build number' &&
- github.ref_name == 'master'
- run: |
- echo "snapshot_name=${{ github.ref_name }}" >> $GITHUB_OUTPUT
- - name: Snapshot - delete old assets
- uses: mknejp/delete-release-assets@v1
- if: steps.snapshot_prepare.outputs.snapshot_name
- with:
- repository: FirebirdSQL/snapshots
- token: ${{ secrets.SNAPSHOT_RELEASE_TOKEN }}
- tag: snapshot-${{ steps.snapshot_prepare.outputs.snapshot_name }}
- fail-if-no-release: false
- fail-if-no-assets: false
- assets: |
- Firebird-*-linux-${{ matrix.arch }}*.tar.gz
- - name: Snapshot - release
- id: snapshot_release_try1
- uses: softprops/action-gh-release@v1
- if: steps.snapshot_prepare.outputs.snapshot_name
- continue-on-error: true
- with:
- repository: FirebirdSQL/snapshots
- name: Latest snapshots for ${{ steps.snapshot_prepare.outputs.snapshot_name }}
- tag_name: snapshot-${{ steps.snapshot_prepare.outputs.snapshot_name }}
- prerelease: true
- token: ${{ secrets.SNAPSHOT_RELEASE_TOKEN }}
- files: |
- gen/Firebird-*-linux-${{ matrix.arch }}*.tar.gz
- - name: Snapshot - release (retry)
- uses: softprops/action-gh-release@v1
- if: |
- steps.snapshot_prepare.outputs.snapshot_name &&
- steps.snapshot_release_try1.outcome == 'failure'
- with:
- repository: FirebirdSQL/snapshots
- name: Latest snapshots for ${{ steps.snapshot_prepare.outputs.snapshot_name }}
- tag_name: snapshot-${{ steps.snapshot_prepare.outputs.snapshot_name }}
- prerelease: true
- token: ${{ secrets.SNAPSHOT_RELEASE_TOKEN }}
- files: |
- gen/Firebird-*-linux-${{ matrix.arch }}*.tar.gz
- build-alpine-x64:
- runs-on: ubuntu-20.04
- container: alpine:3.14
- steps:
- - name: Checkout
- uses: actions/checkout@v3
- with:
- fetch-depth: 10
- - name: Prepare
- 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
- - name: Build
- run: |
- ./autogen.sh --enable-binreloc-threads --with-builtin-tommath --with-builtin-tomcrypt --prefix=/opt/firebird
- make -j4
- make tests -j4
- make run_tests
- make dist
- tar xzvf gen/Firebird-*-linux-x64.tar.gz
- - name: Upload installer
- uses: actions/upload-artifact@main
- with:
- name: firebird-alpine-x64
- path: gen/Firebird-*-linux-x64.tar.gz
- build-windows:
- runs-on: ${{ matrix.os }}
- env:
- VS_VERSION: ${{ (matrix.os == 'windows-2019' && '2019' || (matrix.os == 'windows-2022' && '2022' || '')) }}
- strategy:
- fail-fast: false
- matrix:
- os:
- - windows-2022
- - windows-2019
- platform: [x64, x86]
- steps:
- - name: Checkout
- uses: actions/checkout@v3
- with:
- fetch-depth: 10
- - name: Prepare
- shell: cmd
- run: |
- for /r %%i in (*.bat) do unix2dos "%%i"
- choco uninstall --no-progress --yes innosetup
- choco install --no-progress --yes innosetup --version=6.1.2
- - name: Build
- shell: cmd
- env:
- PLATFORM: ${{ matrix.platform }}
- VS_SCRIPT: ${{ matrix.os == 'windows-2022' && 'C:\Program Files\Microsoft Visual Studio\%VS_VERSION%\Enterprise\Common7\Tools\VsDevCmd.bat' || 'C:\Program Files (x86)\Microsoft Visual Studio\%VS_VERSION%\Enterprise\Common7\Tools\VsDevCmd.bat' }}
- run: |
- set SEVENZIP=C:\Program Files\7-Zip
- set INNO6_SETUP_PATH=C:\Program Files (x86)\Inno Setup 6
- if "%PLATFORM%" == "x64" set FB_VS_ARCH=amd64
- if "%PLATFORM%" == "x64" set FB_PROCESSOR_ARCHITECTURE=AMD64
- if "%PLATFORM%" == "x86" set FB_VS_ARCH=x86
- if "%PLATFORM%" == "x86" set FB_PROCESSOR_ARCHITECTURE=x86
- call "%VS_SCRIPT%" -arch=%FB_VS_ARCH%
- cd builds\win32
- call run_all.bat
- call run_tests.bat
- - name: Upload zip
- uses: actions/upload-artifact@main
- with:
- name: firebird-windows-vs-${{ env.VS_VERSION }}-${{ matrix.platform }}-zip
- path: builds/install_images/Firebird-*-windows-${{ matrix.platform }}.zip
- - name: Upload installer
- uses: actions/upload-artifact@main
- with:
- name: firebird-windows-vs-${{ env.VS_VERSION }}-${{ matrix.platform }}-installer
- path: builds/install_images/*-windows-${{ matrix.platform }}.exe
- build-windows-docker:
- runs-on: windows-2022
- env:
- VS_VERSION: ${{ (matrix.os == 'windows-2019' && '2019' || (matrix.os == 'windows-2022' && '2022' || '')) }}
- strategy:
- fail-fast: false
- matrix:
- platform: [x64, x86]
- steps:
- - name: Checkout
- uses: actions/checkout@v3
- with:
- fetch-depth: 10
- - name: Build
- id: build
- shell: cmd
- env:
- PLATFORM: ${{ matrix.platform }}
- run: |
- echo arch_suffix=%PLATFORM%>> %GITHUB_OUTPUT%
- mkdir builds\install_images
- cd builds\docker\windows
- call build.bat
- call run.bat C:\fbscripts\build-%PLATFORM%.bat
- - name: Upload zip
- uses: actions/upload-artifact@main
- with:
- name: firebird-windows-${{ matrix.platform }}-zip
- path: builds/install_images/Firebird-*-windows-${{ matrix.platform }}.zip
- - name: Upload zip (withDebugSymbols)
- uses: actions/upload-artifact@main
- with:
- name: firebird-windows-${{ matrix.platform }}-withDebugSymbols-zip
- path: builds/install_images/Firebird-*-windows-${{ matrix.platform }}-withDebugSymbols.zip
- - name: Upload installer
- uses: actions/upload-artifact@main
- with:
- name: firebird-windows-${{ matrix.platform }}-installer
- path: builds/install_images/*-windows-${{ matrix.platform }}.exe
- - name: Upload installer (withDebugSymbols)
- uses: actions/upload-artifact@main
- with:
- name: firebird-windows-${{ matrix.platform }}-withDebugSymbols-installer
- path: builds/install_images/*-windows-${{ matrix.platform }}-withDebugSymbols.exe
- - name: Snapshot - prepare
- id: snapshot_prepare
- if: |
- github.repository == 'FirebirdSQL/firebird' &&
- github.event.head_commit.message == 'increment build number' &&
- github.ref_name == 'master'
- shell: cmd
- run: |
- echo snapshot_name=${{ github.ref_name }}>> %GITHUB_OUTPUT%
- - name: Snapshot - delete old assets
- uses: mknejp/delete-release-assets@v1
- if: steps.snapshot_prepare.outputs.snapshot_name
- with:
- repository: FirebirdSQL/snapshots
- token: ${{ secrets.SNAPSHOT_RELEASE_TOKEN }}
- tag: snapshot-${{ steps.snapshot_prepare.outputs.snapshot_name }}
- fail-if-no-release: false
- fail-if-no-assets: false
- assets: |
- Firebird-*-windows-${{ steps.build.outputs.arch_suffix }}*.exe
- Firebird-*-windows-${{ steps.build.outputs.arch_suffix }}*.zip
- - name: Snapshot - release
- id: snapshot_release_try1
- uses: softprops/action-gh-release@v1
- if: steps.snapshot_prepare.outputs.snapshot_name
- continue-on-error: true
- with:
- repository: FirebirdSQL/snapshots
- name: Latest snapshots for ${{ steps.snapshot_prepare.outputs.snapshot_name }}
- tag_name: snapshot-${{ steps.snapshot_prepare.outputs.snapshot_name }}
- prerelease: true
- token: ${{ secrets.SNAPSHOT_RELEASE_TOKEN }}
- files: |
- builds/install_images/Firebird-*-windows-*.exe
- builds/install_images/Firebird-*-windows-*.zip
- - name: Snapshot - release (retry)
- uses: softprops/action-gh-release@v1
- if: |
- steps.snapshot_prepare.outputs.snapshot_name &&
- steps.snapshot_release_try1.outcome == 'failure'
- with:
- repository: FirebirdSQL/snapshots
- name: Latest snapshots for ${{ steps.snapshot_prepare.outputs.snapshot_name }}
- tag_name: snapshot-${{ steps.snapshot_prepare.outputs.snapshot_name }}
- prerelease: true
- token: ${{ secrets.SNAPSHOT_RELEASE_TOKEN }}
- files: |
- builds/install_images/Firebird-*windows-*.exe
- builds/install_images/Firebird-*windows-*.zip
- build-macos:
- runs-on: macos-latest
- steps:
- - name: Checkout
- uses: actions/checkout@v3
- with:
- fetch-depth: 10
- - name: Prepare - Install tools
- run: |
- brew install automake cmake libtool ninja
- - name: Cache - libc++ install
- id: cache-libcxx-install-macos
- uses: actions/cache@v3
- with:
- key: ${{ runner.os }}-libcxx-install-13.0.1
- path: |
- extern/libcxx-macos-install
- - name: Download libc++ sources
- if: steps.cache-libcxx-install-macos.outputs.cache-hit != 'true'
- run: |
- mkdir extern/libcxx-macos
- pushd extern/libcxx-macos
- curl -OL https://github.com/llvm/llvm-project/releases/download/llvmorg-13.0.1/llvm-project-13.0.1.src.tar.xz
- tar xJf llvm-project-13.0.1.src.tar.xz
- popd
- - name: Build libc++
- if: steps.cache-libcxx-install-macos.outputs.cache-hit != 'true'
- run: |
- LIBCXX_BUILD_PATH=`pwd`/extern/libcxx-macos-build
- LIBCXX_INSTALL_PATH=`pwd`/extern/libcxx-macos-install
- mkdir $LIBCXX_BUILD_PATH
- pushd extern/libcxx-macos/llvm-project-13.0.1.src
- export MACOSX_DEPLOYMENT_TARGET=10.9
- cmake -G Ninja -S llvm -B $LIBCXX_BUILD_PATH \
- -DLLVM_ENABLE_PROJECTS="libcxx;libcxxabi" \
- -DCMAKE_INSTALL_PREFIX=$LIBCXX_INSTALL_PATH \
- -DCMAKE_BUILD_TYPE=Release \
- -DLIBCXX_ENABLE_SHARED=false \
- -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=true
- ninja -C $LIBCXX_BUILD_PATH cxx cxxabi
- ninja -C $LIBCXX_BUILD_PATH install-cxx install-cxxabi
- popd
- - name: Cache - libicu install
- id: cache-libicu-install-macos
- uses: actions/cache@v3
- with:
- key: ${{ runner.os }}-libicu-install-63.2
- path: |
- extern/libicu-macos-install
- - name: Download and patch libicu sources
- if: steps.cache-libicu-install-macos.outputs.cache-hit != 'true'
- run: |
- mkdir extern/libicu-macos
- pushd extern/libicu-macos
- curl -OL https://github.com/unicode-org/icu/releases/download/release-63-2/icu4c-63_2-src.tgz
- curl -OL https://github.com/unicode-org/icu/commit/24aeb9a5a5874f4ce5db912e30670ac3ae236971.patch
- tar xzf icu4c-63_2-src.tgz
- cd icu/source
- patch -p3 < ../../24aeb9a5a5874f4ce5db912e30670ac3ae236971.patch
- popd
- - name: Build libicu
- if: steps.cache-libicu-install-macos.outputs.cache-hit != 'true'
- run: |
- export LIBTOOLIZE=glibtoolize
- export LIBTOOL=glibtool
- LIBICU_INSTALL_PATH=`pwd`/extern/libicu-macos-install
- pushd extern/libicu-macos/icu/source
- ./runConfigureICU MacOSX --prefix=$LIBICU_INSTALL_PATH
- make -j4
- make install
- install_name_tool -id @rpath/lib/libicuuc.dylib $LIBICU_INSTALL_PATH/lib/libicuuc.dylib
- install_name_tool -id @rpath/lib/libicui18n.dylib $LIBICU_INSTALL_PATH/lib/libicui18n.dylib
- install_name_tool -id @rpath/lib/libicudata.dylib $LIBICU_INSTALL_PATH/lib/libicudata.dylib
- install_name_tool -change libicudata.63.dylib @loader_path/libicudata.63.dylib $LIBICU_INSTALL_PATH/lib/libicuuc.63.dylib
- install_name_tool -change libicudata.63.dylib @loader_path/libicudata.63.dylib $LIBICU_INSTALL_PATH/lib/libicui18n.63.dylib
- install_name_tool -change libicuuc.63.dylib @loader_path/libicuuc.63.dylib $LIBICU_INSTALL_PATH/lib/libicui18n.63.dylib
- popd
- - name: Build
- run: |
- export LIBTOOLIZE=glibtoolize
- export LIBTOOL=glibtool
- LIBCXX_INSTALL_PATH=`pwd`/extern/libcxx-macos-install
- LIBICU_INSTALL_PATH=`pwd`/extern/libicu-macos-install
- mkdir -p gen/Release/firebird/lib
- cp -R $LIBICU_INSTALL_PATH/lib/libicu{data,i18n,uc}.*dylib gen/Release/firebird/lib/
- export C_INCLUDE_PATH="$LIBICU_INSTALL_PATH/include:`xcrun --show-sdk-path`/usr/include"
- export CPLUS_INCLUDE_PATH="$LIBCXX_INSTALL_PATH/include/c++/v1:$LIBICU_INSTALL_PATH/include:`xcrun --show-sdk-path`/usr/include"
- export LIBRARY_PATH="$LIBCXX_INSTALL_PATH/lib:$LIBICU_INSTALL_PATH/lib:$LIBRARY_PATH"
- ./autogen.sh --with-builtin-tommath --with-builtin-tomcrypt
- make -j4
- make tests -j4
- make run_tests
- (cd gen; make -B -f make.platform.postfix ICU_LOC="$LIBICU_INSTALL_PATH/lib/")
- (cd gen; make -B -f Makefile.install)
- # Rename directory to make sure the build is relocatable.
- mv gen gen2
- sudo installer -pkg gen2/Release/*.pkg -verbose -target /
- export FIREBIRD_LOCK=`pwd`/temp
- 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
- 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
- mv gen2 gen
- mkdir gen/artifacts
- mv gen/Release/*.pkg gen/artifacts
- - name: Upload installer
- uses: actions/upload-artifact@main
- with:
- name: firebird-macos
- path: gen/artifacts
- - name: Snapshot - prepare
- id: snapshot_prepare
- if: |
- github.repository == 'FirebirdSQL/firebird' &&
- github.event.head_commit.message == 'increment build number' &&
- github.ref_name == 'master'
- run: |
- echo "snapshot_name=${{ github.ref_name }}" >> $GITHUB_OUTPUT
- - name: Snapshot - delete old assets
- uses: mknejp/delete-release-assets@v1
- if: steps.snapshot_prepare.outputs.snapshot_name
- with:
- repository: FirebirdSQL/snapshots
- token: ${{ secrets.SNAPSHOT_RELEASE_TOKEN }}
- tag: snapshot-${{ steps.snapshot_prepare.outputs.snapshot_name }}
- fail-if-no-release: false
- fail-if-no-assets: false
- assets: |
- Firebird-*-macos-x64*.pkg
- - name: Snapshot - release
- id: snapshot_release_try1
- uses: softprops/action-gh-release@v1
- if: steps.snapshot_prepare.outputs.snapshot_name
- continue-on-error: true
- with:
- repository: FirebirdSQL/snapshots
- name: Latest snapshots for ${{ steps.snapshot_prepare.outputs.snapshot_name }}
- tag_name: snapshot-${{ steps.snapshot_prepare.outputs.snapshot_name }}
- prerelease: true
- token: ${{ secrets.SNAPSHOT_RELEASE_TOKEN }}
- files: |
- gen/artifacts/Firebird-*-macos-x64*.pkg
- - name: Snapshot - release (retry)
- uses: softprops/action-gh-release@v1
- if: |
- steps.snapshot_prepare.outputs.snapshot_name &&
- steps.snapshot_release_try1.outcome == 'failure'
- with:
- repository: FirebirdSQL/snapshots
- name: Latest snapshots for ${{ steps.snapshot_prepare.outputs.snapshot_name }}
- tag_name: snapshot-${{ steps.snapshot_prepare.outputs.snapshot_name }}
- prerelease: true
- token: ${{ secrets.SNAPSHOT_RELEASE_TOKEN }}
- files: |
- gen/artifacts/Firebird-*-macos-x64*.pkg
- build-android-initial:
- name: build-android-${{ matrix.arch }}-initial
- runs-on: ubuntu-22.04
- env:
- NDK: /home/runner/Android/Ndk
- ARCH: ${{ matrix.arch }}
- FB_PREFIX: ${{ (matrix.arch == 'arm32' && 'arme') || (matrix.arch == 'x64' && 'x86_64') || matrix.arch }}
- strategy:
- fail-fast: false
- matrix:
- arch:
- - arm32
- - arm64
- - x86
- - x64
- steps:
- - name: Checkout
- uses: actions/checkout@v3
- with:
- fetch-depth: 10
- - name: Prepare - install Linux tools
- run: |
- sudo apt-get install libtool-bin libtomcrypt1 libtomcrypt-dev libtommath1 libtommath-dev libicu-dev zlib1g-dev
- - name: Prepare - Download and install Android NDK
- run: |
- mkdir downloads
- pushd downloads
- curl -OL https://dl.google.com/android/repository/android-ndk-r25b-linux.zip
- mkdir -p $NDK
- unzip android-ndk-r25b-linux.zip -d $NDK && f=("$NDK"/*) && mv "$NDK"/*/* "$NDK" && rmdir "${f[@]}"
- - name: Build
- run: |
- ./autogen.sh --prefix=/opt/firebird --enable-binreloc --with-cross-build=android.$FB_PREFIX --without-editline
- make -j4
- make CROSS_OUT=Y tests -j4
- builds/install/arch-specific/android/BuildPackage.sh $ARCH
- - name: Upload initial build
- uses: actions/upload-artifact@v3
- with:
- name: firebird-android-initial-${{ matrix.arch }}
- path: |
- gen/Firebird-*-android-initial-${{ matrix.arch }}*.tar.gz
- gen/Make.Version
- build-android-final:
- name: build-android-${{ matrix.arch }}-final
- needs: build-android-initial
- runs-on: macos-latest
- env:
- ARCH: ${{ matrix.arch }}
- strategy:
- fail-fast: false
- matrix:
- arch:
- - arm32
- - arm64
- - x86
- - x64
- steps:
- - name: Checkout
- uses: actions/checkout@v3
- with:
- fetch-depth: 10
- - name: Download initial build
- uses: actions/download-artifact@v3
- with:
- name: firebird-android-initial-${{ matrix.arch }}
- path: gen
- - name: Cache - AVD
- uses: actions/cache@v3
- id: avd-cache
- with:
- path: |
- ~/.android/avd/*
- ~/.android/adb*
- key: avd-v3
- - name: Create AVD and generate snapshot for caching
- if: steps.avd-cache.outputs.cache-hit != 'true'
- uses: reactivecircus/android-emulator-runner@v2
- with:
- avd-name: firebird-builder
- arch: x86_64
- api-level: 30
- target: google_apis
- ndk: 25.1.8937393
- emulator-options: -no-window -noaudio -no-boot-anim -camera-back none -port 5554
- script: |
- echo "Generated AVD snapshot for caching."
- - name: Create necessary files in Android emulator
- uses: reactivecircus/android-emulator-runner@v2
- with:
- avd-name: firebird-builder
- arch: x86_64
- api-level: 30
- target: google_apis
- ndk: 25.1.8937393
- emulator-options: -no-snapshot-save -no-window -noaudio -no-boot-anim -camera-back none -port 5554
- script: |
- sleep 20
- adb wait-for-device
- adb root
- NDK=/Users/runner/Library/Android/sdk/ndk/25.1.8937393 builds/install/arch-specific/android/BuildFinalPackage.sh $ARCH
- - name: Upload installer
- uses: actions/upload-artifact@v3
- with:
- name: firebird-android-${{ matrix.arch }}
- path: gen/Firebird-*-android-${{ matrix.arch }}.tar.gz
- - name: Upload installer (withDebugSymbols)
- uses: actions/upload-artifact@v3
- with:
- name: firebird-android-${{ matrix.arch }}-withDebugSymbols
- path: gen/Firebird-*-android-${{ matrix.arch }}-withDebugSymbols.tar.gz
- - name: Delete initial build
- uses: geekyeggo/delete-artifact@v1
- with:
- name: firebird-android-initial-${{ matrix.arch }}
- - name: Snapshot - prepare
- id: snapshot_prepare
- if: |
- github.repository == 'FirebirdSQL/firebird' &&
- github.event.head_commit.message == 'increment build number' &&
- github.ref_name == 'master'
- run: |
- echo "snapshot_name=${{ github.ref_name }}" >> $GITHUB_OUTPUT
- - name: Snapshot - delete old assets
- uses: mknejp/delete-release-assets@v1
- if: steps.snapshot_prepare.outputs.snapshot_name
- with:
- repository: FirebirdSQL/snapshots
- token: ${{ secrets.SNAPSHOT_RELEASE_TOKEN }}
- tag: snapshot-${{ steps.snapshot_prepare.outputs.snapshot_name }}
- fail-if-no-release: false
- fail-if-no-assets: false
- assets: |
- Firebird-*-android-${{ matrix.arch }}*.tar.gz
- - name: Snapshot - release
- id: snapshot_release_try1
- uses: softprops/action-gh-release@v1
- if: steps.snapshot_prepare.outputs.snapshot_name
- continue-on-error: true
- with:
- repository: FirebirdSQL/snapshots
- name: Latest snapshots for ${{ steps.snapshot_prepare.outputs.snapshot_name }}
- tag_name: snapshot-${{ steps.snapshot_prepare.outputs.snapshot_name }}
- prerelease: true
- token: ${{ secrets.SNAPSHOT_RELEASE_TOKEN }}
- files: |
- gen/Firebird-*-android-${{ matrix.arch }}*.tar.gz
- - name: Snapshot - release (retry)
- uses: softprops/action-gh-release@v1
- if: |
- steps.snapshot_prepare.outputs.snapshot_name &&
- steps.snapshot_release_try1.outcome == 'failure'
- with:
- repository: FirebirdSQL/snapshots
- name: Latest snapshots for ${{ steps.snapshot_prepare.outputs.snapshot_name }}
- tag_name: snapshot-${{ steps.snapshot_prepare.outputs.snapshot_name }}
- prerelease: true
- token: ${{ secrets.SNAPSHOT_RELEASE_TOKEN }}
- files: |
- gen/Firebird-*-android-${{ matrix.arch }}*.tar.gz
|