Skip to content

Commit

Permalink
Update settings migration workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
mojganii committed Oct 18, 2024
1 parent 5d881c8 commit e6a8ba5
Show file tree
Hide file tree
Showing 8 changed files with 95 additions and 255 deletions.
171 changes: 65 additions & 106 deletions .github/workflows/ios-end-to-end-tests-settings-migration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,122 +5,81 @@ concurrency:
cancel-in-progress: false
permissions:
contents: read
issues: write
pull-requests: write
on:
workflow_dispatch:
workflow_dispatch: null
schedule:
# At midnight every day.
# Notifications for scheduled workflows are sent to the user who last modified the cron
# syntax in the workflow file. If you update this you must have notifications for
# 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 * * *'
- cron: 0 0 * * *
env:
TEST_DEVICE_UDID: 00008130-0019181022F3803A
OLD_APP_COMMIT_HASH: 895b7d98825e678f5d7023d5ea3c9b7beee89280
jobs:
test:
name: Settings migration end to end tests
runs-on: [self-hosted, macOS, ios-test]
env:
OLD_APP_COMMIT_HASH: 895b7d98825e678f5d7023d5ea3c9b7beee89280
checkout_old_version:
name: Checkout Old Repository Version
runs-on:
- self-hosted
- macOS
- ios-test
steps:
- name: Checkout old repository version
uses: actions/checkout@v4
with:
ref: ${{ env.OLD_APP_COMMIT_HASH }}
configure_rust:
name: Configure Rust
runs-on:
- self-hosted
- macOS
- ios-test
needs: checkout_old_version
steps:
- name: Configure Rust
uses: actions-rs/toolchain@v1.0.6
with:
toolchain: stable
override: true
target: aarch64-apple-ios

- name: Uninstall app
uninstall_app:
name: Uninstall Old App
runs-on:
- self-hosted
- macOS
- ios-test
needs: checkout_old_version
steps:
- name: Uninstall old app
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

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

- 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'

