Release #41
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: Release | |
on: | |
workflow_dispatch: | |
inputs: | |
dryRun: | |
description: "Do a dry run to preview instead of a real release" | |
required: true | |
default: "true" | |
jobs: | |
authorize: | |
name: Authorize | |
runs-on: macos-latest | |
steps: | |
- name: ${{ github.actor }} permission check to do a release | |
uses: octokit/[email protected] | |
with: | |
route: GET /repos/:repository/collaborators/${{ github.actor }} | |
repository: ${{ github.repository }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
release: | |
name: Release | |
runs-on: macos-latest | |
needs: [authorize] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Set Xcode 15.4 | |
run: | | |
sudo xcode-select -switch /Applications/Xcode_15.4.app | |
- name: iOS Build | |
run: | | |
xcodebuild \ | |
-project AnalyticsConnector.xcodeproj \ | |
-scheme AnalyticsConnector \ | |
-sdk iphonesimulator \ | |
-destination 'platform=iOS Simulator,name=iPhone 12,OS=15.5' | |
- name: macOS Build | |
run: | | |
xcodebuild \ | |
-project AnalyticsConnector.xcodeproj \ | |
-scheme AnalyticsConnector \ | |
-sdk macosx \ | |
-destination 'platform=macosx' \ | |
- name: tvOS Build | |
run: | | |
xcodebuild \ | |
-project AnalyticsConnector.xcodeproj \ | |
-scheme AnalyticsConnector \ | |
-sdk appletvsimulator \ | |
-destination 'platform=tvOS Simulator,name=Apple TV' \ | |
- name: visionOS Build | |
run: | | |
xcodebuild \ | |
-project AnalyticsConnector.xcodeproj \ | |
-scheme AnalyticsConnector \ | |
-sdk xrsimulator \ | |
-destination 'platform=visionOS Simulator,name=Apple Vision Pro' \ | |
- name: iOS Tests | |
run: | | |
xcodebuild test \ | |
-project AnalyticsConnector.xcodeproj \ | |
-scheme AnalyticsConnector \ | |
-sdk iphonesimulator \ | |
-destination 'platform=iOS Simulator,name=iPhone 12,OS=15.5' | |
- name: macOS Tests | |
run: | | |
xcodebuild \ | |
-project AnalyticsConnector.xcodeproj \ | |
-scheme AnalyticsConnector \ | |
-sdk macosx \ | |
-destination 'platform=macosx' \ | |
test | |
- name: tvOS Tests | |
run: | | |
xcodebuild \ | |
-project AnalyticsConnector.xcodeproj \ | |
-scheme AnalyticsConnector \ | |
-sdk appletvsimulator \ | |
-destination 'platform=tvOS Simulator,name=Apple TV' \ | |
test | |
- name: visionOS Tests | |
run: | | |
xcodebuild \ | |
-project AnalyticsConnector.xcodeproj \ | |
-scheme AnalyticsConnector \ | |
-sdk xrsimulator \ | |
-destination 'platform=visionOS Simulator,name=Apple Vision Pro' \ | |
test | |
# Install missing sdk for pod lint | |
# Remove this step after the runner upgraded to macos-15 | |
- name: Install visionOS simulator | |
run: xcodebuild -downloadPlatform visionOS -quiet | |
- name: Validate Podfile | |
run: pod lib lint --allow-warnings | |
- name: Build xcframework | |
run: scripts/build_framework.sh | |
- name: Zip xcframework | |
working-directory: .build/artifacts | |
run: zip -r -y AnalyticsConnector.xcframework.zip AnalyticsConnector.xcframework | |
- name: Update Checksum | |
run: | | |
CHECKSUM=$(xcrun swift package compute-checksum .build/artifacts/AnalyticsConnector.xcframework.zip) && \ | |
sed -i '' -E "s/(checksum: \")[^\"]*(\")/\1$CHECKSUM\2/" Package.swift && \ | |
sed -i '' -E "s/(checksum: \")[^\"]*(\")/\1$CHECKSUM\2/" [email protected] | |
- name: Semantic Release --dry-run | |
if: ${{ github.event.inputs.dryRun == 'true'}} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }} | |
GIT_AUTHOR_NAME: amplitude-sdk-bot | |
GIT_AUTHOR_EMAIL: [email protected] | |
GIT_COMMITTER_NAME: amplitude-sdk-bot | |
GIT_COMMITTER_EMAIL: [email protected] | |
run: | | |
npx \ | |
-p lodash \ | |
-p semantic-release \ | |
-p @semantic-release/changelog \ | |
-p @semantic-release/git \ | |
-p @google/semantic-release-replace-plugin \ | |
-p @semantic-release/exec \ | |
semantic-release --dry-run | |
- name: Semantic Release | |
if: ${{ github.event.inputs.dryRun == 'false'}} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }} | |
GIT_AUTHOR_NAME: amplitude-sdk-bot | |
GIT_AUTHOR_EMAIL: [email protected] | |
GIT_COMMITTER_NAME: amplitude-sdk-bot | |
GIT_COMMITTER_EMAIL: [email protected] | |
run: | | |
npx \ | |
-p lodash \ | |
-p semantic-release \ | |
-p @semantic-release/changelog \ | |
-p @semantic-release/git \ | |
-p @google/semantic-release-replace-plugin \ | |
-p @semantic-release/exec \ | |
semantic-release | |