summaryrefslogtreecommitdiffhomepage
path: root/.github
diff options
context:
space:
mode:
authorBug Magnet <marco.nikic@mullvad.net>2024-02-27 08:49:13 +0100
committerBug Magnet <marco.nikic@mullvad.net>2024-02-27 08:49:13 +0100
commitb04a45035cb42501ac81fd4e9202c2cb4abcb162 (patch)
tree86687e551b07d5dbc166977067f53078f24954bb /.github
parentc28989c9a00d22d209cb9d24b9362e67530dbf1b (diff)
parentc3c9d36f27affba415e72585c27bb8827aee6286 (diff)
downloadmullvadvpn-b04a45035cb42501ac81fd4e9202c2cb4abcb162.tar.xz
mullvadvpn-b04a45035cb42501ac81fd4e9202c2cb4abcb162.zip
Merge branch 'set-up-a-github-actions-runner-on-the-macbook-ios-484'
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/ios-end-to-end-tests.yml80
1 files changed, 80 insertions, 0 deletions
diff --git a/.github/workflows/ios-end-to-end-tests.yml b/.github/workflows/ios-end-to-end-tests.yml
new file mode 100644
index 0000000000..28da6da122
--- /dev/null
+++ b/.github/workflows/ios-end-to-end-tests.yml
@@ -0,0 +1,80 @@
+---
+name: iOS end-to-end tests
+permissions:
+ contents: read
+ issues: write
+ pull-requests: write
+on:
+ pull_request:
+ types:
+ - closed
+ branches:
+ - main
+ workflow_dispatch:
+jobs:
+ test:
+ if: github.event.pull_request.merged || github.event_name == 'workflow_dispatch'
+ name: End to end tests
+ runs-on: [self-hosted, macOS, ios-test]
+ env:
+ IOS_DEVICE_PIN_CODE: ${{ secrets.IOS_DEVICE_PIN_CODE }}
+ TEST_DEVICE_IDENTIFIER_UUID: ${{ secrets.IOS_TEST_DEVICE_IDENTIFIER_UUID }}
+ TEST_DEVICE_UDID: ${{ secrets.IOS_TEST_DEVICE_UDID }}
+ HAS_TIME_ACCOUNT_NUMBER: ${{ secrets.IOS_HAS_TIME_ACCOUNT_NUMBER }}
+ NO_TIME_ACCOUNT_NUMBER: ${{ secrets.IOS_NO_TIME_ACCOUNT_NUMBER }}
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+
+ - name: Configure Rust
+ run: rustup target install aarch64-apple-ios aarch64-apple-ios-sim
+
+ - name: Configure Xcode project
+ run: |
+ for file in *.xcconfig.template ; do cp $file ${file//.template/} ; done
+ sed -i "" \
+ "/MULLVAD_IOS_DEVICE_PIN_CODE =/ s/= .*/= $IOS_DEVICE_PIN_CODE/" \
+ UITests.xcconfig
+ sed -i "" \
+ "/MULLVAD_TEST_DEVICE_IDENTIFIER_UUID =/ s/= .*/= $TEST_DEVICE_IDENTIFIER_UUID/" \
+ UITests.xcconfig
+ sed -i "" \
+ "/MULLVAD_HAS_TIME_ACCOUNT_NUMBER =/ s/= .*/= $HAS_TIME_ACCOUNT_NUMBER/" \
+ UITests.xcconfig
+ sed -i "" \
+ "/MULLVAD_NO_TIME_ACCOUNT_NUMBER =/ s/= .*/= $NO_TIME_ACCOUNT_NUMBER/" \
+ UITests.xcconfig
+ working-directory: ios/Configurations
+
+ - name: Run end-to-end-tests
+ run: |
+ set -o pipefail && env NSUnbufferedIO=YES xcodebuild \
+ -project MullvadVPN.xcodeproj \
+ -scheme MullvadVPNUITests \
+ -testPlan MullvadVPNUITestsSmoke \
+ -destination "platform=iOS,id=$TEST_DEVICE_UDID" \
+ test 2>&1 | xcbeautify --report junit --report-path test-report
+ working-directory: ios/
+
+ - name: Comment PR on test failure
+ if: failure() && github.event_name != 'workflow_dispatch'
+ uses: actions/github-script@v7
+ with:
+ github-token: ${{secrets.GITHUB_TOKEN}}
+ script: |
+ const issue_number = context.issue.number;
+ const run_id = context.runId;
+ const run_url = `https://github.com/${context.repo.owner}/${context.repo.repo}/actions/runs/${run_id}`;
+ github.rest.issues.createComment({
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ issue_number: issue_number,
+ body: `🚨 End to end tests failed. Please check the [failed workflow run](${run_url}).`
+ });
+
+ - name: Store test report artifact
+ if: always()
+ uses: actions/upload-artifact@v4
+ with:
+ name: test-report
+ path: ios/test-report/junit.xml