From ff012cefa7d5f331f2c8e56affc7c090b368ce28 Mon Sep 17 00:00:00 2001 From: Jon Petersson Date: Wed, 6 Dec 2023 13:03:43 +0100 Subject: [PATCH] Run screenshots action on Github --- .github/workflows/ios-screenshots.yml | 65 +++++++++++++++++++ .github/workflows/ios.yml | 22 ++++++- .../xcschemes/MullvadVPNScreenshots.xcscheme | 2 +- ios/Snapfile | 7 +- 4 files changed, 90 insertions(+), 6 deletions(-) create mode 100644 .github/workflows/ios-screenshots.yml diff --git a/.github/workflows/ios-screenshots.yml b/.github/workflows/ios-screenshots.yml new file mode 100644 index 000000000000..c426340de456 --- /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 5f4342002dc0..0e2bbbbf6942 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,22 @@ 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/ + + # - name: Run screenshot tests + # run: | + # 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 bd48a92aef4a..9e2f37241665 100644 --- a/ios/MullvadVPN.xcodeproj/xcshareddata/xcschemes/MullvadVPNScreenshots.xcscheme +++ b/ios/MullvadVPN.xcodeproj/xcshareddata/xcschemes/MullvadVPNScreenshots.xcscheme @@ -23,7 +23,7 @@