summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJon Petersson <jon.petersson@kvadrat.se>2023-12-06 13:03:43 +0100
committerBug Magnet <marco.nikic@mullvad.net>2023-12-08 15:52:29 +0100
commita4d678b4409dfdc959c62987c6385bc0581b91c2 (patch)
tree2b2a99f4eb45fe9f92423e9b3a85254b4508a9f7
parent881c4c4b0b517708f058010a616d9bef271df39a (diff)
downloadmullvadvpn-a4d678b4409dfdc959c62987c6385bc0581b91c2.tar.xz
mullvadvpn-a4d678b4409dfdc959c62987c6385bc0581b91c2.zip
Run screenshots action on Github
-rw-r--r--.github/workflows/ios-screenshots.yml65
-rw-r--r--.github/workflows/ios.yml11
-rw-r--r--ios/MullvadVPN.xcodeproj/xcshareddata/xcschemes/MullvadVPNScreenshots.xcscheme2
-rw-r--r--ios/Snapfile8
4 files changed, 80 insertions, 6 deletions
diff --git a/.github/workflows/ios-screenshots.yml b/.github/workflows/ios-screenshots.yml
new file mode 100644
index 0000000000..5453e84500
--- /dev/null
+++ b/.github/workflows/ios-screenshots.yml
@@ -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
diff --git a/.github/workflows/ios.yml b/.github/workflows/ios.yml
index cf1941a165..a76a674eaa 100644
--- a/.github/workflows/ios.yml
+++ b/.github/workflows/ios.yml
@@ -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
@@ -81,6 +82,7 @@ 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
@@ -88,7 +90,7 @@ jobs:
brew update
brew install xcbeautify
- - name: Run tests
+ - name: Run unit tests
run: |
set -o pipefail && env NSUnbufferedIO=YES xcodebuild \
-project MullvadVPN.xcodeproj \
@@ -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/
diff --git a/ios/MullvadVPN.xcodeproj/xcshareddata/xcschemes/MullvadVPNScreenshots.xcscheme b/ios/MullvadVPN.xcodeproj/xcshareddata/xcschemes/MullvadVPNScreenshots.xcscheme
index bd48a92aef..9e2f372416 100644
--- a/ios/MullvadVPN.xcodeproj/xcshareddata/xcschemes/MullvadVPNScreenshots.xcscheme
+++ b/ios/MullvadVPN.xcodeproj/xcshareddata/xcschemes/MullvadVPNScreenshots.xcscheme
@@ -23,7 +23,7 @@
</BuildActionEntries>
</BuildAction>
<TestAction
- buildConfiguration = "Debug"
+ buildConfiguration = "Release"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
diff --git a/ios/Snapfile b/ios/Snapfile
index a3be439b60..95dd009cf7 100644
--- a/ios/Snapfile
+++ b/ios/Snapfile
@@ -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)"
])