Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DO NOT MERGE - Testing Workflow #11720

Open
wants to merge 12 commits into
base: master
Choose a base branch
from
Open
113 changes: 113 additions & 0 deletions .github/workflows/solutionIntegration.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
name: Solution Integration Testing
run-name: Running Solution Integration Testing on ${{ github.ref_name }}

on:
pull_request_target:
types: [opened, edited, reopened, synchronize]
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 --query properties.networkAcls.ipRules

- name: Delete Scripts from branch
run: |
if [ -f "./evaluateAndExtractTemplate.py" ]; then rm ./evaluateAndExtractTemplate.py; fi
if [ -f "./runUITests.py" ]; then rm ./runUITests.py; fi
if [ -f "./requirements.txt" ]; then rm ./requirements.txt; fi

- name: Download files from ADO #TODO: update repo link to main
run: |
curl -u :$(az account get-access-token -o tsv --query 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: $(az keyvault secret show --name ClientId-Test --vault-name e2e-solIntegTesting-KV --query value -o tsv)
tenant-id: $(az keyvault secret show --name TenantId-Test --vault-name e2e-solIntegTesting-KV --query value -o tsv)
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
continue-on-error: true # Continues even after failing so as to not block the PR
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 }}
continue-on-error: true # Continues even after failing so as to not block the PR
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 --query properties.networkAcls.ipRules
Loading