Skip to content

Release

Release #141

Workflow file for this run

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-12
steps:
- name: ${{ github.actor }} permission check to do a release
uses: octokit/request-action@v2.1.9
with:
route: GET /repos/:repository/collaborators/${{ github.actor }}
repository: ${{ github.repository }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
release:
name: Release
runs-on: macos-12
needs: [authorize]
strategy:
matrix:
ruby-version: ["2.7"]
node-version: ["16.x"]
steps:
- name: Checkout Amplitude-iOS
uses: actions/checkout@v2
- name: Set Xcode 14
run: |
sudo xcode-select -switch /Applications/Xcode_14.1.app
- name: Carthage Bootstrap
run: carthage bootstrap --use-xcframeworks
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby-version }}
- name: Install Cocoapods
run: |
gem install bundler -v 2.4.22
bundle config path vendor/bundle
bundle install
pod install
- name: iOS Tests
run: |
xcodebuild test \
-workspace Amplitude.xcworkspace \
-scheme Amplitude_iOSTests \
-sdk iphonesimulator \
-destination 'platform=iOS Simulator,name=iPhone 14'
# - name: macOS Tests @TODO Fix flaky macOS tests and re-enable
# run: |
# xcodebuild \
# -workspace Amplitude.xcworkspace \
# -scheme Amplitude_macOS \
# -sdk macosx \
# -destination 'platform=macosx' \
# test
- name: tvOS Tests
run: |
xcodebuild \
-workspace Amplitude.xcworkspace \
-scheme Amplitude_tvOS \
-sdk appletvsimulator \
-destination 'platform=tvOS Simulator,name=Apple TV' \
test
- name: Validate Podfile
run: pod lib lint
- name: Setup Node.js
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Checkout Amplitude-iOS gh-pages for building docs
uses: actions/checkout@v2
with:
ref: "gh-pages"
path: "Amplitude-iOS-gh-pages"
- name: Install appledoc binary
run: |
git clone https://github.com/amplitude/appledoc
cd appledoc/
sudo sh install-appledoc.sh
cd ../
sudo rm -rf appledoc/
- 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: amplitude-sdk-bot@users.noreply.github.com
GIT_COMMITTER_NAME: amplitude-sdk-bot
GIT_COMMITTER_EMAIL: amplitude-sdk-bot@users.noreply.github.com
run: |
npx \
-p lodash \
-p semantic-release@17 \
-p @semantic-release/changelog@5 \
-p @semantic-release/git@9 \
-p @google/semantic-release-replace-plugin@1.2.0 \
-p @semantic-release/exec@5 \
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: amplitude-sdk-bot@users.noreply.github.com
GIT_COMMITTER_NAME: amplitude-sdk-bot
GIT_COMMITTER_EMAIL: amplitude-sdk-bot@users.noreply.github.com
run: |
npx \
-p lodash \
-p semantic-release@17 \
-p @semantic-release/changelog@5 \
-p @semantic-release/git@9 \
-p @google/semantic-release-replace-plugin@1.2.0 \
-p @semantic-release/exec@5 \
semantic-release