-
Notifications
You must be signed in to change notification settings - Fork 4
130 lines (116 loc) · 3.95 KB
/
test.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
name: Test Implementations
# If this job is failing, check if there were any updates to
# https://github.com/duckduckgo/BrowserServicesKit/blob/main/.github/workflows/pr.yml
on:
push:
branches: [ main ]
paths-ignore:
- '**.md'
pull_request:
paths-ignore:
- '**.md'
jobs:
extension-mv2:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
with:
path: 'reference-tests'
- uses: actions/checkout@v4
with:
repository: 'duckduckgo/duckduckgo-privacy-extension'
path: 'extension'
- uses: actions/setup-node@v4
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@v4
with:
path: 'reference-tests'
- uses: actions/checkout@v4
with:
repository: 'duckduckgo/duckduckgo-privacy-extension'
path: 'extension'
- uses: actions/setup-node@v4
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-14
timeout-minutes: 30
steps:
- name: Check out the code
uses: actions/checkout@v4
with:
repository: 'duckduckgo/BrowserServicesKit'
path: 'BrowserServicesKit'
submodules: recursive
- name: Check out the tests
uses: actions/checkout@v4
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@v4
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: Build BSK
run: set -o pipefail && swift build | tee build-log.txt | xcbeautify
- name: Run tests
working-directory: ./BrowserServicesKit
run: set -o pipefail && swift test | tee -a build-log.txt | xcbeautify --report junit --report-path . --junit-report-filename tests.xml
- name: Publish Unit Tests Report
uses: mikepenz/action-junit-report@v4
if: always()
with:
check_name: BSK Test Report
report_paths: ./BrowserServicesKit/tests.xml
require_tests: true
- name: Upload logs
uses: actions/upload-artifact@v4
if: always()
with:
name: build-log.txt
path: ./BrowserServicesKit/build-log.txt