Release #25
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 14.3.1 | |
run: | | |
sudo xcode-select -switch /Applications/Xcode_14.3.1.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: 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: 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 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 | |
- 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 | |