Skip to content

build(deps-dev): bump nuxt from 3.21.9 to 4.5.0 in /waltid-applications/waltid-credentials #1245

build(deps-dev): bump nuxt from 3.21.9 to 4.5.0 in /waltid-applications/waltid-credentials

build(deps-dev): bump nuxt from 3.21.9 to 4.5.0 in /waltid-applications/waltid-credentials #1245

Workflow file for this run

name: iOS build and test
on:
workflow_dispatch:
pull_request:
types: [opened, synchronize, reopened, ready_for_review, converted_to_draft, labeled, unlabeled]
push:
branches: [main]
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
permissions:
contents: read
pull-requests: read
env:
XCODE_DEVELOPER_DIR: /Applications/Xcode_26.6.app/Contents/Developer
IOS_SIMULATOR_DESTINATION: platform=iOS Simulator,name=iPhone 17,OS=latest
jobs:
macos-eligibility:
uses: ./.github/workflows/macos-eligibility.yml
with:
event-name: ${{ github.event_name }}
ref: ${{ github.ref }}
pr-number: ${{ github.event.pull_request.number || '' }}
pr-head-repo: ${{ github.event.pull_request.head.repo.full_name || '' }}
pr-labels: ${{ toJson(github.event.pull_request.labels.*.name) }}
pr-draft: ${{ github.event.pull_request.draft || false }}
ios-simulator-tests:
needs: macos-eligibility
if: ${{ needs.macos-eligibility.outputs.should-run == 'true' }}
runs-on: macos-26
steps:
- name: Checkout all repos with ref fallback
uses: walt-id/waltid-identity/.github/actions/checkout-repos@4296a7f80cacf7e60cb1a20321956768892eb7e3
with:
token: ${{ secrets.GH_ACCESS_TOKEN || github.token }}
ref: ${{ github.head_ref || github.ref_name }}
- name: Configure gradle
uses: walt-id/waltid-identity/.github/actions/gradle-setup-action@c95b601fc5095d5668eb8c906af992d8e00ed513
- name: Compile iOS targets and run Kotlin iOS simulator tests
timeout-minutes: 40
uses: walt-id/waltid-identity/.github/actions/gradle-ios@c95b601fc5095d5668eb8c906af992d8e00ed513
with:
waltid-directory: 'waltid-identity'
xcode-developer-dir: ${{ env.XCODE_DEVELOPER_DIR }}
simulator-destination: ${{ env.IOS_SIMULATOR_DESTINATION }}
run-compile-smoke: 'true'
run-ios-simulator-tests: 'true'
run-wallet-core-xcframework: 'false'
run-native-demo-tests: 'false'
run-compose-demo-tests: 'false'
test-report-job-name: ios-simulator-tests
test-report-check-name: iOS Simulator Test Report
test-result-artifact-name: ios-simulator-test-results
wallet-core-native-ios-demo-tests:
needs: macos-eligibility
if: ${{ needs.macos-eligibility.outputs.should-run == 'true' }}
runs-on: macos-26
steps:
- name: Checkout all repos with ref fallback
uses: walt-id/waltid-identity/.github/actions/checkout-repos@4296a7f80cacf7e60cb1a20321956768892eb7e3
with:
token: ${{ secrets.GH_ACCESS_TOKEN || github.token }}
ref: ${{ github.head_ref || github.ref_name }}
- name: Configure gradle
uses: walt-id/waltid-identity/.github/actions/gradle-setup-action@c95b601fc5095d5668eb8c906af992d8e00ed513
- name: Build WalletCore and run native iOS demo tests
timeout-minutes: 35
uses: walt-id/waltid-identity/.github/actions/gradle-ios@c95b601fc5095d5668eb8c906af992d8e00ed513
with:
waltid-directory: 'waltid-identity'
xcode-developer-dir: ${{ env.XCODE_DEVELOPER_DIR }}
simulator-destination: ${{ env.IOS_SIMULATOR_DESTINATION }}
run-compile-smoke: 'false'
run-ios-simulator-tests: 'false'
run-wallet-core-xcframework: 'true'
run-native-demo-tests: 'true'
run-compose-demo-tests: 'false'
test-report-job-name: wallet-core-native-ios-demo-tests
test-report-check-name: Native iOS Demo Test Report
test-result-artifact-name: native-ios-demo-test-results
compose-ios-demo-tests:
needs: macos-eligibility
if: ${{ needs.macos-eligibility.outputs.should-run == 'true' }}
runs-on: macos-26
steps:
- name: Checkout all repos with ref fallback
uses: walt-id/waltid-identity/.github/actions/checkout-repos@4296a7f80cacf7e60cb1a20321956768892eb7e3
with:
token: ${{ secrets.GH_ACCESS_TOKEN || github.token }}
ref: ${{ github.head_ref || github.ref_name }}
- name: Configure gradle
uses: walt-id/waltid-identity/.github/actions/gradle-setup-action@c95b601fc5095d5668eb8c906af992d8e00ed513
- name: Run Compose iOS demo tests
timeout-minutes: 40
uses: walt-id/waltid-identity/.github/actions/gradle-ios@c95b601fc5095d5668eb8c906af992d8e00ed513
with:
waltid-directory: 'waltid-identity'
xcode-developer-dir: ${{ env.XCODE_DEVELOPER_DIR }}
simulator-destination: ${{ env.IOS_SIMULATOR_DESTINATION }}
run-compile-smoke: 'false'
run-ios-simulator-tests: 'false'
run-wallet-core-xcframework: 'false'
run-native-demo-tests: 'false'
run-compose-demo-tests: 'true'
test-report-job-name: compose-ios-demo-tests
test-report-check-name: Compose iOS Demo Test Report
test-report-require-tests: 'false'
test-result-artifact-name: compose-ios-demo-test-results
enterprise-ios-mobile-tests:
needs: macos-eligibility
if: ${{ needs.macos-eligibility.outputs.should-run == 'true' }}
runs-on: macos-26
steps:
- name: Checkout all repos with ref fallback
uses: walt-id/waltid-identity/.github/actions/checkout-repos@4296a7f80cacf7e60cb1a20321956768892eb7e3
with:
token: ${{ secrets.GH_ACCESS_TOKEN || github.token }}
ref: ${{ github.head_ref || github.ref_name }}
- name: Configure gradle
uses: walt-id/waltid-identity/.github/actions/gradle-setup-action@c95b601fc5095d5668eb8c906af992d8e00ed513
- name: Execute Enterprise iOS mobile platform tests
id: enterprise_ios_mobile_tests
continue-on-error: true
timeout-minutes: 50
run: |
./gradlew :waltid-enterprise-integration-tests:enterpriseIosMobileIntegrationTest \
--no-configuration-cache \
-Penterprise.ios.destination="${IOS_SIMULATOR_DESTINATION}"
env:
MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }}
MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }}
- name: Collect Enterprise iOS mobile test reports
if: always() && steps.enterprise_ios_mobile_tests.outcome != 'skipped'
id: enterprise_ios_test_report
run: |
REPORT_ROOT="waltid-identity-enterprise/waltid-enterprise-integration-tests/build/ios-test-reports"
XCODE_REPORT_DIR="$REPORT_ROOT/xcresult"
SOURCE_ROOT="waltid-identity-enterprise/waltid-enterprise-integration-tests/build/ios-test-results"
rm -rf "$REPORT_ROOT"
mkdir -p "$XCODE_REPORT_DIR"
xcode_report_count=0
while IFS= read -r -d '' bundle; do
if ! command -v xcresultparser >/dev/null 2>&1; then
brew install xcresultparser
fi
relative_bundle="${bundle#$SOURCE_ROOT/}"
safe_name=$(printf '%s' "$relative_bundle" | tr '/ ' '__' | LC_ALL=C tr -c '[:alnum:]_.-' '_')
report_file="$XCODE_REPORT_DIR/${xcode_report_count}-${safe_name}.xml"
if xcresultparser "$bundle" --output-format=junit > "$report_file"; then
echo "Converted Enterprise iOS xcresult bundle to JUnit: $relative_bundle"
xcode_report_count=$((xcode_report_count + 1))
else
echo "::warning::Failed to convert Enterprise iOS xcresult bundle at $bundle"
rm -f "$report_file"
fi
done < <(find "$SOURCE_ROOT" -name '*.xcresult' -prune -print0 2>/dev/null || true)
{
echo "## Enterprise iOS Mobile Test Report Collection"
echo "- Xcode result bundles converted: $xcode_report_count"
} >> "$GITHUB_STEP_SUMMARY"
if (( xcode_report_count == 0 )); then
echo "::warning::No Enterprise iOS mobile test reports found under $SOURCE_ROOT"
echo "has_report=false" >> "$GITHUB_OUTPUT"
exit 0
fi
echo "has_report=true" >> "$GITHUB_OUTPUT"
- name: Publish Enterprise iOS mobile test report
if: always() && steps.enterprise_ios_test_report.outputs.has_report == 'true'
uses: mikepenz/action-junit-report@v6
with:
update_check: true
job_name: enterprise-ios-mobile-tests
check_name: Enterprise iOS Mobile Test Report
report_paths: waltid-identity-enterprise/waltid-enterprise-integration-tests/build/ios-test-reports/**/*.xml
detailed_summary: true
include_passed: false
include_skipped: false
require_tests: true
- name: Upload Enterprise iOS mobile test results
if: always() && steps.enterprise_ios_mobile_tests.outcome == 'failure'
uses: actions/upload-artifact@v4
with:
name: enterprise-ios-mobile-test-results
path: |
waltid-identity-enterprise/waltid-enterprise-integration-tests/build/ios-test-reports/**
waltid-identity-enterprise/waltid-enterprise-integration-tests/build/ios-test-results/**
retention-days: 7
- name: Fail if Enterprise iOS mobile tests failed
if: always() && steps.enterprise_ios_mobile_tests.outcome == 'failure'
run: |
echo "::error::Enterprise iOS mobile platform tests failed"
exit 1
gradle:
runs-on: ubuntu-22.04
needs:
- macos-eligibility
- ios-simulator-tests
- wallet-core-native-ios-demo-tests
- compose-ios-demo-tests
- enterprise-ios-mobile-tests
if: always()
steps:
- name: Verify iOS workflow jobs
run: |
set -euo pipefail
failed=()
if [[ "${{ needs.macos-eligibility.outputs.should-run }}" != "true" ]]; then
echo "macOS eligibility skipped this run: ${{ needs.macos-eligibility.outputs.reason }}"
exit 0
fi
if [[ "${{ needs.ios-simulator-tests.result }}" != "success" ]]; then
failed+=("ios-simulator-tests=${{ needs.ios-simulator-tests.result }}")
fi
if [[ "${{ needs.wallet-core-native-ios-demo-tests.result }}" != "success" ]]; then
failed+=("wallet-core-native-ios-demo-tests=${{ needs.wallet-core-native-ios-demo-tests.result }}")
fi
if [[ "${{ needs.compose-ios-demo-tests.result }}" != "success" ]]; then
failed+=("compose-ios-demo-tests=${{ needs.compose-ios-demo-tests.result }}")
fi
if [[ "${{ needs.enterprise-ios-mobile-tests.result }}" != "success" ]]; then
failed+=("enterprise-ios-mobile-tests=${{ needs.enterprise-ios-mobile-tests.result }}")
fi
if (( ${#failed[@]} > 0 )); then
printf '::error::iOS workflow job(s) failed: %s\n' "${failed[*]}"
exit 1
fi
echo "All iOS workflow jobs succeeded."