Skip to content

Commit

Permalink
Reuse end to end test in settings migration test
Browse files Browse the repository at this point in the history
  • Loading branch information
mojganii committed Oct 29, 2024
1 parent 6d5699e commit 9fb6588
Showing 1 changed file with 64 additions and 100 deletions.
164 changes: 64 additions & 100 deletions .github/workflows/ios-end-to-end-tests-settings-migration.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
---
name: iOS settings migration tests
concurrency:
group: ios-end-to-end-tests
cancel-in-progress: false

permissions:
contents: read
issues: write
pull-requests: write

on:
workflow_dispatch:
schedule:
Expand All @@ -14,113 +17,74 @@ on:
# Github Actions enabled, so these don't go unnoticed.
# https://docs.github.com/en/actions/monitoring-and-troubleshooting-workflows/notifications-for-workflow-runs
- cron: '0 0 * * *'

# Define global environment variables here to make them easy to update
env:
TEST_DEVICE_UDID: 00008130-0019181022F3803A
OLD_APP_COMMIT_HASH: "f82b90126441e9f8afa8c820faa0e5b2c99ecc3e"

jobs:
test:
name: Settings migration end to end tests
runs-on: [self-hosted, macOS, ios-test]
env:
OLD_APP_COMMIT_HASH: 895b7d98825e678f5d7023d5ea3c9b7beee89280
set_commit_hash:
name: Set Commit Hash Environment Variable
runs-on:
- self-hosted
- macOS
- ios-test
outputs:
old_app_commit_hash: ${{ steps.set-hash.outputs.old_app_commit_hash }}
steps:
- name: Configure Rust
uses: actions-rs/toolchain@v1.0.6
with:
toolchain: stable
override: true
target: aarch64-apple-ios
- name: Set OLD_APP_COMMIT_HASH
id: set-hash
run: echo "::set-output name=old_app_commit_hash::${{ env.OLD_APP_COMMIT_HASH }}"

- name: Uninstall app
uninstall_app:
name: Uninstall Old App
runs-on:
- self-hosted
- macOS
- ios-test
needs: set_commit_hash
steps:
- name: Uninstall Old App from Device
timeout-minutes: 5
run: ios-deploy --id ${{ env.TEST_DEVICE_UDID }} --uninstall_only --bundle_id net.mullvad.MullvadVPN

- name: Checkout old repository version
uses: actions/checkout@v4
with:
ref: ${{ env.OLD_APP_COMMIT_HASH }}

- name: Change DNS settings on old app version
uses: ./.github/actions/ios-end-to-end-tests
with:
ios_device_pin_code: ${{ secrets.IOS_DEVICE_PIN_CODE }}
test_device_identifier_uuid: ${{ secrets.IOS_TEST_DEVICE_IDENTIFIER_UUID }}
has_time_account_number: ${{ secrets.IOS_HAS_TIME_ACCOUNT_NUMBER_PRODUCTION }}
no_time_account_number: ${{ secrets.IOS_NO_TIME_ACCOUNT_NUMBER_PRODUCTION }}
test_device_udid: ${{ env.TEST_DEVICE_UDID }}
xcode_test_plan: 'MullvadVPNUITestsChangeDNSSettings'
partner_api_token: ${{ secrets.STAGEMOLE_PARTNER_AUTH }}

- name: Store test report for changing DNS settings
uses: actions/upload-artifact@v4
if: always()
with:
name: test-report-change-dns-settings
path: ios/test-report/junit.xml

- name: Checkout repository to get the current app version
uses: actions/checkout@v4

- name: Verify DNS settings still changed on current app version
uses: ./.github/actions/ios-end-to-end-tests
if: always()
with:
ios_device_pin_code: ${{ secrets.IOS_DEVICE_PIN_CODE }}
test_device_identifier_uuid: ${{ secrets.IOS_TEST_DEVICE_IDENTIFIER_UUID }}
has_time_account_number: ${{ secrets.IOS_HAS_TIME_ACCOUNT_NUMBER_PRODUCTION }}
no_time_account_number: ${{ secrets.IOS_NO_TIME_ACCOUNT_NUMBER_PRODUCTION }}
test_device_udid: ${{ env.TEST_DEVICE_UDID }}
partner_api_token: ${{ secrets.STAGEMOLE_PARTNER_AUTH }}
xcode_test_plan: 'MullvadVPNUITestsVerifyDNSSettingsChanged'

