Skip to content

Commit

Permalink
Add workflows
Browse files Browse the repository at this point in the history
  • Loading branch information
levieggertcru committed Jul 17, 2024
1 parent 647e461 commit 201af9b
Show file tree
Hide file tree
Showing 4 changed files with 269 additions and 136 deletions.
136 changes: 0 additions & 136 deletions .github/workflows/build.yml

This file was deleted.

177 changes: 177 additions & 0 deletions .github/workflows/create-version.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,177 @@
name: Create Version

on:
push:
branches: [ main, releases/* ]
pull_request:
branches: [ main, releases/* ]

workflow_dispatch:
inputs:
versionIncrementType:
description: 'Version Increment Type'
required: true
default: 'patch'
type: choice
options:
- patch
- minor
- major
- manual
manualVersionNumber:
description: 'Manually Enter Version Number (Requires manual Version Increment Type)'
required: false
type: string

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:

version_increment_is_bump:
name: Check If Version Increment Is Bump
runs-on: ubuntu-latest
if: github.event_name == 'workflow_dispatch'
outputs:
isBump: ${{ steps.check_if_increment_is_bump.outputs.value }}
steps:
- name: Check If Version Increment Is Bump
id: check_if_increment_is_bump
run: |
if [ ${{ inputs.versionIncrementType }} == 'patch' ]; then
echo "value=true" >> "$GITHUB_OUTPUT"
elif [ ${{ inputs.versionIncrementType }} == 'minor' ]; then
echo "value=true" >> "$GITHUB_OUTPUT"
elif [ ${{ inputs.versionIncrementType }} == 'major' ]; then
echo "value=true" >> "$GITHUB_OUTPUT"
else
echo echo "value=false" >> "$GITHUB_OUTPUT"
fi
current_version:
name: Store Current Version
runs-on: ubuntu-latest
if: github.event_name == 'workflow_dispatch'
outputs:
version: ${{ steps.version.outputs.version }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set Version Output
id: version
run: |
echo "version=$(grep -m 1 MARKETING_VERSION godtools.xcodeproj/project.pbxproj | sed 's/;//g' | sed 's/ //g' | sed 's/=//g' | sed 's/MARKETING_VERSION//g' | sed 's/^ *//g' | sed 's/^[[:space:]]*//g')" >> $GITHUB_OUTPUT
print_current_version:
name: Print Current Version
runs-on: ubuntu-latest
needs: [ current_version ]
steps:
- name: Print Current Version
env:
VERSION: ${{ needs.current_version.outputs.version }}
run: |
printf '%s\n' "$VERSION"
bump_version:
name: Store Bump Version
runs-on: ubuntu-latest
outputs:
version: ${{ steps.version.outputs.version }}
needs: [ current_version, version_increment_is_bump ]
steps:
- name: Bump Version
if: ${{ needs.version_increment_is_bump.outputs.isBump == 'true' }}
id: bump-semver
uses: actions-ecosystem/action-bump-semver@v1
with:
current_version: ${{ needs.current_version.outputs.version }}
level: ${{ inputs.versionIncrementType }}
- name: Store Bump Version
id: version
run: |
echo "version=${{ steps.bump-semver.outputs.new_version }}" >> $GITHUB_OUTPUT
print_bump_version:
name: Print Bump Version
runs-on: ubuntu-latest
needs: [ bump_version, version_increment_is_bump ]
if: ${{ needs.version_increment_is_bump.outputs.isBump == 'true' }}
steps:
- name: Print Bump Version
env:
VERSION: ${{ needs.bump_version.outputs.version }}
run: |
printf '%s\n' "$VERSION"
manual_version:
name: Store Manual Version
runs-on: ubuntu-latest
outputs:
version: ${{ steps.version.outputs.version }}
if: inputs.versionIncrementType == 'manual'
steps:
- name: Store Manual Version
id: version
run: |
echo "version=${{ inputs.manualVersionNumber }}" >> $GITHUB_OUTPUT
print_manual_version:
name: Print Manual Version
runs-on: ubuntu-latest
needs: [ manual_version ]
if: inputs.versionIncrementType == 'manual'
steps:
- name: Print Manual Version
env:
VERSION: ${{ needs.manual_version.outputs.version }}
run: |
printf '%s\n' "$VERSION"
new_version:
name: Store New Version
runs-on: ubuntu-latest
needs: [ version_increment_is_bump, bump_version ]
if: ${{ needs.version_increment_is_bump.outputs.isBump == 'true' || inputs.versionIncrementType == 'manual' }}
outputs:
version: ${{ steps.version.outputs.version }}
steps:
- name: Store New Version
id: version
run: |
if [ ${{ needs.version_increment_is_bump.outputs.isBump }} == 'true' ]; then
echo "version=${{ needs.bump_version.outputs.version }}" >> $GITHUB_OUTPUT
elif [ ${{ inputs.versionIncrementType }} == 'manual' ]; then
echo "version=${{ inputs.manualVersionNumber }}" >> $GITHUB_OUTPUT
else
echo "No Version"
fi
print_new_version:
name: Print New Version
runs-on: ubuntu-latest
needs: [ new_version ]
steps:
- name: Print New Version
env:
VERSION: ${{ needs.new_version.outputs.version }}
run: |
printf '%s\n' "$VERSION"
create_version_branch_and_pull_request:
name: Create Version Branch and PR
runs-on: ubuntu-latest
needs: [ current_version, new_version ]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set Podspec Version to New Version
run: |
sed -i "s/MARKETING_VERSION = ${{ needs.current_version.outputs.version }}/MARKETING_VERSION = ${{ needs.new_version.outputs.version }}/g" godtools.xcodeproj/project.pbxproj
- name: Create Version Branch and PR
uses: peter-evans/create-pull-request@v6
with:
branch: "versions/${{ needs.new_version.outputs.version }}"
title: "Version ${{needs.new_version.outputs.version}}"
commit-message: "Increase version to ${{needs.new_version.outputs.version}}"
46 changes: 46 additions & 0 deletions .github/workflows/run-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Run Tests

on:
push:
branches: [ develop, master, feature/*, releases/* ]
pull_request:
branches: [ develop, master, feature/*, releases/* ]

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
run_tests:
runs-on: macos-14
env:
FASTLANE_XCODEBUILD_SETTINGS_TIMEOUT: 60

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Pod Install
uses: ./.github/actions/pod-install

- name: Run Tests and Generate Code Coverage Report (.xcresult)
run: bundle exec fastlane cru_shared_lane_run_tests output_directory:fastlane_scan_output_directory result_bundle:true reset_simulator:true should_clear_derived_data:true

- name: Upload Xcode Code Coverage Report to CodeCov
uses: codecov/codecov-action@v4
with:
fail_ci_if_error: true
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true
xcode: true
xcode_archive_path: /Users/runner/work/godtools-swift/godtools-swift/fastlane_scan_output_directory/GodTools-Production.xcresult

# - name: Archive XCode Logs
# if: always()
# uses: actions/upload-artifact@v4
# with:
# name: xcode-logs
# path: "/Users/runner/Library/Developer/Xcode/DerivedData/Logs/godtools-*/**"
Loading

0 comments on commit 201af9b

Please sign in to comment.