Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -99,4 +99,4 @@ jobs:
feedName: ${{ parameters.testAppsFeedName }}
oldMsalTestAppVersion: ${{ parameters.oldMsalTestAppVersion }}
oldOneAuthTestAppVersion: ${{ parameters.oldOneAuthTestAppVersion }}
- template: ../../ui-automation/templates/download-first-party-apps.yml
- template: ../../ui-automation/templates/download-first-party-apps.yml
91 changes: 91 additions & 0 deletions azure-pipelines/ui-automation/nativeauth-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
# Run NativeAuth UI automation tests (standalone stabilization pipeline)
# This pipeline is used during test development/stabilization.
# Once tests are stable, they can be added to the weekly-validation pipeline.
# https://dev.azure.com/IdentityDivision/Engineering/_build?definitionId=XXXX
name: $(Build.BuildId)_NativeAuth_$(SourceBranchName)_$(Date:yyyyMMdd)$(Rev:.r)

trigger: none
pr: none

resources:
repositories:
- repository: msal
type: github
name: AzureAD/microsoft-authentication-library-for-android
ref: $(msal_branch)
endpoint: ANDROID_GITHUB

variables:
- group: devex-ciam-test
- name: engineeringProjectId
value: 'fac9d424-53d2-45c0-91b5-ef6ba7a6bf26'
- name: msalApp
value: msalautomationapp-local-AutoBroker-debug.apk
- name: msalTestApp
value: msalautomationapp-local-AutoBroker-debug-androidTest.apk
- name: nativeAuthSampleApk
value: app-debug.apk
- name: firebaseTimeout
value: 45m
- name: resultsHistoryName
value: NativeAuth Tests

parameters:
- name: msal_branch
displayName: MSAL Branch
type: string
default: 'spetrescu/custom_headers'
- name: firebaseDeviceId
displayName: Firebase Device Id
type: string
default: oriole
- name: firebaseDeviceAndroidVersion
displayName: Firebase Device Android Version
type: number
default: 33

stages:
# Build MSAL Automation App (Local flavor, no broker needed for NativeAuth tests)
- stage: 'msalautomationapp'
dependsOn: []
displayName: Build MSAL Automation APKs
jobs:
- template: ./templates/build-msal-automation-app.yml
parameters:
brokerApp: AutoBroker
msalFlavor: Local
brokerSource: LocalApk
brokerUpdateSource: LocalApk
packageVariant: RC
nativeAuthConfigString: $(NATIVE_AUTH_CONFIG_STRING)

# Build NativeAuth Sample App
- stage: 'nativeauthsampleapp'
dependsOn: []
displayName: Build NativeAuth Sample App
jobs:
- template: ./templates/build-nativeauth-sample-app.yml
parameters:
packageVariant: RC

# Run NativeAuth tests on Firebase
- stage: 'nativeauth_tests'
dependsOn:
- msalautomationapp
- nativeauthsampleapp
displayName: Running NativeAuth Tests (API ${{ parameters.firebaseDeviceAndroidVersion }})
jobs:
- template: ./templates/flank/run-on-firebase-with-flank.yml
parameters:
automationAppApkPath: "$(Pipeline.Workspace)/msalautomationapks-AutoBroker-RC-LocalApk/$(msalApp)"
automationAppTestApkPath: "$(Pipeline.Workspace)/msalautomationapks-AutoBroker-RC-LocalApk/$(msalTestApp)"
testTargetPackages: "package com.microsoft.identity.client.msal.automationapp.testpass.msalonly.nativeauth"
resultsHistoryName: "$(resultsHistoryName)"
resultsDir: "nativeauth-tests-$(Build.BuildId)"
otherFiles: "/sdcard/NativeAuthSampleApp.apk=$(Pipeline.Workspace)/nativeauthsampleapk-RC/$(nativeAuthSampleApk),\
/data/local/tmp/LabAuth.pfx=$(Build.SourcesDirectory)/LabAuth.pfx"
firebaseDeviceId: ${{ parameters.firebaseDeviceId }}
firebaseDeviceAndroidVersion: ${{ parameters.firebaseDeviceAndroidVersion }}
testRunTitle: "NativeAuth UI Automation (API ${{ parameters.firebaseDeviceAndroidVersion }}) # $(Build.BuildNumber)"
extraTarget: ""
flankShards: 1
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,9 @@ parameters:
- name: preInstallLtw
type: boolean
default: false
- name: nativeAuthConfigString
type: string
default: ""

jobs:
- job: msalautomationapp${{ parameters.packageVariant }}${{ parameters.msalFlavor }}
Expand All @@ -66,6 +69,9 @@ jobs:
targetType: inline
script: |
$assembleTask = "msalautomationapp:assemble${{ parameters.msalFlavor }}${{ parameters.brokerApp }}Debug -PlabSecret=$(LabAppCert) -PbrokerSource=${{ parameters.brokerSource }} -PbrokerUpdateSource=${{ parameters.brokerUpdateSource }}"
if ("${{ parameters.nativeAuthConfigString }}" -ne "") {
$assembleTask = $assembleTask + " -PnativeAuthConfigString=${{ parameters.nativeAuthConfigString }}"
}
if (("${{ parameters.msalVersion }}" -ne "")) {
$assembleTask = $assembleTask + " -PdistMsalVersion=" + "${{ parameters.msalVersion }}"
}
Expand All @@ -84,6 +90,9 @@ jobs:
targetType: inline
script: |
$assembleTestTask = "msalautomationapp:assemble${{ parameters.msalFlavor }}${{ parameters.brokerApp }}DebugAndroidTest -PlabSecret=$(LabAppCert)"
if ("${{ parameters.nativeAuthConfigString }}" -ne "") {
$assembleTestTask = $assembleTestTask + " -PnativeAuthConfigString=${{ parameters.nativeAuthConfigString }}"
}
if (("${{ parameters.msalVersion }}" -ne "")) {
$assembleTestTask = $assembleTestTask + " -PdistMsalVersion=" + "${{ parameters.msalVersion }}"
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
parameters:
- name: packageVariant
displayName: Package Variant
type: string
default: PROD
values:
- PROD
- RC

jobs:
- job: nativeauthsampleapp${{ parameters.packageVariant }}
displayName: Build NativeAuth Sample App ${{ parameters.packageVariant }}
pool:
vmImage: ubuntu-latest
steps:
- checkout: self
clean: true
submodules: recursive
persistCredentials: True
- bash: |
echo "##vso[task.setvariable variable=ENV_VSTS_MVN_ANDROIDADACCOUNTS_ACCESSTOKEN]$(System.AccessToken)"
displayName: Set MVN Access Token in Environment
- task: Gradle@2
displayName: 'Assemble NativeAuth Sample App'
inputs:
tasks: NativeAuthSample:clean NativeAuthSample:assembleDebug
publishJUnitResults: false
- task: CopyFiles@2
displayName: 'Copy apks for later use in the pipeline'
inputs:
flattenFolders: true
contents: '$(Build.SourcesDirectory)/nativeauthsample/app/build/outputs/apk/**/*.apk'
targetFolder: '$(Build.ArtifactStagingDirectory)/nativeauthsample'
- publish: '$(Build.ArtifactStagingDirectory)/nativeauthsample'
displayName: 'Publish NativeAuth Sample APK'
artifact: nativeauthsampleapk-${{ upper(parameters.packageVariant) }}
Loading