- name: Store test report for verifying DNS settings
uses: actions/upload-artifact@v4
if: always()
with:
name: test-report-verify-dns-settings
path: ios/test-report/junit.xml

- name: Checkout old repository version
uses: actions/checkout@v4
with:
ref: ${{ env.OLD_APP_COMMIT_HASH }}

- name: Change all other settings on old app version
uses: ./.github/actions/ios-end-to-end-tests
if: always()
with:
ios_device_pin_code: ${{ secrets.IOS_DEVICE_PIN_CODE }}
test_device_identifier_uuid: ${{ secrets.IOS_TEST_DEVICE_IDENTIFIER_UUID }}
has_time_account_number: ${{ secrets.IOS_HAS_TIME_ACCOUNT_NUMBER_PRODUCTION }}
no_time_account_number: ${{ secrets.IOS_NO_TIME_ACCOUNT_NUMBER_PRODUCTION }}
test_device_udid: ${{ env.TEST_DEVICE_UDID }}
partner_api_token: ${{ secrets.STAGEMOLE_PARTNER_AUTH }}
xcode_test_plan: 'MullvadVPNUITestsChangeSettings'

- name: Store test report for changing all settings
uses: actions/upload-artifact@v4
if: always()
with:
name: test-report-change-all-other-settings
path: ios/test-report/junit.xml
change_dns_settings:
name: Change DNS Settings on Old App Version
uses: mullvad/mullvadvpn-app/.github/workflows/ios-end-to-end-tests.yml@refactor-ci-script
needs:
- set_commit_hash
- uninstall_app
with:
arg_tests_json_key: "MullvadVPNUITestsChangeDNSSettings"
commit_hash: ${{ needs.set_commit_hash.outputs.old_app_commit_hash }}
secrets: inherit

- name: Checkout repository to get the current app version
uses: actions/checkout@v4
verify_dns_settings:
name: Verify DNS Settings on Current App Version
needs:
- change_dns_settings
uses: mullvad/mullvadvpn-app/.github/workflows/ios-end-to-end-tests.yml@refactor-ci-script
with:
arg_tests_json_key: "MullvadVPNUITestsVerifyDNSSettingsChanged"
secrets: inherit

- name: Verify all other settings still changed on current app version
uses: ./.github/actions/ios-end-to-end-tests
if: always()
with:
ios_device_pin_code: ${{ secrets.IOS_DEVICE_PIN_CODE }}
test_device_identifier_uuid: ${{ secrets.IOS_TEST_DEVICE_IDENTIFIER_UUID }}
has_time_account_number: ${{ secrets.IOS_HAS_TIME_ACCOUNT_NUMBER_PRODUCTION }}
no_time_account_number: ${{ secrets.IOS_NO_TIME_ACCOUNT_NUMBER_PRODUCTION }}
test_device_udid: ${{ env.TEST_DEVICE_UDID }}
partner_api_token: ${{ secrets.STAGEMOLE_PARTNER_AUTH }}
xcode_test_plan: 'MullvadVPNUITestsVerifySettingsChanged'
change_other_settings:
name: Change All Other Settings on Old App Version
needs:
- set_commit_hash
- verify_dns_settings
uses: mullvad/mullvadvpn-app/.github/workflows/ios-end-to-end-tests.yml@refactor-ci-script
with:
arg_tests_json_key: "MullvadVPNUITestsChangeSettings"
commit_hash: ${{ needs.set_commit_hash.outputs.old_app_commit_hash }}
secrets: inherit

- name: Store test report for verifying all other settings
uses: actions/upload-artifact@v4
if: always()
with:
name: test-report-verify-all-other-settings
path: ios/test-report/junit.xml
verify_other_settings:
name: Verify All Other Settings on Current App Version
needs:
- change_other_settings
uses: mullvad/mullvadvpn-app/.github/workflows/ios-end-to-end-tests.yml@refactor-ci-script
with:
arg_tests_json_key: "MullvadVPNUITestsVerifySettingsChanged"
secrets: inherit

0 comments on commit 9fb6588

Please sign in to comment.