Release #36
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: xrOS 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 | |
- name: Show Installed Simulators | |
run: xcrun simctl list | |
# remove this step after update the os runner to 15 | |
- name: Install visionOS simulator | |
run: xcodebuild -downloadPlatform visionOS | |
- name: Show Installed Simulators | |
run: xcrun simctl list | |
- name: Show Installed Simulators | |
run: xcodebuild -showsdks | |
- name: Validate Podfile | |
run: pod --version | |
# - name: Setup Cocoapods | |
# uses: maxim-lobanov/[email protected] | |
# with: | |
# version: latest | |
- name: Validate Podfile after reinstall | |
run: pod --version | |
- 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 | |