forked from niochat/MatrixSDK
-
Notifications
You must be signed in to change notification settings - Fork 1
106 lines (90 loc) · 4.98 KB
/
build.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
name: Build and Release
on:
workflow_dispatch:
inputs:
version:
description: 'Version to release'
required: true
default: 'v0.0.0'
jobs:
build:
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: Checkout matrix-ios-sdk
uses: actions/checkout@v2
with:
repository: matrix-org/matrix-ios-sdk
ref: ${{ github.event.inputs.version }}
path: matrix-ios-sdk
- name: Install Pods
working-directory: matrix-ios-sdk
run: pod install
- name: Build for iOS
working-directory: matrix-ios-sdk
run: xcodebuild archive -workspace MatrixSDK.xcworkspace -scheme MatrixSDK-iOS -destination "generic/platform=iOS" -archivePath build/MatrixSDK-iOS SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES IPHONEOS_DEPLOYMENT_TARGET=11.0 GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS=NO
- name: Build for Simulator
working-directory: matrix-ios-sdk
run: xcodebuild archive -workspace MatrixSDK.xcworkspace -scheme MatrixSDK-iOS -destination "generic/platform=iOS Simulator" -archivePath build/MatrixSDK-iOSSimulator SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES IPHONEOS_DEPLOYMENT_TARGET=11.0 GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS=NO
- name: Build for macOS
working-directory: matrix-ios-sdk
run: xcodebuild archive -workspace MatrixSDK.xcworkspace -scheme MatrixSDK-macOS -destination "generic/platform=macOS" -archivePath build/MatrixSDK-macOS SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES MACOSX_DEPLOYMENT_TARGET=10.12 GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS=NO
- name: Set Bundle Version
working-directory: matrix-ios-sdk/build
run: |
VERSION=${{ github.event.inputs.version }}
SHORT_VERSION=${VERSION#v}
plutil -insert CFBundleShortVersionString -string $SHORT_VERSION MatrixSDK-iOS.xcarchive/Products/Library/Frameworks/MatrixSDK.framework/Info.plist
plutil -insert CFBundleShortVersionString -string $SHORT_VERSION MatrixSDK-iOSSimulator.xcarchive/Products/Library/Frameworks/MatrixSDK.framework/Info.plist
plutil -insert CFBundleShortVersionString -string $SHORT_VERSION MatrixSDK-macOS.xcarchive/Products/Library/Frameworks/MatrixSDK.framework/Resources/Info.plist
plutil -insert CFBundleVersion -string $GITHUB_RUN_NUMBER MatrixSDK-iOS.xcarchive/Products/Library/Frameworks/MatrixSDK.framework/Info.plist
plutil -insert CFBundleVersion -string $GITHUB_RUN_NUMBER MatrixSDK-iOSSimulator.xcarchive/Products/Library/Frameworks/MatrixSDK.framework/Info.plist
plutil -insert CFBundleVersion -string $GITHUB_RUN_NUMBER MatrixSDK-macOS.xcarchive/Products/Library/Frameworks/MatrixSDK.framework/Resources/Info.plist
- name: Make XCFramework
working-directory: matrix-ios-sdk/build
run: |
xcodebuild -create-xcframework -framework MatrixSDK-iOS.xcarchive/Products/Library/Frameworks/MatrixSDK.framework -framework MatrixSDK-iOSSimulator.xcarchive/Products/Library/Frameworks/MatrixSDK.framework -framework MatrixSDK-macOS.xcarchive/Products/Library/Frameworks/MatrixSDK.framework -output MatrixSDK.xcframework
zip -ry MatrixSDK.xcframework.zip MatrixSDK.xcframework
- name: Update Package Manifest
run: |
swift package compute-checksum matrix-ios-sdk/build/MatrixSDK.xcframework.zip > checksum
CHECKSUM=$(cat checksum)
cat checksum
swift generate-package.swift "https://github.com/${{ github.repository_owner }}/MatrixSDK/releases/download/${{ github.event.inputs.version }}/MatrixSDK.xcframework.zip" "$CHECKSUM"
- name: Push and Tag
run: |
git config user.name github-actions
git config user.email github-actions@github.com
git add Package.swift
git commit -m "Release ${{ github.event.inputs.version }}"
git push
git tag ${{ github.event.inputs.version }}
git push origin ${{ github.event.inputs.version }}
- name: Create Release
id: create-release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.event.inputs.version }}
release_name: ${{ github.event.inputs.version }}
draft: false
prerelease: false
- name: Upload XCFramework
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create-release.outputs.upload_url }}
asset_path: matrix-ios-sdk/build/MatrixSDK.xcframework.zip
asset_name: MatrixSDK.xcframework.zip
asset_content_type: application/zip
- name: Upload Checksum
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create-release.outputs.upload_url }}
asset_path: checksum
asset_name: MatrixSDK.xcframework.zip.checksum
asset_content_type: text/plain