Release SDK #31
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 SDK | |
on: | |
workflow_dispatch: | |
inputs: | |
version: | |
description: "Version to release" | |
required: true | |
jobs: | |
release: | |
name: Release | |
runs-on: macOS-13 | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Use Xcode 15.1 | |
run: sudo xcode-select -switch /Applications/Xcode_15.1.app | |
- name: Check for unreleased section in changelog | |
run: grep "## unreleased" CHANGELOG.md || (echo "::error::No unreleased section found in CHANGELOG" && exit 1) | |
- name: Set git username and email | |
run: | | |
git config user.name paypalsdks | |
git config user.email sdks@paypal.com | |
- name: Update version | |
run: | | |
today=$(date +'%Y-%m-%d') | |
sed -i '' 's/## unreleased.*/## '"${{ github.event.inputs.version }}"' ('"$today"')/' CHANGELOG.md | |
sed -i '' 's/\(s\.version *= *\).*/\1"'"${{ github.event.inputs.version }}"'\"/' PayPal.podspec | |
sed -i '' 's/payPalSDKVersion: String =.*/payPalSDKVersion: String = "${{ github.event.inputs.version }}"/' Sources/CorePayments/PayPalCoreConstants.swift | |
plutil -replace CFBundleShortVersionString -string ${{ github.event.inputs.version }} -- 'Demo/Demo/Info.plist' | |
git add . | |
git commit -m 'Bump version to ${{ github.event.inputs.version }}' | |
git tag ${{ github.event.inputs.version }} -a -m 'Release ${{ github.event.inputs.version }}' | |
- name: Push commits and tag | |
run: git push origin HEAD ${{ github.event.inputs.version }} | |
- name: Save changelog entries to a file | |
run: sed -e '1,/##/d' -e '/##/,$d' CHANGELOG.md > changelog_entries.md | |
- name: Create GitHub 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 }} | |
body_path: changelog_entries.md | |
draft: false | |
prerelease: false | |
- name: Publish to CocoaPods | |
env: | |
COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }} | |
run: pod trunk push PayPal.podspec |