PMM-7 added auth method #31
Workflow file for this run
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: portal-ui-tests | |
on: | |
workflow_call: | |
inputs: | |
pmm_ui_tests_branch: | |
description: 'Target branch for pmm-ui-tests repository' | |
type: string | |
default: 'main' | |
pmm_test_flag: | |
description: 'Flag to run only specific portion of the tests.' | |
type: string | |
pmm_server_version: | |
description: 'Version of the pmm server used for testing' | |
type: string | |
default: 'dev-latest' | |
required: true | |
pmm_client_version: | |
description: 'Version of the pmm client used for testing' | |
type: string | |
default: 'dev-latest' | |
required: true | |
pmm_clients: | |
description: 'Clients for pmm-server' | |
type: string | |
default: '--addclient=ps,1' | |
pmm_qa_branch: | |
description: 'Branch for the pmm-qa repository.' | |
type: string | |
default: 'main' | |
version_string_from: | |
description: 'start version string' | |
type: string | |
push: | |
branches: | |
- "PMM-7-fix-portal-pipeline" | |
jobs: | |
tests: | |
name: ${{ inputs.version_string_from || inputs.pmm_server_version || 'dev-latest' }} | |
runs-on: ubuntu-latest | |
timeout-minutes: 60 | |
env: | |
SHA: ${{ inputs.sha || 'null' }} | |
PMM_BASE_URL: https://127.0.0.1 | |
ADMIN_PASSWORD: admin | |
UI_TESTS_BRANCH: "PMM-7-fix-portal-pipeline" | |
PMM_CLIENTS: ${{ inputs.pmm_clients || '' }} | |
PMM_TEST_FLAG: ${{ inputs.pmm_test_flag || '@portal' }} | |
PMM_SERVER_VERSION: ${{ inputs.pmm_server_version || 'dev-latest' }} | |
PMM_CLIENT_VERSION: ${{ inputs.pmm_client_version || 'dev-latest' }} | |
PMM_QA_BRANCH: ${{ inputs.pmm_qa_branch || 'main' }} | |
OKTA_TOKEN: ${{ secrets.OKTA_TOKEN }} | |
OAUTH_ISSUER_URL: 'https://id-dev.percona.com/oauth2/aus15pi5rjdtfrcH51d7' | |
OAUTH_CLIENT_ID: ${{ secrets.OKTA_OAUTH_CLIENT_ID }} | |
OAUTH_CLIENT_SECRET: ${{ secrets.OKTA_OAUTH_CLIENT_SECRET }} | |
OAUTH_PMM_CLIENT_ID: ${{ secrets.OKTA_OAUTH_PMM_CLIENT_ID }} | |
OAUTH_PMM_CLIENT_SECRET: ${{ secrets.OKTA_OAUTH_PMM_CLIENT_SECRET }} | |
OAUTH_DEV_HOST: ${{ secrets.OAUTH_DEV_HOST }} | |
OAUTH_SCOPES: percona | |
# Variables for E2E tests | |
MAILOSAUR_API_KEY: ${{ secrets.MAILOSAUR_API_KEY }} | |
MAILOSAUR_UI_TESTS_SERVER_ID: ${{ secrets.MAILOSAUR_UI_TESTS_SERVER_ID }} | |
MAILOSAUR_API_TESTS_SERVER_ID: ${{ secrets.MAILOSAUR_API_TESTS_SERVER_ID }} | |
SERVICENOW_LOGIN: percona_platform | |
SERVICENOW_PASSWORD: ${{ secrets.SERVICENOW_PASSWORD }} | |
SERVICENOW_DEV_URL: 'https://perconadev.service-now.com/api/x_pellc_percona_pl/platform/settest' | |
steps: | |
- name: PMM server version ${{ env.PMM_SERVER_VERSION }} and UI tests for flag "${{ env.PMM_TEST_FLAG }}" and pmm-ui-tests branch ${{ env.UI_TESTS_BRANCH }} | |
if: ${{ env.SHA != 'null' }} | |
uses: percona/gh-action-Sibz-github-status-action@v1 | |
continue-on-error: true | |
with: | |
authToken: ${{ secrets.GITHUB_TOKEN }} | |
context: "${{ env.PMM_TEST_FLAG }} UI tests" | |
description: "Test execution ${{ job.status }}" | |
state: "pending" | |
repository: ${{ github.repository }} | |
target_url: "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" | |
sha: ${{ env.SHA }} | |
- name: 'Checkout UI tests: "${{ env.UI_TESTS_BRANCH }}"' | |
uses: actions/checkout@v3 | |
with: | |
ref: ${{ env.UI_TESTS_BRANCH }} | |
repository: percona/pmm-ui-tests | |
path: ./pmm-ui-tests | |
- name: 'Install playwright' | |
working-directory: ./pmm-ui-tests/playwright-tests | |
run: | | |
npm ci | |
npx playwright install | |
- name: 'Checkout pmm-qa: "${{ env.PMM_QA_BRANCH }}"' | |
uses: actions/checkout@v3 | |
with: | |
repository: percona/pmm-qa | |
ref: ${{ env.PMM_QA_BRANCH }} | |
path: ./pmm-qa | |
- name: 'Setup <PMM Sever>: "${{ env.PMM_SERVER_VERSION }}"' | |
working-directory: pmm-qa/pmm-integration | |
run: | | |
npm install | |
sudo npx ts-node ./integration-setup.ts --ci --setup-docker-pmm-server --rbac --pmm-server-docker-tag=${{ format('perconalab/pmm-server:{0}', env.PMM_SERVER_VERSION) }} --pmm-client-version=${{ env.PMM_CLIENT_VERSION }} | |
timeout 100 bash -c 'while [[ "$(curl -s -o /dev/null -w ''%{http_code}'' localhost/ping)" != "200" ]]; do sleep 5; done' || false | |
- name: 'Setup <PMM Client: ${{ inputs.pmm_client_version }}>' | |
run: | | |
sudo bash ./pmm-qa/pmm-tests/pmm2-client-setup.sh --pmm_server_ip 127.0.0.1 --client_version ${{ env.PMM_CLIENT_VERSION }} --admin_password admin --use_metrics_mode no | |
shell: bash | |
- name: Setup Databases for the PMM-Server | |
working-directory: pmm-qa/pmm-integration | |
run: | | |
sudo npx ts-node ./integration-setup.ts --ci \ | |
${{ env.PMM_CLIENTS }} | |
sleep 30 | |
sudo pmm-admin list | |
shell: bash | |
- name: 'Run UI tests: ${{ env.PMM_TEST_FLAG }}' | |
if: ${{ inputs.pmm_test_flag != 'null' }} | |
id: ui-tests-flagged | |
working-directory: pmm-ui-tests/playwright-tests | |
run: | | |
npx playwright test --config="playwright.config.ts" --grep="${{ env.PMM_TEST_FLAG }}" | |
# env: | |
# NODE_TLS_REJECT_UNAUTHORIZED: 0 | |
- name: 'Create report name' | |
if: failure() | |
run: | | |
# TODO: add job id for matrix call | |
job_tag=$(echo "${{ env.PMM_TEST_FLAG }}" | sed -e "s/-pre-upgrade//" -e "s/@//") | |
report_name=${{ env.PMM_SERVER_VERSION }}"$job_tag"-report | |
echo $report_name | |
echo "REPORT_NAME=$report_name" >> $GITHUB_ENV | |
- name: Generate and Attach the report | |
if: failure() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ env.REPORT_NAME }} | |
path: ./pmm-ui-tests/playwright-tests/playwright-report | |
- name: Create status check | |
uses: percona/gh-action-Sibz-github-status-action@v1 | |
if: ${{ env.SHA != 'null' && always() }} | |
continue-on-error: true | |
with: | |
authToken: ${{ secrets.GITHUB_TOKEN }} | |
context: "${{ env.PMM_TEST_FLAG }} UI tests" | |
description: "Test execution ${{ job.status }}" | |
state: ${{ job.status }} | |
repository: ${{ github.repository }} | |
target_url: "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" | |
sha: ${{ env.SHA }} |