.github/workflows/CodeClimateCoverage.yml
name: master # Also the name of the badge displayed in README.md
on:
push:
branches:
- master
jobs:
upload_code_coverage:
name: Upload Code Coverage
runs-on: macOS-latest
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Shared Values
id: shared
uses: jemmons/SharedValuesAction@v1
- name: Cache CodeClimate Test Reporter
id: cc_cache
uses: actions/cache@v1
with:
path: ${{ steps.shared.outputs.ccDirectory }}
key: CCTestReporter-${{ runner.OS }}-CC${{ steps.shared.outputs.ccVersion }}
restore-keys: |
CCTestReporter-${{ runner.OS }}-
- name: Fetch CodeClimate Test Reporter
if: steps.cc_cache.outputs.cache-hit != 'true'
run: |
mkdir -p ${{ steps.shared.outputs.ccDirectory }}
curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-${{ steps.shared.outputs.ccVersion }}-darwin-amd64 > ${{ steps.shared.outputs.ccPath }}
chmod +x ${{ steps.shared.outputs.ccPath }}
- name: Cache Build
uses: actions/cache@v1
with:
path: ${{ steps.shared.outputs.buildCachePath }}
key: xcodebuild-${{ runner.OS }}-swift${{ steps.shared.outputs.swiftVersion }}-${{ hashFiles('Sources/**/*.swift') }}
restore-keys: |
xcodebuild-${{ runner.OS }}-swift${{ steps.shared.outputs.swiftVersion }}-
xcodebuild-${{ runner.OS }}-
- name: Test Reporter Before
run: ${{ steps.shared.outputs.ccPath }} before-build
- name: Build
run: xcodebuild build-for-testing -scheme ${{ steps.shared.outputs.project }} -enableCodeCoverage YES -derivedDataPath ${{ steps.shared.outputs.buildCachePath }}
- name: Test
run: xcodebuild test-without-building -scheme ${{ steps.shared.outputs.project }} -enableCodeCoverage YES -derivedDataPath ${{ steps.shared.outputs.buildCachePath }} -resultBundleVersion 3 -resultBundlePath ${{ steps.shared.outputs.resultPath }}
- name: Parse Coverage
uses: jemmons/GenerateXCCovJSONAction@v1
with:
resultfile: ${{ steps.shared.outputs.resultPath }}
outputpath: coverage.json
targets: ${{ steps.shared.outputs.project }}
- name: Test Reporter Format and Upload
run: ${{ steps.shared.outputs.ccPath }} after-build -t xccov -r ${{ secrets.CODECLIMATE_TOKEN }}
env:
GIT_COMMIT_SHA: ${{github.sha}}
GIT_BRANCH: master