Skip to content

Build Core binaries

Build Core binaries #9

Workflow file for this run

name: Build Core binaries
on: workflow_dispatch
jobs:
build-packages:
runs-on: macos-14
name: Build for ${{ matrix.target }}
outputs:
core-version: ${{ steps.get-core-version.outputs.version }}
strategy:
matrix:
target: [macosx, iphoneos, iphonesimulator, appletvos, appletvsimulator, watchos, watchsimulator, maccatalyst]
xcode: ["14.3.1"]
include:
- target: xros
xcode: "15.2.0"
- target: xrsimulator
xcode: "15.2.0"
steps:
- uses: actions/checkout@v4
- name: Switch to Xcode ${{ matrix.xcode }}
uses: maxim-lobanov/[email protected]
with:
xcode-version: ${{ matrix.xcode }}
- name: Get Core Version
id: get-core-version
run: |
REALM_CORE_VERSION=$(sed -n 's/^REALM_CORE_VERSION=\(.*\)$/\1/p' dependencies.list)
echo "version=$REALM_CORE_VERSION" >> "$GITHUB_OUTPUT"
- name: Checkout Core
uses: actions/checkout@v4
with:
repository: realm/realm-core
path: core
ref: ${{ steps.get-core-version.outputs.version }}
submodules: recursive
- name: Build for ${{ matrix.target }}
run: sh tools/${{ matrix.target != 'macosx' && format('build-apple-device.sh -p {0} -c Release', matrix.target) || 'build-cocoa.sh -bm' }} -v ${{ steps.get-core-version.outputs.version }}
working-directory: core
- name: Archive binaries
uses: actions/upload-artifact@v4
with:
name: binaries-${{ matrix.target }}
path: core/realm-Release-*.tar.gz
combine-xcframework:
runs-on: macos-14
name: Combine xcframework
environment: Prebuilds
needs:
- build-packages
steps:
- uses: actions/checkout@v4
- name: Checkout Core
uses: actions/checkout@v4
with:
repository: realm/realm-core
path: core
ref: ${{ needs.build-packages.outputs.core-version }}
- name: Download binaries
uses: actions/download-artifact@v4
with:
path: core
- name: Combine xcframework
run: |
mv binaries-*/* ./
sh tools/build-cocoa.sh -v ${{ needs.build-packages.outputs.core-version }}
mkdir ../release
mv realm-*.tar.xz ../release/
working-directory: core
- name: Archive xcframework
uses: actions/upload-artifact@v4
with:
name: Realm-${{ needs.build-packages.outputs.core-version }}.xcframework.tar.xz
path: release/realm-*.tar.xz
# - name: Configure AWS Credentials
# uses: aws-actions/configure-aws-credentials@v1
# with:
# aws-access-key-id: ${{ secrets.AWS_S3_ACCESS_KEY }}
# aws-secret-access-key: ${{ secrets.AWS_S3_SECRET_KEY }}
# aws-region: us-east-1
# - name: Upload release folder to S3
# id: upload-to-s3
# run: |
# s3_folder="static.realm.io/downloads/core/${{ needs.build-packages.outputs.core-version }}/cocoa/"
# aws s3 sync --acl public-read . "s3://$s3_folder"
# echo "url=https://$s3_folder/packages.tar.gz" >> $GITHUB_OUTPUT
# working-directory: release