Use Bazel to build XCFramework for release (#1457)

This commit is contained in:
Bart Louwers
2023-08-03 21:28:31 +02:00
committed by GitHub
parent 8ed3aae8f2
commit 88917b1806
3 changed files with 14 additions and 38 deletions

View File

@@ -146,8 +146,8 @@ objc_library(
],
visibility = ["//visibility:public"],
deps = [
"//:objc-sdk",
"//:objcpp-sdk",
":objc-sdk",
":objcpp-sdk",
],
)

View File

@@ -25,7 +25,6 @@ VERSION_TAG=${VERSION_TAG:-''}
PUBLISH_VERSION=
BINARY_DIRECTORY='build/ios/pkg/dynamic'
PUBLISH_PRE_FLAG=''
S3_DISTRIBUTION=false
uploadToGithub() {
local file_path=$1
@@ -39,24 +38,6 @@ uploadToGithub() {
EXT_TARGET_GITHUB_URL="https://github.com/${GITHUB_USER}/${GITHUB_REPO}/releases/download/${version_tag}/${file_name}"
}
uploadToS3() {
local file_path=$1
local progress=$2
file_name=${file_path##*/}
PROGRESS=""
if [ "${progress}" == false ]; then
PROGRESS="--no-progress"
fi
local target_s3_location="s3://mapbox-gl-native/ios/builds/${file_name}"
local target_s3_url="https://mapbox-gl-native.s3.us-east-2.amazonaws.com/ios/builds/${file_name}"
aws s3 cp ${file_path} ${target_s3_location} --acl public-read ${PROGRESS}
EXT_TARGET_S3_URL="${target_s3_url}"
}
rm -rf ${BINARY_DIRECTORY}
if [[ -z `which github-release` ]]; then
@@ -100,18 +81,13 @@ git checkout ${VERSION_TAG}
npm install --ignore-scripts
mkdir -p ${BINARY_DIRECTORY}
step "Building: make xcframework"
make xcframework
step "Building XCFramework"
bazel build //platform/ios:Mapbox.dynamic
step "Zipping xcframeworks…"
MAPBOX_ZIP_FILE="Mapbox-${PUBLISH_VERSION}.zip"
(cd ${BINARY_DIRECTORY} && rm -f ${MAPBOX_ZIP_FILE} && zip -yr ${MAPBOX_ZIP_FILE} Mapbox.xcframework)
if [[ ${S3_DISTRIBUTION} == true ]]; then
step "Uploading ${BINARY_DIRECTORY}/${MAPBOX_ZIP_FILE} to s3"
uploadToS3 "${BINARY_DIRECTORY}/${MAPBOX_ZIP_FILE}" false
MAPBOX_ZIP_FILE_URL=$EXT_TARGET_S3_URL
fi
step "Copying Bazel output"
BUILT_XCFRAMEWORK="$(bazel cquery --output=files //platform/ios:Mapbox.dynamic)"
MAPLIBRE_ZIP_FILE="MapLibre-${PUBLISH_VERSION}.zip"
cp "$BUILT_XCFRAMEWORK" "$MAPLIBRE_ZIP_FILE"
step "Create GitHub release…"
RELEASE_NOTES=$( ./platform/ios/scripts/release-notes.js github )
@@ -126,9 +102,9 @@ github-release release \
--name "ios-v${PUBLISH_VERSION}" \
--description "${RELEASE_NOTES}"
step "Uploading ${BINARY_DIRECTORY}/${MAPBOX_ZIP_FILE} to github release [${VERSION_TAG}]"
uploadToGithub "${BINARY_DIRECTORY}/${MAPBOX_ZIP_FILE}" "${VERSION_TAG}"
MAPBOX_ZIP_FILE_URL=$EXT_TARGET_GITHUB_URL
step "Uploading ${BINARY_DIRECTORY}/${MAPLIBRE_ZIP_FILE} to github release [${VERSION_TAG}]"
uploadToGithub "${BINARY_DIRECTORY}/${MAPLIBRE_ZIP_FILE}" "${VERSION_TAG}"
MAPLIBRE_ZIP_FILE_URL=$EXT_TARGET_GITHUB_URL
step "Creating Swift package…"
@@ -149,7 +125,7 @@ setTarget() {
sed -i '' -e 's|'"${token}_PACKAGE_CHECKSUM"'|'"${checksum}"'|g' Package.swift
}
setTarget "MAPBOX" "${BINARY_DIRECTORY}/${MAPBOX_ZIP_FILE}" "${MAPBOX_ZIP_FILE_URL}"
setTarget "MAPLIBRE" "${BINARY_DIRECTORY}/${MAPLIBRE_ZIP_FILE}" "${MAPLIBRE_ZIP_FILE_URL}"
step "Publishing Swift package…"

View File

@@ -13,7 +13,7 @@ let package = Package(
targets: [
.binaryTarget(
name: "Mapbox",
url: "MAPBOX_PACKAGE_URL",
checksum: "MAPBOX_PACKAGE_CHECKSUM")
url: "MAPLIBRE_PACKAGE_URL",
checksum: "MAPLIBRE_PACKAGE_CHECKSUM")
]
)