Skip to content

Nightly Test and Deploy #768

Nightly Test and Deploy

Nightly Test and Deploy #768

Workflow file for this run

name: Nightly Test and Deploy
on:
schedule:
- cron: '0 2 * * *' # Run at 2 AM UTC
jobs:
atb-ui-tests:
name: ATB UI Tests
runs-on: macos-14-xlarge
timeout-minutes: 30
steps:
- name: Check out the code
uses: actions/checkout@v3
with:
submodules: recursive
- name: Set cache key hash
run: |
has_only_tags=$(jq '[ .pins[].state | has("version") ] | all' DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved)
if [[ "$has_only_tags" == "true" ]]; then
echo "cache_key_hash=${{ hashFiles('DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/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: DerivedData/SourcePackages
key: ${{ runner.os }}-spm-${{ env.cache_key_hash }}
restore-keys: |
${{ runner.os }}-spm-
- name: Install xcbeautify
run: brew install xcbeautify
- name: Select Xcode
run: sudo xcode-select -s /Applications/Xcode_$(<.xcode-version).app/Contents/Developer
- name: Build and test
run: |
set -o pipefail && xcodebuild test \
-scheme "AtbUITests" \
-destination "platform=iOS Simulator,name=iPhone 16,OS=18.1" \
-derivedDataPath "DerivedData" \
-skipPackagePluginValidation \
-skipMacroValidation \
| tee xcodebuild.log \
| xcbeautify --report junit --report-path . --junit-report-filename unittests.xml
- name: Upload logs if workflow failed
uses: actions/upload-artifact@v4
if: failure() || cancelled()
with:
name: BuildLogs
path: |
xcodebuild.log
DerivedData/Logs/Test/*.xcresult
retention-days: 7
- name: Publish unit tests report
uses: mikepenz/action-junit-report@v3
with:
report_paths: unittests.xml
fingerprinting-ui-tests:
name: Fingerprinting UI Tests
runs-on: macos-14-xlarge
timeout-minutes: 30
steps:
- name: Check out the code
uses: actions/checkout@v3
with:
submodules: recursive
- name: Install xcbeautify
run: brew install xcbeautify
- name: Select Xcode
run: sudo xcode-select -s /Applications/Xcode_$(<.xcode-version).app/Contents/Developer
- name: Build and test
run: |
set -o pipefail && xcodebuild test \
-scheme "FingerprintingUITests" \
-destination "platform=iOS Simulator,name=iPhone 16,OS=18.1" \
-derivedDataPath "DerivedData" \
-skipPackagePluginValidation \
-skipMacroValidation \
| xcbeautify --report junit --report-path . --junit-report-filename unittests.xml
- name: Publish unit tests report
uses: mikepenz/action-junit-report@v3
with:
report_paths: unittests.xml
deploy-alpha:
name: Deploy Nightly Alpha Build
uses: ./.github/workflows/alpha.yml
with:
destination: "Nightly Alpha Group"
secrets:
APPLE_API_KEY_BASE64: ${{ secrets.APPLE_API_KEY_BASE64 }}
APPLE_API_KEY_ID: ${{ secrets.APPLE_API_KEY_ID }}
APPLE_API_KEY_ISSUER: ${{ secrets.APPLE_API_KEY_ISSUER }}
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
SSH_PRIVATE_KEY_FASTLANE_MATCH: ${{ secrets.SSH_PRIVATE_KEY_FASTLANE_MATCH }}
ASANA_ACCESS_TOKEN: ${{ secrets.ASANA_ACCESS_TOKEN }}