Skip to content

Commit 46f3002

Browse files
committed
report build size to EmergeTools
1 parent 924064f commit 46f3002

File tree

4 files changed

+88
-4
lines changed

4 files changed

+88
-4
lines changed

.github/build.sh

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
#!/bin/bash
2+
3+
set -e
4+
5+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd -P)"
6+
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
7+
8+
PROJECT_BUILD_DIR="${PROJECT_BUILD_DIR:-"${PROJECT_ROOT}/build"}"
9+
XCODEBUILD_BUILD_DIR="$PROJECT_BUILD_DIR/xcodebuild"
10+
XCODEBUILD_DERIVED_DATA_PATH="$XCODEBUILD_BUILD_DIR/DerivedData"
11+
12+
build_framework() {
13+
local sdk="$1"
14+
local destination="$2"
15+
local scheme="$3"
16+
17+
local XCODEBUILD_ARCHIVE_PATH="./$scheme-$sdk.xcarchive"
18+
19+
rm -rf "$XCODEBUILD_ARCHIVE_PATH"
20+
21+
xcodebuild archive \
22+
-scheme "$scheme" \
23+
-archivePath "$XCODEBUILD_ARCHIVE_PATH" \
24+
-derivedDataPath "$XCODEBUILD_DERIVED_DATA_PATH" \
25+
-sdk "$sdk" \
26+
-destination "$destination" \
27+
BUILD_LIBRARY_FOR_DISTRIBUTION=YES \
28+
INSTALL_PATH='Library/Frameworks' \
29+
OTHER_SWIFT_FLAGS=-no-verify-emitted-module-interface \
30+
LD_GENERATE_MAP_FILE=YES
31+
32+
FRAMEWORK_MODULES_PATH="$XCODEBUILD_ARCHIVE_PATH/Products/Library/Frameworks/$scheme.framework/Modules"
33+
mkdir -p "$FRAMEWORK_MODULES_PATH"
34+
cp -r \
35+
"$XCODEBUILD_DERIVED_DATA_PATH/Build/Intermediates.noindex/ArchiveIntermediates/$scheme/BuildProductsPath/Release-$sdk/$scheme.swiftmodule" \
36+
"$FRAMEWORK_MODULES_PATH/$scheme.swiftmodule"
37+
# Delete private swiftinterface
38+
rm -f "$FRAMEWORK_MODULES_PATH/$scheme.swiftmodule/*.private.swiftinterface"
39+
mkdir -p "$scheme-$sdk.xcarchive/LinkMaps"
40+
find "$XCODEBUILD_DERIVED_DATA_PATH" -name "$scheme-LinkMap-*.txt" -exec cp {} "./$scheme-$sdk.xcarchive/LinkMaps/" \;
41+
}
42+
43+
# Update the Package.swift to build the library as dynamic instead of static
44+
sed -i '' 's/type: \.static/type: .dynamic/g' Package.swift
45+
46+
build_framework "iphoneos" "generic/platform=iOS" "OpenAI"
47+
build_framework "iphonesimulator" "generic/platform=iOS Simulator" "OpenAI"
48+
49+
echo "Builds completed successfully."
50+
51+
rm -rf "OpenAI.xcframework"
52+
xcodebuild -create-xcframework -framework OpenAI-iphonesimulator.xcarchive/Products/Library/Frameworks/OpenAI.framework -framework OpenAI-iphoneos.xcarchive/Products/Library/Frameworks/OpenAI.framework -output OpenAI.xcframework
53+
54+
cp -r OpenAI-iphoneos.xcarchive/dSYMs OpenAI.xcframework/ios-arm64
55+
cp -r OpenAI-iphonesimulator.xcarchive/dSYMs OpenAI.xcframework/ios-arm64_x86_64-simulator

.github/workflows/build.yml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: Build
2+
on:
3+
push:
4+
branches: [main]
5+
6+
jobs:
7+
build:
8+
name: Swift 6.0
9+
runs-on: macos-latest
10+
steps:
11+
- uses: actions/checkout@v4
12+
13+
- uses: maxim-lobanov/setup-xcode@v1
14+
with:
15+
xcode-version: latest-stable
16+
17+
- name: Build
18+
run: ./.github/build.sh
19+
20+
- run: zip -r ./OpenAI.xcframework.zip ./OpenAI.xcframework
21+
22+
- name: Upload artifact to Emerge
23+
uses: EmergeTools/[email protected]
24+
with:
25+
build_type: release
26+
artifact_path: ./OpenAI.xcframework.zip
27+
emerge_api_key: ${{ secrets.EMERGE_API_KEY }}

.gitignore

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
.DS_Store
1+
.netrc
22
/.build
3+
.DS_Store
34
/Packages
5+
*.xcarchive
46
xcuserdata/
57
DerivedData/
8+
*.xcframework
9+
Package.resolved
610
.swiftpm/configuration/registries.json
711
.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata
8-
.netrc
9-
Package.resolved

Package.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ let package = Package(
1313
.macCatalyst(.v17),
1414
],
1515
products: [
16-
.library(name: "OpenAI", targets: ["OpenAI"]),
16+
.library(name: "OpenAI", type: .static, targets: ["OpenAI"]),
1717
],
1818
targets: [
1919
.target(name: "OpenAI", path: "./src"),

0 commit comments

Comments
 (0)