- 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
run: ios-deploy --id ${{ env.TEST_DEVICE_UDID }} --uninstall_only --bundle_id
net.mullvad.MullvadVPN
change_dns_settings:
name: Change DNS Settings on Old App Version
needs:
- checkout_old_version
- configure_rust
- uninstall_app
uses: mullvad/mullvadvpn-app/.github/workflows/ios-end-to-end-tests.yml@main
with:
arg_tests_json_key: "MullvadVPNUITestsChangeDNSSettings"
secrets: inherit
verify_dns_settings:
name: Verify DNS Settings Still Changed on Current App Version
needs: change_dns_settings
uses: mullvad/mullvadvpn-app/.github/workflows/ios-end-to-end-tests.yml@main
with:
arg_tests_json_key: "MullvadVPNUITestsVerifyDNSSettingsChanged"
secrets: inherit
change_other_settings:
name: Change All Other Settings on Old App Version
needs: verify_dns_settings
uses: mullvad/mullvadvpn-app/.github/workflows/ios-end-to-end-tests.yml@main
with:
arg_tests_json_key: "MullvadVPNUITestsChangeSettings"
secrets: inherit
verify_other_settings:
name: Verify All Other Settings Still Changed on Current App Version
needs: change_other_settings
uses: mullvad/mullvadvpn-app/.github/workflows/ios-end-to-end-tests.yml@main
with:
arg_tests_json_key: "MullvadVPNUITestsVerifySettingsChanged"
secrets: inherit
19 changes: 1 addition & 18 deletions ios/MullvadVPN.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -630,10 +630,6 @@
8529693A2B4F0238007EAD4C /* TermsOfServicePage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 852969392B4F0238007EAD4C /* TermsOfServicePage.swift */; };
8529693C2B4F0257007EAD4C /* Alert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8529693B2B4F0257007EAD4C /* Alert.swift */; };
852A26462BA9C9CB006EB9C8 /* DNSSettingsPage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 852A26452BA9C9CB006EB9C8 /* DNSSettingsPage.swift */; };
852BC66F2BAB44F500A47558 /* MullvadVPNUITestsVerifySettingsChanged.xctestplan in Resources */ = {isa = PBXBuildFile; fileRef = 852BC66C2BAB44F500A47558 /* MullvadVPNUITestsVerifySettingsChanged.xctestplan */; };
852BC6702BAB44F500A47558 /* MullvadVPNUITestsChangeSettings.xctestplan in Resources */ = {isa = PBXBuildFile; fileRef = 852BC66D2BAB44F500A47558 /* MullvadVPNUITestsChangeSettings.xctestplan */; };
852BC6712BAB44F500A47558 /* MullvadVPNUITestsVerifyDNSSettingsChanged.xctestplan in Resources */ = {isa = PBXBuildFile; fileRef = 852BC66E2BAB44F500A47558 /* MullvadVPNUITestsVerifyDNSSettingsChanged.xctestplan */; };
852BC6732BAB450B00A47558 /* MullvadVPNUITestsChangeDNSSettings.xctestplan in Resources */ = {isa = PBXBuildFile; fileRef = 852BC6722BAB450B00A47558 /* MullvadVPNUITestsChangeDNSSettings.xctestplan */; };
852D054D2BC3DE3A008578D2 /* APIAccessPage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 852D054C2BC3DE3A008578D2 /* APIAccessPage.swift */; };
852D054F2BC43DF7008578D2 /* AddAccessMethodPage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 852D054E2BC43DF7008578D2 /* AddAccessMethodPage.swift */; };
8532E6872B8CCED600ACECD1 /* ProblemReportSubmittedPage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8532E6862B8CCED600ACECD1 /* ProblemReportSubmittedPage.swift */; };
Expand Down Expand Up @@ -1949,10 +1945,6 @@
852969392B4F0238007EAD4C /* TermsOfServicePage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TermsOfServicePage.swift; sourceTree = "<group>"; };
8529693B2B4F0257007EAD4C /* Alert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Alert.swift; sourceTree = "<group>"; };
852A26452BA9C9CB006EB9C8 /* DNSSettingsPage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DNSSettingsPage.swift; sourceTree = "<group>"; };
852BC66C2BAB44F500A47558 /* MullvadVPNUITestsVerifySettingsChanged.xctestplan */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = MullvadVPNUITestsVerifySettingsChanged.xctestplan; sourceTree = "<group>"; };
852BC66D2BAB44F500A47558 /* MullvadVPNUITestsChangeSettings.xctestplan */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = MullvadVPNUITestsChangeSettings.xctestplan; sourceTree = "<group>"; };
852BC66E2BAB44F500A47558 /* MullvadVPNUITestsVerifyDNSSettingsChanged.xctestplan */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = MullvadVPNUITestsVerifyDNSSettingsChanged.xctestplan; sourceTree = "<group>"; };
852BC6722BAB450B00A47558 /* MullvadVPNUITestsChangeDNSSettings.xctestplan */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = MullvadVPNUITestsChangeDNSSettings.xctestplan; sourceTree = "<group>"; };
852D054C2BC3DE3A008578D2 /* APIAccessPage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIAccessPage.swift; sourceTree = "<group>"; };
852D054E2BC43DF7008578D2 /* AddAccessMethodPage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddAccessMethodPage.swift; sourceTree = "<group>"; };
8532E6862B8CCED600ACECD1 /* ProblemReportSubmittedPage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProblemReportSubmittedPage.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -2799,7 +2791,6 @@
isa = PBXGroup;
children = (
7A9FA1432A2E3FE5000B728D /* CheckableSettingsCell.swift */,
F041BE4E2C983C2B0083EC28 /* DAITASettingsPromptItem.swift */,
7A1A264A2A29D65E00B978AA /* SelectableSettingsCell.swift */,
5819C2162729595500D6EC38 /* SettingsAddDNSEntryCell.swift */,
582BB1AE229566420055B6EF /* SettingsCell.swift */,
Expand All @@ -2813,7 +2804,7 @@
7A42DEC82A05164100B209BE /* SettingsInputCell.swift */,
58677711290976FB006F721F /* SettingsInteractor.swift */,
5867770F290975E8006F721F /* SettingsInteractorFactory.swift */,
F041BE4E2C983C2B0083EC28 /* SettingsPromptAlertItem.swift */,
F041BE4E2C983C2B0083EC28 /* DAITASettingsPromptItem.swift */,
58ACF64A26553C3F00ACE4B7 /* SettingsSwitchCell.swift */,
58CCA01122424D11004F3011 /* SettingsViewController.swift */,
7A27E3CA2CAE86170088BCFF /* SettingsViewModel.swift */,
Expand Down Expand Up @@ -3849,11 +3840,7 @@
7A83C4002A55B81A00DFB83A /* MullvadVPNCI.xctestplan */,
7A02D4EA2A9CEC7A00C19E31 /* MullvadVPNScreenshots.xctestplan */,
852969302B4D9E70007EAD4C /* MullvadVPNUITestsAll.xctestplan */,
852BC6722BAB450B00A47558 /* MullvadVPNUITestsChangeDNSSettings.xctestplan */,
852BC66D2BAB44F500A47558 /* MullvadVPNUITestsChangeSettings.xctestplan */,
85006A8E2B73EF67004AD8FB /* MullvadVPNUITestsSmoke.xctestplan */,
852BC66E2BAB44F500A47558 /* MullvadVPNUITestsVerifyDNSSettingsChanged.xctestplan */,
852BC66C2BAB44F500A47558 /* MullvadVPNUITestsVerifySettingsChanged.xctestplan */,
);
path = TestPlans;
sourceTree = "<group>";
Expand Down Expand Up @@ -5044,10 +5031,6 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
852BC66F2BAB44F500A47558 /* MullvadVPNUITestsVerifySettingsChanged.xctestplan in Resources */,
852BC6712BAB44F500A47558 /* MullvadVPNUITestsVerifyDNSSettingsChanged.xctestplan in Resources */,
852BC6702BAB44F500A47558 /* MullvadVPNUITestsChangeSettings.xctestplan in Resources */,
852BC6732BAB450B00A47558 /* MullvadVPNUITestsChangeDNSSettings.xctestplan in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down
45 changes: 28 additions & 17 deletions ios/MullvadVPNUITests/tests.json
Original file line number Diff line number Diff line change
@@ -1,19 +1,30 @@
{
"tests": {
"nightly": [
"AccountTests",
"ConnectivityTests",
"CustomListsTests",
"RelayTests",
"SettingsTests"
],
"pr-merge-to-main": [
"AccountTests/testLogin",
"AccountTests/testCreateAccount"
],
"api-tests": [
"AccountTests"
]
}
"tests":{
"nightly":[
"AccountTests",
"ConnectivityTests",
"CustomListsTests",
"RelayTests",
"SettingsTests"
],
"pr-merge-to-main":[
"AccountTests/testLogin",
"AccountTests/testCreateAccount"
],
"api-tests":[
"AccountTests"
],
"MullvadVPNUITestsChangeDNSSettings":[
"SettingsMigrationTests/testChangeCustomDNSSettings"
],
"MullvadVPNUITestsVerifyDNSSettingsChanged":[
"SettingsMigrationTests/testVerifyCustomDNSSettingsStillChanged"
],
"MullvadVPNUITestsChangeSettings":[
"SettingsMigrationTests/testChangeVPNSettings"
],
"MullvadVPNUITestsVerifySettingsChanged":[
"SettingsMigrationTests/testVerifySettingsStillChanged"
]
}
}

3 changes: 1 addition & 2 deletions ios/TestPlans/MullvadVPNUITestsAll.xctestplan
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,7 @@
"LoggedInWithTimeUITestCase",
"LoggedInWithoutTimeUITestCase",
"LoggedOutUITestCase",
"ScreenshotTests",
"SettingsMigrationTests"
"ScreenshotTests"
],
"target" : {
"containerPath" : "container:MullvadVPN.xcodeproj",
Expand Down
28 changes: 0 additions & 28 deletions ios/TestPlans/MullvadVPNUITestsChangeDNSSettings.xctestplan

This file was deleted.

28 changes: 0 additions & 28 deletions ios/TestPlans/MullvadVPNUITestsChangeSettings.xctestplan

This file was deleted.

28 changes: 0 additions & 28 deletions ios/TestPlans/MullvadVPNUITestsVerifyDNSSettingsChanged.xctestplan

This file was deleted.

Loading

0 comments on commit e6a8ba5

Please sign in to comment.