firebase #212
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: firebase | |
on: | |
workflow_dispatch: | |
jobs: | |
windows: | |
runs-on: windows-latest | |
if: false | |
strategy: | |
fail-fast: true | |
matrix: | |
include: | |
- arch: 'amd64' | |
platform: 'x64' | |
- arch: 'arm64' | |
platform: 'ARM64' | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 1 | |
path: ${{ github.workspace }}/SourceCache/flatbuffers | |
ref: 99aa1ef21dd9dc3f9d4fb0eb82f4b59d0bb5e4c5 | |
repository: google/flatbuffers | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 1 | |
path: ${{ github.workspace }}/SourceCache/firebase-cpp-sdk | |
ref: refs/heads/compnerd/swift | |
repository: thebrowsercompany/firebase-cpp-sdk | |
- uses: compnerd/gha-setup-vsdevenv@main | |
with: | |
host_arch: amd64 | |
components: 'Microsoft.VisualStudio.Component.VC.Tools.x86.x64;Microsoft.VisualStudio.Component.VC.Tools.ARM64' | |
arch: ${{ matrix.arch }} | |
- uses: actions/setup-python@v4 | |
id: python | |
with: | |
python-version: 3.9 | |
architecture: 'x64' | |
- name: Install absl-py | |
run: pip install absl-py | |
- name: Configure flatbuffers | |
run: | |
cmake -B ${{ github.workspace }}/BinaryCache/flatbuffers ` | |
-D CMAKE_BUILD_TYPE=Release ` | |
-G "Visual Studio 17 2022" ` | |
-A x64 ` | |
-S ${{ github.workspace }}/SourceCache/flatbuffers | |
- name: Build flatc | |
run: cmake --build ${{ github.workspace }}/BinaryCache/flatbuffers --config Release --target flatc | |
- name: Adjust cmake build settings for debugging | |
run: powershell ${{ github.workspace }}/SourceCache/firebase-cpp-sdk/build_scripts/windows/fix_cmake_debugflags.ps1 ${{ github.workspace }}/SourceCache/firebase-cpp-sdk/CMakeLists.txt | |
- name: Configure firebase | |
run: | |
cmake -B ${{ github.workspace }}/BinaryCache/firebase ` | |
-D BUILD_SHARED_LIBS=NO ` | |
-D CMAKE_BUILD_TYPE=Release ` | |
-D CMAKE_INSTALL_PREFIX=${{ github.workspace }}/BuildRoot/Library/firebase/usr ` | |
-G "Visual Studio 17 2022" ` | |
-A ${{ matrix.platform }} ` | |
-S ${{ github.workspace }}/SourceCache/firebase-cpp-sdk ` | |
-D FLATBUFFERS_BUILD_FLATC=NO ` | |
-D FIREBASE_CPP_BUILD_PACKAGE=YES ` | |
-D FIREBASE_GITHUB_ACTION_BUILD=YES ` | |
-D FIREBASE_INCLUDE_LIBRARY_DEFAULT=OFF ` | |
-D FIREBASE_INCLUDE_AUTH=YES ` | |
-D FIREBASE_INCLUDE_FIRESTORE=YES ` | |
-D FIREBASE_USE_BORINGSSL=YES ` | |
-D MSVC_RUNTIME_LIBRARY_STATIC=NO ` | |
-D CMAKE_C_FLAGS="/D_HAS_EXCEPTIONS=0 /EHsc- /arch:AVX2"` | |
-D CMAKE_CXX_FLAGS="/D_HAS_EXCEPTIONS=0 /EHsc- /arch:AVX2" ` | |
-D CMAKE_MSVC_DEBUG_INFORMATION_FORMAT=Embedded ` | |
-D FIREBASE_PYTHON_HOST_EXECUTABLE:FILEPATH=${{ steps.python.outputs.python-path }} ` | |
-D FLATBUFFERS_FLATC_EXECUTABLE=${{ github.workspace }}/BinaryCache/flatbuffers/Release/flatc.exe | |
- name: Adjust external project build settings for debugging | |
run: | | |
$names = Get-ChildItem -Path "${{ github.workspace }}/BinaryCache/firebase" -File -Recurse -Filter CMakeLists.txt | |
foreach ($name in $names) { | |
$fullName = $name.FullName | |
powershell ${{ github.workspace }}/SourceCache/firebase-cpp-sdk/build_scripts/windows/fix_cmake_debugflags.ps1 $fullName | |
Write-Host "... fixed up debug options for ${fullName}" | |
} | |
- name: Configure firebase after build setting adjustments | |
run: | |
cmake -B ${{ github.workspace }}/BinaryCache/firebase ` | |
-D BUILD_SHARED_LIBS=NO ` | |
-D CMAKE_BUILD_TYPE=Release ` | |
-D CMAKE_INSTALL_PREFIX=${{ github.workspace }}/BuildRoot/Library/firebase/usr ` | |
-G "Visual Studio 17 2022" ` | |
-A ${{ matrix.platform }} ` | |
-S ${{ github.workspace }}/SourceCache/firebase-cpp-sdk ` | |
-D FLATBUFFERS_BUILD_FLATC=NO ` | |
-D FIREBASE_CPP_BUILD_PACKAGE=YES ` | |
-D FIREBASE_GITHUB_ACTION_BUILD=YES ` | |
-D FIREBASE_INCLUDE_LIBRARY_DEFAULT=OFF ` | |
-D FIREBASE_INCLUDE_AUTH=YES ` | |
-D FIREBASE_INCLUDE_FIRESTORE=YES ` | |
-D FIREBASE_USE_BORINGSSL=YES ` | |
-D MSVC_RUNTIME_LIBRARY_STATIC=NO ` | |
-D CMAKE_MSVC_DEBUG_INFORMATION_FORMAT=Embedded ` | |
-D FIREBASE_PYTHON_HOST_EXECUTABLE:FILEPATH=${{ steps.python.outputs.python-path }} ` | |
-D FLATBUFFERS_FLATC_EXECUTABLE=${{ github.workspace }}/BinaryCache/flatbuffers/Release/flatc.exe | |
- name: Build firebase | |
run: cmake --build ${{ github.workspace }}/BinaryCache/firebase --config RelWithDebInfo | |
- name: Install firebase | |
run: cmake --build ${{ github.workspace }}/BinaryCache/firebase --config RelWithDebInfo --target install | |
- name: Install firebase (manual) | |
run: | | |
Copy-Item "${{ github.workspace }}/BinaryCache/firebase/external/src/firestore/Firestore/core/include/firebase/firestore/firestore_errors.h" "${{ github.workspace }}/BuildRoot/Library/firebase/usr/include/firebase/firestore/firestore_errors.h" | |
Copy-Item "${{ github.workspace }}/BinaryCache/firebase/external/src/firestore/Firestore/core/include/firebase/firestore/geo_point.h" "${{ github.workspace }}/BuildRoot/Library/firebase/usr/include/firebase/firestore/geo_point.h" | |
Copy-Item "${{ github.workspace }}/BinaryCache/firebase/external/src/firestore/Firestore/core/include/firebase/firestore/timestamp.h" "${{ github.workspace }}/BuildRoot/Library/firebase/usr/include/firebase/firestore/timestamp.h" | |
Write-Host "Copying static libraries ..." | |
$source = "${{ github.workspace }}/BinaryCache/firebase" | |
$libraries = Get-ChildItem -Path $source -File -Recurse -Filter *.lib | |
foreach ($library in $libraries) { | |
$destination = Join-Path -Path "${{ github.workspace }}/BuildRoot/Library/firebase/usr/libs/windows" -ChildPath $library.Name | |
Copy-Item -Path $library.FullName -Destination $destination -Force | |
Write-Host "... copied ${destination}" | |
} | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: firebase-windows-${{ matrix.arch }} | |
path: ${{ github.workspace }}/BuildRoot/Library/firebase | |
- name: Create Release | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
Compress-Archive -Path "${{ github.workspace }}/BuildRoot/Library/firebase" -DestinationPath firebase-windows-${{ matrix.arch }}.zip | |
$SHA256 = Get-FileHash -Path firebase-windows-${{ matrix.arch }}.zip -Algorithm SHA256 > firebase-windows-${{ matrix.arch }}.zip.sha256 | |
$Date = Get-Date -Format 'yyyyMMdd' | |
$Release = $(gh release list -R ${{ github.repository }} | Select-String -Pattern $Date -AllMatches).Count | |
gh release create "$Date.$Release" -R ${{ github.repository }} | |
gh release upload "$Date.$Release" firebase-windows-${{ matrix.arch }}.zip -R ${{ github.repository }} | |
gh release upload "$Date.$Release" firebase-windows-${{ matrix.arch }}.zip.sha256 -R ${{ github.repository }} | |
- name: Package firebase-cpp-sdk | |
run: | | |
@" | |
<?xml version="1.0" encoding="utf-8"?> | |
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> | |
<metadata> | |
<id>com.google.firebase.windows.${{ matrix.arch }}</id> | |
<version>0.0.0.0</version> | |
<title>Firebase C++ SDK</title> | |
<description>C++ Firebase SDK</description> | |
<authors>Google, Inc.</authors> | |
<projectUrl>https://firebase.google.com</projectUrl> | |
<repository type="git" url="https://github.com/google/firebase-cpp-sdk" branch="main" /> | |
</metadata> | |
<files> | |
<file src="`$BUILDROOT`$\usr\include\firebase\app.h" target="include/firebase" /> | |
<file src="`$BUILDROOT`$\usr\include\firebase\auth.h" target="include/firebase" /> | |
<file src="`$BUILDROOT`$\usr\include\firebase\firestore.h" target="include/firebase" /> | |
<file src="`$BUILDROOT`$\usr\include\firebase\future.h" target="include/firebase" /> | |
<file src="`$BUILDROOT`$\usr\include\firebase\log.h" target="include/firebase" /> | |
<file src="`$BUILDROOT`$\usr\include\firebase\util.h" target="include/firebase" /> | |
<file src="`$BUILDROOT`$\usr\include\firebase\variant.h" target="include/firebase" /> | |
<file src="`$BUILDROOT`$\usr\include\firebase\auth\credential.h" target="include/firebase/auth" /> | |
<file src="`$BUILDROOT`$\usr\include\firebase\auth\types.h" target="include/firebase/auth" /> | |
<file src="`$BUILDROOT`$\usr\include\firebase\auth\user.h" target="include/firebase/auth" /> | |
<file src="`$BUILDROOT`$\usr\include\firebase\firestore\aggregate_query.h" target="include/firebase/firestore" /> | |
<file src="`$BUILDROOT`$\usr\include\firebase\firestore\aggregate_query_snapshot.h" target="include/firebase/firestore" /> | |
<file src="`$BUILDROOT`$\usr\include\firebase\firestore\aggregate_source.h" target="include/firebase/firestore" /> | |
<file src="`$BUILDROOT`$\usr\include\firebase\firestore\collection_reference.h" target="include/firebase/firestore" /> | |
<file src="`$BUILDROOT`$\usr\include\firebase\firestore\document_change.h" target="include/firebase/firestore" /> | |
<file src="`$BUILDROOT`$\usr\include\firebase\firestore\document_reference.h" target="include/firebase/firestore" /> | |
<file src="`$BUILDROOT`$\usr\include\firebase\firestore\document_snapshot.h" target="include/firebase/firestore" /> | |
<file src="`$BUILDROOT`$\usr\include\firebase\firestore\field_path.h" target="include/firebase/firestore" /> | |
<file src="`$BUILDROOT`$\usr\include\firebase\firestore\field_value.h" target="include/firebase/firestore" /> | |
<file src="`$BUILDROOT`$\usr\include\firebase\firestore\firestore_errors.h" target="include/firebase/firestore" /> | |
<file src="`$BUILDROOT`$\usr\include\firebase\firestore\geo_point.h" target="include/firebase/firestore" /> | |
<file src="`$BUILDROOT`$\usr\include\firebase\firestore\listener_registration.h" target="include/firebase/firestore" /> | |
<file src="`$BUILDROOT`$\usr\include\firebase\firestore\load_bundle_task_progress.h" target="include/firebase/firestore" /> | |
<file src="`$BUILDROOT`$\usr\include\firebase\firestore\map_field_value.h" target="include/firebase/firestore" /> | |
<file src="`$BUILDROOT`$\usr\include\firebase\firestore\metadata_changes.h" target="include/firebase/firestore" /> | |
<file src="`$BUILDROOT`$\usr\include\firebase\firestore\query.h" target="include/firebase/firestore" /> | |
<file src="`$BUILDROOT`$\usr\include\firebase\firestore\query_snapshot.h" target="include/firebase/firestore" /> | |
<file src="`$BUILDROOT`$\usr\include\firebase\firestore\settings.h" target="include/firebase/firestore" /> | |
<file src="`$BUILDROOT`$\usr\include\firebase\firestore\set_options.h" target="include/firebase/firestore" /> | |
<file src="`$BUILDROOT`$\usr\include\firebase\firestore\snapshot_metadata.h" target="include/firebase/firestore" /> | |
<file src="`$BUILDROOT`$\usr\include\firebase\firestore\source.h" target="include/firebase/firestore" /> | |
<file src="`$BUILDROOT`$\usr\include\firebase\firestore\timestamp.h" target="include/firebase/firestore" /> | |
<file src="`$BUILDROOT`$\usr\include\firebase\firestore\transaction.h" target="include/firebase/firestore" /> | |
<file src="`$BUILDROOT`$\usr\include\firebase\firestore\transaction_options.h" target="include/firebase/firestore" /> | |
<file src="`$BUILDROOT`$\usr\include\firebase\firestore\write_batch.h" target="include/firebase/firestore" /> | |
<file src="`$BUILDROOT`$\usr\include\firebase\internal\common.h" target="include/firebase/internal" /> | |
<file src="`$BUILDROOT`$\usr\include\firebase\internal\future_impl.h" target="include/firebase/internal" /> | |
<file src="`$BUILDROOT`$\usr\include\firebase\internal\mutex.h" target="include/firebase/internal" /> | |
<file src="`$BUILDROOT`$\usr\include\firebase\internal\platform.h" target="include/firebase/internal" /> | |
<file src="`$BUILDROOT`$\usr\include\firebase\internal\type_traits.h" target="include/firebase/internal" /> | |
<!-- FIXME(compnerd) is this header actually required? --> | |
<file src="`$BUILDROOT`$\usr\include\google_play_services\availability.h" target="include/google_play_services" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\firebase_app.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\firebase_auth.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\firebase_firestore.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\firebase_rest_lib.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\firestore_core.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\firestore_nanopb.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\firestore_protos_nanopb.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\firestore_util.lib" target="lib" /> | |
<!-- dependencies --> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_bad_optional_access.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_bad_variant_access.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_base.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_city.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_civil_time.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_cord.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_cord_internal.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_cordz_functions.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_cordz_handle.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_cordz_info.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_debugging_internal.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_demangle_internal.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_exponential_biased.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_graphcycles_internal.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_hash.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_hashtablez_sampler.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_int128.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_log_severity.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_low_level_hash.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_malloc_internal.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_random_distributions.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_random_internal_seed_material.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_random_internal_platform.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_random_internal_pool_urbg.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_random_internal_randen.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_random_internal_randen_hwaes.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_random_internal_randen_hwaes_impl.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_random_internal_randen_slow.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_random_seed_gen_exception.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_random_seed_sequences.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_raw_hash_set.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_raw_logging_internal.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_spinlock_wait.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_stacktrace.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_status.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_statusor.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_str_format_internal.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_strerror.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_strings.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_strings_internal.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_symbolize.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_synchronization.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_throw_delegate.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_time.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\absl_time_zone.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\address_sorting.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\cares.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\crypto.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\fipsmodule.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\flatbuffers.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\gpr.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\grpc.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\grpc++.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\leveldb.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\libcurl.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\libprotobuf.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\libuWS.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\protobuf-nanopb.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\re2.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\snappy.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\ssl.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\upb.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\uv_a.lib" target="lib" /> | |
<file src="`$BUILDROOT`$\usr\libs\windows\zlibstatic.lib" target="lib" /> | |
</files> | |
</package> | |
"@ | Out-File -Encoding UTF8 firebase.nuspec | |
nuget pack -Properties BUILDROOT=${{ github.workspace }}\BuildRoot\Library\firebase -Suffix (git -C ${{ github.workspace }}/SourceCache/firebase-cpp-sdk log -1 --format=%h) firebase.nuspec | |
shell: pwsh | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: windows-${{ matrix.arch }}.nupkg | |
path: com.google.firebase.windows.${{ matrix.arch }}.*.nupkg | |
- name: Publish NuGet Packages | |
env: | |
NUGET_SOURCE_NAME: TheBrowserCompany | |
NUGET_SOURCE_URL: https://nuget.pkg.github.com/thebrowsercompany/index.json | |
NUGET_SOURCE_USERNAME: thebrowsercompany-bot2 | |
NUGET_SOURCE_PASSWORD: ${{ secrets.GITHUB_TOKEN }} | |
NUGET_API_KEY: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
if ((nuget sources List | Select-String "${env:NUGET_SOURCE_NAME}").Count -gt 0) { | |
nuget sources Remove -Name "${env:NUGET_SOURCE_NAME}" | |
} | |
nuget sources Add -Name ${env:NUGET_SOURCE_NAME} -Source ${env:NUGET_SOURCE_URL} -Username ${env:NUGET_SOURCE_USERNAME} -Password ${env:NUGET_SOURCE_PASSWORD} -StorePasswordInClearText | |
nuget setApiKey ${env:NUGET_API_KEY} -Source ${env:NUGET_SOURCE_URL} | |
$pkgs = Get-ChildItem -Path com.google.firebase.windows.${{ matrix.arch }}.*.nupkg | |
nuget push $pkgs[0].Name -Source ${env:NUGET_SOURCE_URL} -SkipDuplicate | |
shell: pwsh | |
android: | |
runs-on: ubuntu-20.04 | |
strategy: | |
fail-fast: true | |
matrix: | |
include: | |
- arch: 'arm64-v8a' | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 1 | |
path: ${{ github.workspace }}/SourceCache/firebase-cpp-sdk | |
ref: refs/heads/compnerd/swift | |
repository: thebrowsercompany/firebase-cpp-sdk | |
- name: Install Ninja | |
run: sudo apt-get install -y ninja-build | |
#- name: Set up JDK | |
# uses: actions/setup-java@v2 | |
# with: | |
# java-version: '11' | |
# distribution: 'adopt' | |
- name: Download Android NDK | |
run: | | |
NDK_VERSION="r21e" | |
NDK_FILE="android-ndk-${NDK_VERSION}-linux-x86_64.zip" | |
curl -L -o "${NDK_FILE}" "https://dl.google.com/android/repository/${NDK_FILE}" | |
unzip -q "${NDK_FILE}" | |
rm "${NDK_FILE}" | |
echo "NDK_ROOT=$(pwd)/android-ndk-${NDK_VERSION}" >> $GITHUB_ENV | |
echo "ANDROID_NDK_HOME=$(pwd)/android-ndk-${NDK_VERSION}" >> $GITHUB_ENV | |
- name: Install absl-py | |
run: pip install absl-py | |
- name: Build SDK | |
shell: bash | |
if: false | |
run: | | |
cd ${{ github.workspace }}/SourceCache/firebase-cpp-sdk | |
build_scripts/android/build.sh android_build . | |
- name: test | |
run: | | |
ls $NDK_ROOT | |
echo $NDK_ROOT | |
which cmake | |
which ninja | |
ls ${{ github.workspace }}/SourceCache/firebase-cpp-sdk | |
echo "doing" | |
export SRC=${{ github.workspace }}/SourceCache/firebase-cpp-sdk | |
export DST=${{ github.workspace }}/SourceCache/firebase-cpp-sdk | |
function cmake_build { | |
arch=$1 | |
module=$2 | |
extra_params=$3 | |
src_dir=$SRC | |
dst_dir=$DST | |
ndk_dir="$NDK_ROOT" | |
config_command="cmake \ | |
-H$src_dir \ | |
-B$dst_dir/$module/.externalNativeBuild/cmake/release/$arch \ | |
-DANDROID_ABI=$arch \ | |
-DANDROID_PLATFORM=android-19 \ | |
-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=$dst_dir/$module/build/intermediates/cmake/release/obj/$arch \ | |
-DCMAKE_BUILD_TYPE=Release \ | |
-DANDROID_NDK=$ndk_dir \ | |
-DCMAKE_TOOLCHAIN_FILE=$ndk_dir/build/cmake/android.toolchain.cmake \ | |
-GNinja \ | |
-DFIREBASE_INCLUDE_LIBRARY_DEFAULT=OFF \ | |
$extra_params" | |
echo "Configuring $module..." | |
eval "$config_command" | |
build_command="cmake --build $dst_dir/$module/.externalNativeBuild/cmake/release/$arch" | |
echo "Building $module..." | |
eval "$build_command" | |
} | |
arch="arm64-v8a" | |
cd ${{ github.workspace }}/SourceCache/firebase-cpp-sdk | |
cmake_build $arch "app" "" | |
# cmake_build $arch "storage" "-DFIREBASE_CPP_USE_PRIOR_GRADLE_BUILD=ON -DFIREBASE_INCLUDE_STORAGE=ON" |