e - cancel any in-progress workflows #85
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: Build | |
on: | |
push: | |
branches: [ main ] | |
pull_request: | |
branches: [ main ] | |
concurrency: | |
# Cancel any in-progress workflows for this workflow/branch combination. | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
env: | |
project: Source/OCMockito.xcodeproj | |
jobs: | |
build: | |
name: Build without tests | |
runs-on: macos-13 | |
strategy: | |
matrix: | |
run-config: | |
- { scheme: 'OCMockito-iOS', sdk: 'iphonesimulator', destination: 'platform=iOS Simulator,OS=latest,name=iPhone 14' } | |
- { scheme: 'OCMockito-tvOS', sdk: 'appletvsimulator', destination: 'platform=tvOS Simulator,OS=latest,name=Apple TV' } | |
- { scheme: 'OCMockito-watchOS', sdk: 'watchsimulator', destination: 'platform=watchOS Simulator,OS=latest,name=Apple Watch Series 6 (44mm)' } | |
steps: | |
- name: Check out project | |
uses: actions/checkout@v4 | |
- name: Set up Xcode version | |
uses: maxim-lobanov/[email protected] | |
with: | |
xcode-version: '14.3' | |
- name: Show current version of Xcode | |
run: xcodebuild -version | |
- name: Get OCHamcrest | |
run: Frameworks/gethamcrest | |
- name: Build | |
run: xcodebuild build -project '${{ env.project }}' -scheme '${{ matrix.run-config['scheme'] }}' -sdk '${{ matrix.run-config['sdk'] }}' -destination '${{ matrix.run-config['destination'] }}' | xcpretty && exit ${PIPESTATUS[0]} | |
test: | |
name: Build, test, report coverage | |
runs-on: macos-13 | |
env: | |
scheme: 'OCMockito' | |
sdk: 'macosx' | |
steps: | |
- name: Check out project | |
uses: actions/checkout@v4 | |
- name: Set up Xcode version | |
uses: maxim-lobanov/[email protected] | |
with: | |
xcode-version: '14.3' | |
- name: Show current version of Xcode | |
run: xcodebuild -version | |
- name: Get OCHamcrest | |
run: Frameworks/gethamcrest | |
- name: Build & test | |
run: xcodebuild test -project '${{ env.project }}' -scheme '${{ env.scheme }}' -sdk '${{ env.sdk }}' | xcpretty && exit ${PIPESTATUS[0]} | |
- name: Install gems | |
run: | | |
bundle config path vendor/bundle | |
bundle config set --local without 'documentation' | |
bundle install --jobs 4 --retry 3 | |
- name: Extract branch name | |
shell: bash | |
run: echo "branch=$(echo ${GITHUB_REF#refs/heads/})" >> $GITHUB_OUTPUT | |
id: get_branch | |
- name: Report coverage | |
run: bundle exec slather | |
env: | |
GIT_BRANCH: ${{ steps.get_branch.outputs.branch }} | |
CI_PULL_REQUEST: ${{ github.event.number }} | |
COVERAGE_ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
buildSwiftPackage: | |
needs: [ build, test ] | |
name: Build Swift package | |
runs-on: macos-13 | |
steps: | |
- name: Check out project | |
uses: actions/checkout@v4 | |
- name: Set up Xcode version | |
uses: maxim-lobanov/[email protected] | |
with: | |
xcode-version: '14.3' | |
- name: Build | |
run: cd Source; swift build -v | |
buildCarthage: | |
needs: [ build, test ] | |
name: Build Carthage | |
runs-on: macos-13 | |
steps: | |
- name: Check out project | |
uses: actions/checkout@v4 | |
- name: Set up Xcode version | |
uses: maxim-lobanov/[email protected] | |
with: | |
xcode-version: '14.3' | |
- name: Show current version of Xcode | |
run: xcodebuild -version | |
- name: Show current version of Carthage | |
run: carthage version | |
- name: Update dependencies | |
run: carthage update --use-xcframeworks | |
- name: Build | |
run: carthage build --configuration Release --no-skip-current --use-xcframeworks | |
podspec: | |
needs: [ build, test ] | |
name: Pod Spec Lint | |
runs-on: macos-13 | |
steps: | |
- name: Check out project | |
uses: actions/checkout@v4 | |
- name: Show current version of CocoaPods | |
run: pod --version | |
- name: Lint the pod spec | |
run: pod spec lint --quick | |
auto-merge: | |
needs: [ buildSwiftPackage, buildCarthage, podspec ] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out repo | |
uses: actions/checkout@v4 | |
- name: auto-merge | |
if: | | |
github.actor == 'dependabot[bot]' && | |
github.event_name == 'pull_request' | |
run: | | |
./merge_dependabot.sh | |
env: | |
PR_URL: ${{github.event.pull_request.html_url}} | |
# this secret needs to be in the settings.secrets.dependabot | |
GITHUB_TOKEN: ${{secrets.GH_ACTION_TOKEN}} |