Running Solution Integration Testing on 11720/merge #4
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Solution Integration Testing | |
run-name: Running Solution Integration Testing on ${{ github.ref_name }} | |
on: | |
pull_request: | |
branches: | |
- master | |
paths: | |
- 'Solutions/**/Package/mainTemplate.json' | |
workflow_dispatch: # Allows to run workflow manually from the Actions tab | |
permissions: | |
id-token: write | |
contents: read | |
pull-requests: write | |
jobs: | |
Run-solutionIntegration-Testimio: | |
name: Solution Integration Testing - Testim.io | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout pull request branch | |
uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.event.pull_request.head.ref }} | |
repository: ${{ github.event.pull_request.head.repo.full_name }} | |
# persist-credentials: false # otherwise, the token used is the GITHUB_TOKEN, instead of your personal access token. | |
fetch-depth: 0 # otherwise, there would be errors pushing refs to the destination repository. | |
- name: Setup git config | |
run: | | |
git config --local user.name "github-actions[bot]" | |
git config --local user.email "<>" | |
- name: Azure Login to Dev Account | |
uses: azure/login@v2 | |
with: | |
client-id: ${{ secrets.AZURE_SOLUTIONTESTING_DEV_CLIENT_ID }} | |
tenant-id: ${{ secrets.AZURE_SOLUTIONTESTING_DEV_TENANT_ID }} | |
allow-no-subscriptions: true | |
- name: Whitelist Runner IP | |
run: | | |
agentIP=$(curl -s https://api.ipify.org/) | |
az keyvault network-rule add --name e2e-solIntegTesting-KV --ip-address $agentIP | |
- name: Get Access Token | |
run: | | |
echo "accessToken=$(az account get-access-token -o tsv --query accessToken)" >> $GITHUB_ENV | |
- name: Download files from ADO | |
run: | | |
curl -u :${{ env.accessToken }} \ | |
-o evaluateAndExtractTemplate.py \ | |
"https://dev.azure.com/msazure/One/_apis/git/repositories/Sentinel-CATUtilities/items?path=/SolutionIntegrationTesting/.scripts/evaluateAndExtractTemplate.py&versionDescriptor.versionType=Branch&versionDescriptor.version=users/tanishqarora/solutionIntegrationTesting&api-version=6.0" \ | |
-o runUITests.py \ | |
"https://dev.azure.com/msazure/One/_apis/git/repositories/Sentinel-CATUtilities/items?path=/SolutionIntegrationTesting/.scripts/runUITests.py&versionDescriptor.versionType=Branch&versionDescriptor.version=users/tanishqarora/solutionIntegrationTesting&api-version=6.0" \ | |
-o requirements.txt \ | |
"https://dev.azure.com/msazure/One/_apis/git/repositories/Sentinel-CATUtilities/items?path=/SolutionIntegrationTesting/requirements.txt&versionDescriptor.versionType=Branch&versionDescriptor.version=users/tanishqarora/solutionIntegrationTesting&api-version=6.0" | |
- name: Setup Python Environment | |
uses: actions/setup-python@v2 | |
with: | |
python-version: '3.x' | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install -r requirements.txt | |
- name: Azure Login to Test Tenant Account | |
uses: azure/login@v2 | |
with: | |
client-id: ${{ secrets.AZURE_SOLUTIONTESTING_TEST_CLIENT_ID }} | |
tenant-id: ${{ secrets.AZURE_SOLUTIONTESTING_TEST_TENANT_ID }} | |
allow-no-subscriptions: true | |
- name: Get Test Tenant Subscription | |
run: | | |
echo "TEST_TENANT_SUBSCRIPTION_ID=$(az account show --query id -o tsv)" >> $GITHUB_ENV | |
- name: Deploy Solution to Workspace, Evaluate and Extract Template Files | |
run: | | |
filePath="evaluateAndExtractTemplate.py" | |
python $filePath | |
- name: Azure Login to Dev Account | |
uses: azure/login@v2 | |
if: '!cancelled()' | |
with: | |
client-id: ${{ secrets.AZURE_SOLUTIONTESTING_DEV_CLIENT_ID }} | |
tenant-id: ${{ secrets.AZURE_SOLUTIONTESTING_DEV_TENANT_ID }} | |
allow-no-subscriptions: true | |
- name: Execute Tests on Testim | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
GITHUB_REPOSITORY: ${{ github.repository }} | |
PR_NUMBER: ${{ github.event.pull_request.number }} | |
run: | | |
filePath="runUITests.py" | |
python $filePath | |
- name: Delist Runner IP | |
if: '!cancelled()' | |
run: | | |
agentIP=$(curl -s https://api.ipify.org/) | |
az keyvault network-rule remove --name e2e-solIntegTesting-KV --ip-address $agentIP |