Merge pull request #17 from sybri/fix/service-filtering #84
Workflow file for this run
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: New Release on Tag Push | |
on: | |
push: | |
tags: | |
- '*.*.*' | |
jobs: | |
get_tag_info: | |
runs-on: ubuntu-latest | |
outputs: | |
tag_name: ${{ steps.get_tag_name.outputs.tag_name }} | |
tag_message: ${{ steps.get_tag_message.outputs.tag_message }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Get Tag Name | |
id: get_tag_name | |
run: | | |
echo "tag_name=${{ github.ref_name }}" >> $GITHUB_OUTPUT | |
echo "Tag Name: ${{ github.ref_name }}" | |
- name: Get Tag Message | |
id: get_tag_message | |
run: | | |
git fetch --depth=1 origin +refs/tags/*:refs/tags/* | |
tm=$(git tag -l --format='%(contents:subject)' ${{ steps.get_tag_name.outputs.tag_name }}) | |
echo "Tag Message: $tm" | |
echo "tag_message=$tm" >> $GITHUB_OUTPUT | |
- name: Print Output | |
run: | | |
echo "Tag Name: ${{ steps.get_tag_name.outputs.tag_name }}" | |
echo "Tag Message: ${{ steps.get_tag_message.outputs.tag_message }}" | |
run_copy_script: | |
runs-on: macos-latest | |
needs: get_tag_info | |
permissions: | |
contents: write | |
outputs: | |
changes_made: ${{ steps.check_changes.outputs.changes_made }} | |
working_branch: ${{ steps.check_changes.outputs.working_branch }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Run copy script | |
run: | | |
python3 code_gen/code_gen.py Sources | |
- name: Reindent Code | |
run: | | |
brew install mint | |
mint install apple/swift-format@release/5.7 | |
mint run apple/swift-format@release/5.7 -i -r Sources/iOS-BLE-Library-Mock --configuration format.swift-format | |
- name: Check for Changes | |
id: check_changes | |
run: | | |
if [ -n "$(git status --porcelain)" ]; then | |
echo "changes_made=true" >> $GITHUB_OUTPUT | |
# echo "working_branch=release/${{ needs.get_tag_info.outputs.tag_name }}" >> $GITHUB_OUTPUT | |
echo "working_branch=main" >> $GITHUB_OUTPUT | |
else | |
echo "changes_made=false" >> $GITHUB_OUTPUT | |
echo "working_branch=main" >> $GITHUB_OUTPUT | |
fi | |
- name: Add & Commit | |
if: steps.check_changes.outputs.changes_made == 'true' | |
uses: stefanzweifel/git-auto-commit-action@v4 | |
with: | |
commit_message: 'Copied files from native CoreBluetooth version to CoreBluetoothMock' | |
branch: ${{ steps.check_changes.outputs.working_branch }} | |
- name: Move Tag | |
if: steps.check_changes.outputs.changes_made == 'true' | |
run: | | |
git tag -d "${{ needs.get_tag_info.outputs.tag_name }}" | |
git push origin :refs/tags/${{ needs.get_tag_info.outputs.tag_name }} | |
git tag -a ${{ needs.get_tag_info.outputs.tag_name }} -m "${{ needs.get_tag_info.outputs.tag_message }}" | |
git push origin ${{ needs.get_tag_info.outputs.tag_name }} | |
build_and_test: | |
runs-on: macos-latest | |
needs: [run_copy_script, get_tag_info] | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ needs.get_tag_info.outputs.tag_name }} | |
- name: Print Xcode Version | |
run: xcodebuild -version | |
- uses: swift-actions/setup-swift@v1 | |
- name: Get swift version | |
run: swift --version # Swift 5.8.1 | |
- name: Print Swift Version | |
run: xcrun swift -version | |
- name: Build Native | |
run: swift build --target iOS-BLE-Library | |
- name: Build Mock | |
run: swift build --target iOS-BLE-Library-Mock | |
# Tests temporarily disabled | |
# - name: Test | |
# run: swift test -v --skip-build | |
pod_release: | |
needs: [get_tag_info, build_and_test, run_copy_script] | |
runs-on: macos-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ needs.run_copy_script.outputs.working_branch }} | |
- name: Setup Ruby | |
uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: 2.7 | |
- name: Install CocoaPods | |
run: | | |
sudo bundle install | |
- name: Deploy IOS-BLE-Library to Cocoapods | |
run: | | |
pod lib lint IOS-BLE-Library.podspec --allow-warnings | |
pod trunk push IOS-BLE-Library.podspec --allow-warnings | |
env: | |
COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }} | |
LIB_VERSION: ${{ needs.get_tag_info.outputs.tag_name }} | |
- name: Deploy IOS-BLE-Library-Mock to Cocoapods | |
run: | | |
pod lib lint IOS-BLE-Library-Mock.podspec --allow-warnings | |
pod trunk push IOS-BLE-Library-Mock.podspec --allow-warnings | |
env: | |
COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }} | |
LIB_VERSION: ${{ needs.get_tag_info.outputs.tag_name }} | |
create_release: | |
permissions: | |
contents: write | |
needs: [get_tag_info, pod_release] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Create Release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: ${{ needs.get_tag_info.outputs.tag_name }} | |
release_name: Release ${{ needs.get_tag_info.outputs.tag_name }} | |
body: ${{ needs.get_tag_info.outputs.tag_message }} |