Files
alfresco-content-app/.github/workflows/run-e2e-with-env.yml
Akash Rathod 4754e20dd2 [ACS-12705] env fix for Run e2e with env (#5361)
* [ACS-12705] env fix

* [ACS-12705] env review fix
2026-08-31 13:28:41 +02:00

171 lines
5.0 KiB
YAML

name: "Run e2e with Env"
run-name: "Run e2e with Env - ${{ inputs.url }}"
description: "Run e2e tests with environment variables"
on:
workflow_dispatch:
inputs:
url:
description: 'Application URL'
required: true
default: 'https://acadev.envalfresco.com'
playwright_e2e_host:
description: 'Playwright E2E host (e.g. https://acadev.envalfresco.com)'
required: false
default: 'http://localhost:4200'
env:
BASE_URL: ${{ inputs.url || secrets.PIPELINE_ENV_URL }}
ADMIN_EMAIL: ${{ secrets.PIPELINE_ADMIN_USERNAME }}
ADMIN_PASSWORD: ${{ secrets.FRONTEND_TEST_ADMIN_PASSWORD }}
HR_USER: hruser
HR_USER_PASSWORD: ${{ secrets.FRONTEND_TEST_USER_PASSWORD }}
PLAYWRIGHT_E2E_HOST: ${{ inputs.playwright_e2e_host || inputs.url || secrets.PLAYWRIGHT_E2E_HOST }}
GH_BUILD_NUMBER: ${{ github.run_id }}
REPORT_PORTAL_URL: ${{ secrets.REPORT_PORTAL_URL }}
REPORT_PORTAL_TOKEN: ${{ secrets.REPORT_PORTAL_TOKEN }}
MAXINSTANCES: 2
RETRY_COUNT: 2
jobs:
verify-env:
name: 'Verify target environment'
runs-on: ubuntu-latest
steps:
- name: Verify admin credentials against target environment
run: |
STATUS=$(curl -s -o /dev/null -w "%{http_code}" \
-X POST "${BASE_URL}/alfresco/api/-default-/public/authentication/versions/1/tickets" \
-H "Content-Type: application/json" \
-d "{\"userId\":\"${ADMIN_EMAIL}\",\"password\":\"${ADMIN_PASSWORD}\"}")
if [ "$STATUS" = "403" ] || [ "$STATUS" = "401" ]; then
echo "::error::Authentication failed (HTTP $STATUS) for '${ADMIN_EMAIL}' against ${BASE_URL}."
echo "::error::The environment is reachable but the admin credentials are wrong for this host."
echo "::error::Check that the FRONTEND_TEST_ADMIN_PASSWORD secret matches this environment."
exit 1
fi
if [ "$STATUS" != "201" ]; then
echo "::error::Unexpected response (HTTP $STATUS) from ${BASE_URL}. Environment may be down."
exit 1
fi
echo "Admin credentials verified against ${BASE_URL}."
build:
name: 'build'
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v7
with:
fetch-depth: 2
- name: node
uses: actions/setup-node@v7
with:
node-version-file: '.nvmrc'
cache: 'npm'
- uses: ./.github/actions/before-install
- run: npm ci
- run: npm run ci:build -- aca-playwright-shared
- run: npm run build -- $BUILD_OPTS
- name: dist cache
if: ${{ success() }}
uses: actions/cache/save@v6
with:
path: ./dist/content-ce
key: cache-dist-${{ github.run_id }}
e2es-playwright:
needs: [build, verify-env]
name: 'E2E Playwright - ${{ matrix.e2e-suites.name }}'
runs-on: ubuntu-24.04
env:
NODE_OPTIONS: --dns-result-order=ipv4first
strategy:
fail-fast: false
matrix:
e2e-suites:
- name: "create-actions"
id: 1
- name: "folder-rules"
id: 2
- name: "viewer"
id: 3
- name: "authentication"
id: 4
- name: "navigation"
id: 5
- name: "special-permissions"
id: 6
- name: "pagination"
id: 7
- name: "list-views"
id: 8
- name: "share-action"
id: 9
- name: "copy-move-actions"
id: 10
- name: "library-actions"
id: 11
- name: "info-drawer"
id: 12
- name: "search"
id: 13
- name: "upload-download-actions"
id: 14
- name: "favorite-actions"
id: 15
- name: "delete-actions"
id: 16
- name: "edit-actions"
id: 17
- name: "smoke-test"
id: 18
- name: "folder-information-actions"
id: 19
- name: "viewer-actions"
id: 20
- name: "create-link-actions"
id: 21
- name: "a11y-personal-files"
id: 22
steps:
- name: Checkout
uses: actions/checkout@v7
with:
fetch-depth: 2
- name: node
uses: actions/setup-node@v7
with:
node-version-file: '.nvmrc'
cache: 'npm'
- uses: ./.github/actions/before-install
- run: npm ci
- uses: actions/cache/restore@v6
id: cache
with:
path: ./dist/content-ce
key: cache-dist-${{ github.run_id }}
- name: Before e2e
uses: ./.github/actions/before-e2e
- name: Before playwright
run: npm run ci:playwright:install
- uses: ./.github/actions/run-e2e-playwright
with:
options: "${{ matrix.e2e-suites.name }}"
artifact-name: ${{ matrix.e2e-suites.name }}
test-runner: playwright
- uses: ./.github/actions/after-e2e