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

Fix screenshots test #5558

Merged
merged 2 commits into from
Dec 8, 2023
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
65 changes: 65 additions & 0 deletions .github/workflows/ios-screenshots.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
---
name: iOS screenshots
on:
push:
tags:
- ios/*
workflow_dispatch:
jobs:
test:
name: Take screenshots
runs-on: macos-13-xlarge
env:
SOURCE_PACKAGES_PATH: .spm
TEST_ACCOUNT: ${{ secrets.IOS_TEST_ACCOUNT_NUMBER }}
steps:
- name: Checkout repository
uses: actions/checkout@v3

- name: Configure cache
uses: actions/cache@v3
with:
path: ios/${{ env.SOURCE_PACKAGES_PATH }}
key: ${{ runner.os }}-spm-${{ hashFiles('ios/**/Package.resolved') }}
restore-keys: |
${{ runner.os }}-spm-

- name: Setup go-lang
uses: actions/setup-go@v3
with:
go-version: 1.19.5

- name: Set up yeetd to workaround XCode being slow in CI
run: |
wget https://github.com/biscuitehh/yeetd/releases/download/1.0/yeetd-normal.pkg
sudo installer -pkg yeetd-normal.pkg -target /
yeetd &
- name: Configure Xcode
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '15.0.1'
- name: Configure Rust
run: rustup target add aarch64-apple-ios-sim x86_64-apple-ios

- name: Configure Xcode project
run: |
cp Base.xcconfig.template Base.xcconfig
cp App.xcconfig.template App.xcconfig
cp PacketTunnel.xcconfig.template PacketTunnel.xcconfig
cp Screenshots.xcconfig.template Screenshots.xcconfig
sed -i "" "s/MULLVAD_ACCOUNT_TOKEN = /MULLVAD_ACCOUNT_TOKEN = $TEST_ACCOUNT/g" Screenshots.xcconfig
working-directory: ios/Configurations

- name: Bundle
run: bundle install
working-directory: ios

- name: Create screenshots
run: bundle exec fastlane snapshot
working-directory: ios

- name: Upload screenshot artifacts
uses: actions/upload-artifact@v3
with:
name: ios-screenshots
path: ios/Screenshots
11 changes: 10 additions & 1 deletion .github/workflows/ios.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ jobs:
runs-on: macos-13-xlarge
env:
SOURCE_PACKAGES_PATH: .spm
TEST_ACCOUNT: ${{ secrets.IOS_TEST_ACCOUNT_NUMBER }}
steps:
- name: Checkout repository
uses: actions/checkout@v3
Expand Down Expand Up @@ -81,14 +82,15 @@ jobs:
cp App.xcconfig.template App.xcconfig
cp PacketTunnel.xcconfig.template PacketTunnel.xcconfig
cp Screenshots.xcconfig.template Screenshots.xcconfig
sed -i "" "s/MULLVAD_ACCOUNT_TOKEN = /MULLVAD_ACCOUNT_TOKEN = $TEST_ACCOUNT/g" Screenshots.xcconfig
working-directory: ios/Configurations

- name: Install xcbeautify
run: |
brew update
brew install xcbeautify

- name: Run tests
- name: Run unit tests
run: |
set -o pipefail && env NSUnbufferedIO=YES xcodebuild \
-project MullvadVPN.xcodeproj \
Expand All @@ -97,4 +99,11 @@ jobs:
-destination "platform=iOS Simulator,name=iPhone 15" \
-clonedSourcePackagesDirPath "$SOURCE_PACKAGES_PATH" \
test 2>&1 | xcbeautify
set -o pipefail && env NSUnbufferedIO=YES xcodebuild \
-project MullvadVPN.xcodeproj \
-scheme MullvadVPN \
-testPlan MullvadVPNScreenshots \
-destination "platform=iOS Simulator,name=iPhone 15" \
-clonedSourcePackagesDirPath "$SOURCE_PACKAGES_PATH" \
test 2>&1 | xcbeautify
working-directory: ios/
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
buildConfiguration = "Release"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ class SettingsHeaderView: UITableViewHeaderFooterView {
let collapseButton: UIButton = {
let button = UIButton(type: .custom)
button.accessibilityIdentifier = "CollapseButton"
button.isAccessibilityElement = false
button.tintColor = .white
return button
}()
Expand Down
10 changes: 8 additions & 2 deletions ios/MullvadVPNScreenshots/MullvadVPNScreenshots.swift
Original file line number Diff line number Diff line change
Expand Up @@ -87,8 +87,14 @@ class MullvadVPNScreenshots: XCTestCase {
cityCell.buttons["CollapseButton"].tap()
snapshot("SelectLocation")

// Tap the "Done" button to dismiss the "Select location" controller
app.navigationBars.buttons.firstMatch.tap()
// Tap the "Filter" button and expand each relay filter
app.navigationBars.buttons["Filter"].tap()
app.otherElements["Ownership"].buttons["CollapseButton"].tap()
app.otherElements["Providers"].buttons["CollapseButton"].tap()
snapshot("RelayFilter")

app.navigationBars.buttons["Cancel"].tap()
app.navigationBars.buttons["Done"].tap()
}

// Open Settings
Expand Down
8 changes: 4 additions & 4 deletions ios/Snapfile
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# A list of devices you want to take the screenshots from
devices([
"iPhone 8 Plus", # 5.5"
"iPhone 11 Pro Max", # 6.5"
"iPhone 14 Pro Max", # 6.7"
"iPad Pro (12.9-inch) (2nd generation)",
"iPhone SE (3rd generation)",
"iPhone 15 Pro",
"iPhone 15 Pro Max",
"iPad Pro (11-inch) (4th generation)",
"iPad Pro (12.9-inch) (6th generation)"
])

Expand Down
Loading