Skip to content
This repository was archived by the owner on Mar 23, 2025. It is now read-only.

Send test coverages to Code Climate #306

Merged
merged 15 commits into from
Jun 5, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
100 changes: 84 additions & 16 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,31 @@
name: Test
on:
- push
defaults:
run:
shell: bash # to enable pipefail
env:
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
CC_TEST_REPORTER_URL: https://codeclimate.com/downloads/test-reporter/test-reporter-0.6.3-linux-amd64
DEVELOPER_DIR: "/Applications/Xcode_12.4.app/Contents/Developer"
jobs:
prepare-test:
runs-on: ubuntu-18.04
steps:
- uses: actions/cache@v2
id: cache-cc-test-reporter
with:
path: cc-test-reporter
key: ${{ env.CC_TEST_REPORTER_URL }}
- name: Install dependencies
if: steps.cache-cc-test-reporter.outputs.cache-hit != 'true'
run: |
curl -LSso cc-test-reporter ${{ env.CC_TEST_REPORTER_URL }}
chmod +x cc-test-reporter
- name: Notify before build
run: ./cc-test-reporter before-build
unit-test:
needs: prepare-test
runs-on: macOS-10.15
env:
DEVELOPER_DIR: "/Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer"
Expand All @@ -30,51 +53,74 @@ jobs:
- uses: actions/checkout@v2
- name: Modify Cartfile.resolved
run: sed -i '' -E '/apollographql\/apollo-ios/s/"[0-9.]+"/"${{ matrix.apollo }}"/' Cartfile.resolved
- name: Install dependencies
- uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6
bundler-cache: true
env:
BUNDLE_WITHOUT: development:documentation
- uses: actions/cache@v2
id: cache-carthage-build
with:
path: Carthage/Build
key: ${{ matrix.platform }}-${{ hashFiles('Cartfile.resolved') }}
- name: Install Carthage dependencies
if: steps.cache-carthage-build.outputs.cache-hit != 'true'
run: |
carthage checkout
( cd Carthage/Checkouts/apollo-ios && swift package resolve ) # Workaround for Carthage's timeout error while reading xcodeproj.
carthage build --platform '${{ matrix.platform }}' --use-xcframeworks --no-use-binaries
- name: Run unit tests
run: xcodebuild test -project ApolloDeveloperKit.xcodeproj -scheme ApolloDeveloperKit -sdk '${{ matrix.sdk }}' -destination '${{ matrix.destination }}' | xcpretty
shell: bash # to enable pipefail
run: xcodebuild test -project ApolloDeveloperKit.xcodeproj -scheme ApolloDeveloperKit -sdk '${{ matrix.sdk }}' -destination '${{ matrix.destination }}' | bundle exec xcpretty
- name: Collect coverages
run: bundle exec slather coverage -x --scheme ApolloDeveloperKit ApolloDeveloperKit.xcodeproj
- uses: actions/upload-artifact@v2
with:
name: coverage
path: cobertura.xml
install-test:
runs-on: macOS-10.15
env:
DEVELOPER_DIR: "/Applications/Xcode_12.app/Contents/Developer"
steps:
- uses: actions/checkout@v2
- uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6
bundler-cache: true
env:
BUNDLE_WITHOUT: development:documentation
- name: Run install tests
run: make -C InstallTests carthage
run: bundle exec make -C InstallTests carthage
swiftpm-test:
runs-on: macOS-10.15
env:
DEVELOPER_DIR: "/Applications/Xcode_12.4.app/Contents/Developer"
steps:
- uses: actions/checkout@v2
- name: Run unit tests
run: swift test
lint-podspec:
runs-on: macOS-10.15
env:
BUNDLE_JOBS: 4
BUNDLE_RETRY: 3
BUNDLE_WITHOUT: documentation:test
DEVELOPER_DIR: "/Applications/Xcode_12.app/Contents/Developer"
steps:
- uses: actions/checkout@v2
- name: Install dependencies
run: bundle install
- uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6
bundler-cache: true
env:
BUNDLE_WITHOUT: documentation:test
- name: Lint podspec
run: bundle exec pod lib lint --verbose
frontend-test:
needs: prepare-test
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- name: Install dependencies
run: npm install
- name: Run frontend tests
run: npm test
run: npm test -- --coverage
- uses: actions/upload-artifact@v2
with:
name: coverage
path: coverage/clover.xml
frontend-rebuild:
runs-on: ubuntu-18.04
steps:
Expand All @@ -87,3 +133,25 @@ jobs:
run: npm run build
- name: Check differences
run: git diff --exit-code .
report-coverages:
needs:
- unit-test
- frontend-test
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
with:
path: cc-test-reporter
key: ${{ env.CC_TEST_REPORTER_URL }}
- uses: actions/download-artifact@v2
with:
name: coverage
path: coverage
- name: Sum coverages
run: |
./cc-test-reporter format-coverage --input-type=cobertura --output=coverage/unit-test.json coverage/cobertura.xml
./cc-test-reporter format-coverage --input-type=clover --output=coverage/frontend-test.json coverage/clover.xml
./cc-test-reporter sum-coverage coverage/unit-test.json coverage/frontend-test.json
- name: Upload coverages
run: ./cc-test-reporter upload-coverage
1 change: 1 addition & 0 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,6 @@ group :documentation do
end

group :test do
gem 'slather'
gem 'xcpretty'
end
13 changes: 13 additions & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ GEM
json (>= 1.5.1)
atomos (0.1.3)
claide (1.0.3)
clamp (1.3.2)
cocoapods (1.9.3)
activesupport (>= 4.0.2, < 5)
claide (>= 1.0.2, < 2.0)
Expand Down Expand Up @@ -72,18 +73,29 @@ GEM
xcinvoke (~> 0.3.0)
json (2.3.1)
liferaft (0.0.6)
mini_portile2 (2.5.3)
minitest (5.14.1)
molinillo (0.6.6)
mustache (1.1.1)
nanaimo (0.3.0)
nap (1.1.0)
netrc (0.11.0)
nokogiri (1.11.7)
mini_portile2 (~> 2.5.0)
racc (~> 1.4)
open4 (1.3.4)
racc (1.5.2)
redcarpet (3.5.1)
rouge (2.0.7)
ruby-macho (1.4.0)
sassc (2.4.0)
ffi (~> 1.9)
slather (2.7.1)
CFPropertyList (>= 2.2, < 4)
activesupport
clamp (~> 1.3)
nokogiri (~> 1.11)
xcodeproj (~> 1.7)
sqlite3 (1.4.2)
thread_safe (0.3.6)
typhoeus (1.4.0)
Expand All @@ -107,6 +119,7 @@ PLATFORMS
DEPENDENCIES
cocoapods
jazzy
slather
xcpretty

BUNDLED WITH
Expand Down