Skip to content

Commit

Permalink
test: add coveralls integration (#123)
Browse files Browse the repository at this point in the history
  • Loading branch information
amagyar-iohk authored Mar 28, 2024
1 parent 6455d58 commit 7edc968
Show file tree
Hide file tree
Showing 3 changed files with 72 additions and 9 deletions.
24 changes: 15 additions & 9 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
name: Build
name: Build and test

on:
push:
Expand All @@ -12,6 +12,10 @@ concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

env:
HOMEBREW_NO_AUTO_UPDATE: 1
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1

jobs:
lint:
name: build
Expand All @@ -34,16 +38,18 @@ jobs:
- name: Adding Known Hosts
run: ssh-keyscan -H github.com >> ~/.ssh/known_hosts

- name: Build
- name: Install lcov
run: brew install lcov

- name: Build and test
env:
GITHUB_ACTOR: ${{ github.actor }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: xcodebuild build test -scheme "AtalaPRISMSDK-Package" -destination "platform=iOS Simulator,name=IPhone 14" -resultBundlePath TestResults
run: ./build_test.sh

- name: Publish tests results
uses: kishikawakatsumi/[email protected]
- name: Publish to coveralls
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
uses: coverallsapp/github-action@v2
with:
path: TestResults.xcresult
token: ${{ secrets.GITHUB_TOKEN }}
show-code-coverage: true
if: success() || failure()
file: "lcov.info"
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
[![Coverage Status](https://coveralls.io/repos/github/input-output-hk/atala-prism-wallet-sdk-swift/badge.svg?branch=main)](https://coveralls.io/github/input-output-hk/atala-prism-wallet-sdk-swift?branch=main)

# Welcome to Atala PRISM Swift SDK

The following will explain how to use the SDK in your project, how to prepare your development environment if you wish to contribute and some basic considerations around the project.
Expand Down
55 changes: 55 additions & 0 deletions build_test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
#!/bin/bash

set -e

DERIVED_DATA_DIR="$HOME/.derivedData"
DESTINATION="platform=iOS Simulator,name=IPhone 14"
SCHEME="AtalaPRISMSDK-Package"
LCOV_DIR="$DERIVED_DATA_DIR/lcov"

echo "Derived data directory: $DERIVED_DATA_DIR"
echo "lcov partials directory: $LCOV_DIR"

# Clean derived data dir
echo "Cleaning derived data directory"
rm -rf "$DERIVED_DATA_DIR"
mkdir "$DERIVED_DATA_DIR"

# Clean lcov dir
echo "Cleaning lcov partials directory"
rm -rf "$LCOV_DIR"
mkdir "$LCOV_DIR"

# Run build and test
echo "Running build and test"
xcodebuild -scheme "AtalaPRISMSDK-Package" \
-destination "$DESTINATION" \
-derivedDataPath "$DERIVED_DATA_DIR" \
-enableCodeCoverage YES \
clean build test | xcpretty
echo "Execution completed"

# Find profdata
PROF_DATA=$(find "$DERIVED_DATA_DIR" -name Coverage.profdata)
echo "Profdata found: $PROF_DATA"

# Find all binaries
BINARIES=$(find ~/.derivedData -type f -name "*Tests")

# Print all binaries found
for BINARY in $BINARIES; do
echo "Binary found: $BINARY"
done

# Generate lcov for each target
for BINARY in $BINARIES; do
BASE_NAME=$(basename "$BINARY")
echo "Generating coverage for $BASE_NAME"
LCOV_NAME="${BASE_NAME}.lcov"
xcrun llvm-cov export --format=lcov \
-instr-profile "$PROF_DATA" "$BINARY" > "$LCOV_DIR/$LCOV_NAME"
done

# Merge all coverage
echo "Merging partials to lcov.info"
lcov -o lcov.info -a "$LCOV_DIR/*.lcov" --include AtalaPrismSDK/ --exclude Tests > /dev/null

0 comments on commit 7edc968

Please sign in to comment.