Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test: add coveralls integration #123

Merged
merged 3 commits into from
Mar 28, 2024
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
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
Loading