Fix BSK tests (#126) #188
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: Test Implementations | |
on: | |
push: | |
branches: [ main ] | |
paths-ignore: | |
- '**.md' | |
pull_request: | |
paths-ignore: | |
- '**.md' | |
jobs: | |
extension-mv2: | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
path: 'reference-tests' | |
- uses: actions/checkout@v3 | |
with: | |
repository: 'duckduckgo/duckduckgo-privacy-extension' | |
path: 'extension' | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
cache: 'npm' | |
cache-dependency-path: 'extension/package-lock.json' | |
- run: cd reference-tests && npm link | |
- name: Setup Extension | |
working-directory: ./extension | |
run: | | |
npm run install-ci | |
npm link @duckduckgo/privacy-reference-tests | |
- name: Test Extension (MV2) | |
working-directory: ./extension | |
run: | | |
npm test | |
ddg2dnr: | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
path: 'reference-tests' | |
- uses: actions/checkout@v3 | |
with: | |
repository: 'duckduckgo/duckduckgo-privacy-extension' | |
path: 'extension' | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
cache: 'npm' | |
cache-dependency-path: 'extension/package-lock.json' | |
- run: cd reference-tests && npm link | |
- name: Setup Extension | |
working-directory: ./extension | |
run: | | |
npm run install-ci | |
npm link @duckduckgo/privacy-reference-tests | |
- name: Test ddg2dnr (MV3) | |
working-directory: ./extension/packages/ddg2dnr | |
run: npm test -- --grep Reference | |
BrowserServicesKit: | |
name: BSK unit tests | |
runs-on: macos-13 | |
timeout-minutes: 30 | |
steps: | |
- name: Check out the code | |
uses: actions/checkout@v3 | |
with: | |
repository: 'duckduckgo/BrowserServicesKit' | |
path: 'BrowserServicesKit' | |
submodules: recursive | |
- name: Check out the tests | |
uses: actions/checkout@v3 | |
with: | |
path: 'BrowserServicesKit/Tests/BrowserServicesKitTests/Resources/privacy-reference-tests' | |
- name: Set cache key hash | |
working-directory: ./BrowserServicesKit | |
run: | | |
has_only_tags=$(jq '[ .pins[].state | has("version") ] | all' Package.resolved) | |
if [[ "$has_only_tags" == "true" ]]; then | |
echo "cache_key_hash=${{ hashFiles('Package.resolved') }}" >> $GITHUB_ENV | |
else | |
echo "Package.resolved contains dependencies specified by branch or commit, skipping cache." | |
fi | |
- name: Cache SPM | |
if: env.cache_key_hash | |
uses: actions/cache@v3 | |
with: | |
path: ./BrowserServicesKit/build | |
key: ${{ runner.os }}-spm-${{ env.cache_key_hash }} | |
restore-keys: | | |
${{ runner.os }}-spm- | |
- name: Select Xcode | |
run: sudo xcode-select -s /Applications/Xcode_$(<BrowserServicesKit/.xcode-version).app/Contents/Developer | |
- name: Install xcbeautify | |
continue-on-error: true | |
run: brew install xcbeautify | |
- name: Run tests | |
working-directory: ./BrowserServicesKit | |
run: set -o pipefail && swift test | tee build-log.txt | xcbeautify --report junit --report-path . --junit-report-filename tests.xml | |
- name: Publish Unit Tests Report | |
uses: mikepenz/action-junit-report@v3 | |
if: always() | |
with: | |
check_name: BSK Test Report | |
report_paths: ./BrowserServicesKit/tests.xml | |
require_tests: true | |
- name: Upload logs | |
uses: actions/upload-artifact@v3 | |
if: always() | |
with: | |
name: build-log.txt | |
path: ./BrowserServicesKit/build-log.txt |