mirror of
https://github.com/Alfresco/alfresco-content-app.git
synced 2025-07-24 17:31:52 +00:00
[ACS-9102] Local ACS deployment for E2Es (#4324)
* [ACS-9102] Local ACS deployment draft * [ACS-9102] Move ACS deployment to composite action * [ACS-9102] Remove obsolete checks * [ACS-9102] Proper secrets for ACS deployment * [ACS-9102] Add required shell property * [ACS-9102] Use fixed acs deployment version * [ACS-9102] Proper acs deployment tag * [ACS-9102] Add required shell property * [ACS-9102] Fix helm install params * [ACS-9102] Remove obsolete checkout * [ACS-9102] Use more powerful runner for E2Es * [ACS-9102] Introduce temp secrets * test curl localhost * skip n-1 matrix jobs * test ipv4 first * [ACS-9102] Adjust Playwright E2E host * [ACS-9102] Bring back matrix job * disable unnecessary acs components * debug ingress after tests run * [ACS-9102] Fix folder-rules test suite * [ACS-9102] Fix part of viewer test suite * [ACS-9102] Additional E2E fixes * [ACS-9102] fixes for e2es -> empty-list and search * [ACS-9102] more fixes for e2es and github actions artifacts added for easier debugging * [ACS-9102] removed artifacts from GHA * print all logs * [ACS-9102] Remove outdated secrets * [ACS-9102] Remove after-e2e action * do not wait for reindexing * test on latest runner * Always debug ingress logs * avoid sleep waiting for app startup * cleanup unnecessary action input type * fixup indent * test with latest acs alpha * Revert "do not wait for reindexing" This reverts commit 86ca54de33a6b5bf1da65202caac5798b5f88d51. * [ACS-9102] Exclude unstable test cases * [ACS-9102] Exclude unstable test cases * [ACS-9102] Exclude unstable test cases --------- Co-authored-by: Giovanni Toraldo <giovanni.toraldo@hyland.com> Co-authored-by: Adam Świderski <adam.tomasz.swiderski@gmail.com>
This commit is contained in:
21
.github/acs-deployment-values-override.yaml
vendored
Normal file
21
.github/acs-deployment-values-override.yaml
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
share:
|
||||
enabled: false
|
||||
postgresql-sync:
|
||||
enabled: false
|
||||
alfresco-sync-service:
|
||||
enabled: false
|
||||
alfresco-digital-workspace:
|
||||
enabled: false
|
||||
alfresco-control-center:
|
||||
enabled: false
|
||||
alfresco-ai-transformer:
|
||||
enabled: false
|
||||
elasticsearch-audit:
|
||||
enabled: false
|
||||
alfresco-audit-storage:
|
||||
enabled: false
|
||||
kibana-audit:
|
||||
enabled: false
|
||||
alfresco-repository:
|
||||
image:
|
||||
tag: 25.1.0-A.7
|
9
.github/actions/after-e2e/action.yml
vendored
9
.github/actions/after-e2e/action.yml
vendored
@@ -1,9 +0,0 @@
|
||||
name: "After e2e"
|
||||
description: "Runs cleanup tasks after e2e run"
|
||||
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- name: Remove storage file
|
||||
shell: bash
|
||||
run: rm -f ./storage-state/AdminUserState.json
|
97
.github/actions/deploy-local-acs/action.yml
vendored
Normal file
97
.github/actions/deploy-local-acs/action.yml
vendored
Normal file
@@ -0,0 +1,97 @@
|
||||
name: deploy-local-acs
|
||||
description: Deploy local ACS for E2E testing
|
||||
|
||||
inputs:
|
||||
docker_username:
|
||||
description: 'Docker username'
|
||||
required: true
|
||||
docker_password:
|
||||
description: 'Docker password'
|
||||
required: true
|
||||
quay_username:
|
||||
description: 'Quay username'
|
||||
required: true
|
||||
quay_password:
|
||||
description: 'Quay password'
|
||||
required: true
|
||||
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- uses: azure/setup-helm@fe7b79cd5ee1e45176fcad797de68ecaf3ca4814
|
||||
with:
|
||||
version: "3.14.3"
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0
|
||||
with:
|
||||
username: ${{ inputs.docker_username }}
|
||||
password: ${{ inputs.docker_password }}
|
||||
|
||||
- name: Login to Quay.io
|
||||
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0
|
||||
with:
|
||||
registry: quay.io
|
||||
username: ${{ inputs.quay_username }}
|
||||
password: ${{ inputs.quay_password }}
|
||||
|
||||
- name: Setup cluster
|
||||
uses: Alfresco/alfresco-build-tools/.github/actions/setup-kind@v8.4.0
|
||||
with:
|
||||
ingress-nginx-ref: controller-v1.8.2
|
||||
metrics: "true"
|
||||
|
||||
- name: Set nginx ingress config
|
||||
shell: bash
|
||||
run: >-
|
||||
kubectl -n ingress-nginx patch cm ingress-nginx-controller
|
||||
-p '{"data": {"allow-snippet-annotations":"true"}}'
|
||||
|
||||
- name: Create registries auth secret
|
||||
shell: bash
|
||||
run: >-
|
||||
kubectl create secret generic regcred
|
||||
--from-file=.dockerconfigjson=$HOME/.docker/config.json
|
||||
--type=kubernetes.io/dockerconfigjson
|
||||
|
||||
- name: Add dependency chart repos
|
||||
shell: bash
|
||||
run: |
|
||||
helm repo add self https://alfresco.github.io/alfresco-helm-charts/
|
||||
helm repo add elastic https://helm.elastic.co/
|
||||
|
||||
- name: Checkout acs-deployment sources
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
repository: Alfresco/acs-deployment
|
||||
ref: v8.6.1
|
||||
path: acs-deployment
|
||||
|
||||
- name: Helm install
|
||||
shell: bash
|
||||
run: >-
|
||||
helm dep build acs-deployment/helm/alfresco-content-services &&
|
||||
helm install acs acs-deployment/helm/alfresco-content-services
|
||||
--set global.search.sharedSecret="$(openssl rand -hex 24)"
|
||||
--set global.known_urls=http://localhost
|
||||
--set global.alfrescoRegistryPullSecrets=regcred
|
||||
--values acs-deployment/test/enterprise-integration-test-values.yaml
|
||||
--values .github/acs-deployment-values-override.yaml
|
||||
|
||||
- name: Watch Helm deployment
|
||||
shell: bash
|
||||
run: |
|
||||
kubectl get pods --watch &
|
||||
KWPID=$!
|
||||
kubectl wait --timeout=7m --all=true --for=condition=Available deploy && kill $KWPID
|
||||
echo -n "Waiting for ESC Reindexing job to complete... "
|
||||
kubectl wait --timeout=5m --for=condition=complete job/acs-alfresco-search-enterprise-reindexing
|
||||
echo "Completed."
|
||||
|
||||
- name: Spit cluster status after install
|
||||
if: always()
|
||||
shell: bash
|
||||
run: |
|
||||
helm ls --all-namespaces --all
|
||||
helm status acs --show-resources
|
||||
kubectl describe pod
|
1
.github/actions/get-image-tag/action.yml
vendored
1
.github/actions/get-image-tag/action.yml
vendored
@@ -5,7 +5,6 @@ inputs:
|
||||
branch_name:
|
||||
description: 'Name of the branch the workflow runs on'
|
||||
required: true
|
||||
type: string
|
||||
|
||||
runs:
|
||||
using: "composite"
|
||||
|
3
.github/actions/git-tag/action.yml
vendored
3
.github/actions/git-tag/action.yml
vendored
@@ -5,15 +5,12 @@ inputs:
|
||||
github_token:
|
||||
description: 'Github token'
|
||||
required: true
|
||||
type: string
|
||||
branch_name:
|
||||
description: 'Name of the branch the workflow runs on'
|
||||
required: true
|
||||
type: string
|
||||
dry-run:
|
||||
description: dry run flag
|
||||
required: true
|
||||
type: boolean
|
||||
|
||||
runs:
|
||||
using: "composite"
|
||||
|
5
.github/actions/publish-libs/action.yml
vendored
5
.github/actions/publish-libs/action.yml
vendored
@@ -5,23 +5,18 @@ inputs:
|
||||
branch_name:
|
||||
description: 'Name of the branch the workflow runs on'
|
||||
required: true
|
||||
type: string
|
||||
github_token:
|
||||
description: 'Github token'
|
||||
required: true
|
||||
type: string
|
||||
npm_registry_token:
|
||||
description: 'NPM registry token'
|
||||
required: true
|
||||
type: string
|
||||
npm_tag:
|
||||
description: 'NPM tag'
|
||||
required: true
|
||||
type: string
|
||||
dry-run:
|
||||
description: dry run flag
|
||||
required: true
|
||||
type: boolean
|
||||
|
||||
runs:
|
||||
using: "composite"
|
||||
|
14
.github/actions/run-e2e-playwright/action.yml
vendored
14
.github/actions/run-e2e-playwright/action.yml
vendored
@@ -5,16 +5,13 @@ inputs:
|
||||
options:
|
||||
description: 'Options'
|
||||
required: true
|
||||
type: string
|
||||
test-runner:
|
||||
description: 'Test runner'
|
||||
required: false
|
||||
type: string
|
||||
default: 'Playwright'
|
||||
artifact-name:
|
||||
description: Name of the artifact cache
|
||||
required: true
|
||||
type: string
|
||||
|
||||
runs:
|
||||
using: "composite"
|
||||
@@ -25,7 +22,12 @@ runs:
|
||||
run: |
|
||||
npm start > /dev/null &\
|
||||
|
||||
echo "Running playwright tests with options ${{ inputs.options }}"
|
||||
sleep 90
|
||||
npx nx run ${{ inputs.options }}-e2e:e2e
|
||||
printf "Waiting for the application to be ready..."
|
||||
while ! curl -sf ${PLAYWRIGHT_E2E_HOST} > /dev/null; do
|
||||
printf "."
|
||||
sleep 1
|
||||
done
|
||||
printf "\nApplication is ready.\n"
|
||||
|
||||
echo "Running playwright tests with options ${{ inputs.options }}"
|
||||
npx nx run ${{ inputs.options }}-e2e:e2e
|
||||
|
@@ -5,11 +5,9 @@ inputs:
|
||||
branch_name:
|
||||
description: 'Name of the branch the workflow runs on'
|
||||
required: true
|
||||
type: string
|
||||
dry-run:
|
||||
description: dry run flag
|
||||
required: true
|
||||
type: boolean
|
||||
|
||||
runs:
|
||||
using: "composite"
|
||||
|
33
.github/workflows/pull-request.yml
vendored
33
.github/workflows/pull-request.yml
vendored
@@ -12,14 +12,14 @@ concurrency:
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
BASE_URL: ${{ secrets.PIPELINE_ENV_URL }}
|
||||
ADMIN_EMAIL: ${{ secrets.PIPELINE_ADMIN_USERNAME }}
|
||||
ADMIN_PASSWORD: ${{ secrets.PIPELINE_ADMIN_PASSWORD }}
|
||||
HR_USER: ${{ secrets.HR_USER }}
|
||||
HR_USER_PASSWORD: ${{ secrets.HR_USER_PASSWORD }}
|
||||
BASE_URL: http://localhost
|
||||
ADMIN_EMAIL: admin
|
||||
ADMIN_PASSWORD: admin
|
||||
HR_USER: admin
|
||||
HR_USER_PASSWORD: admin
|
||||
SCREENSHOT_USERNAME: ${{ secrets.SCREENSHOT_USERNAME }}
|
||||
SCREENSHOT_PASSWORD: ${{ secrets.SCREENSHOT_PASSWORD}}
|
||||
PLAYWRIGHT_E2E_HOST: ${{ secrets.PLAYWRIGHT_E2E_HOST }}
|
||||
PLAYWRIGHT_E2E_HOST: http://localhost:4200
|
||||
GH_BUILD_NUMBER: ${{ github.run_id }}
|
||||
REPORT_PORTAL_URL: ${{ secrets.REPORT_PORTAL_URL }}
|
||||
REPORT_PORTAL_TOKEN: ${{ secrets.REPORT_PORTAL_TOKEN }}
|
||||
@@ -105,7 +105,9 @@ jobs:
|
||||
e2es-playwright:
|
||||
needs: [lint, build, unit-tests]
|
||||
name: 'E2E Playwright - ${{ matrix.e2e-suites.name }}'
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-24.04
|
||||
env:
|
||||
NODE_OPTIONS: --dns-result-order=ipv4first
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
@@ -165,18 +167,31 @@ jobs:
|
||||
path: ./dist/content-ce
|
||||
key: cache-dist-${{ github.run_id }}
|
||||
|
||||
- name: Deploy local ACS
|
||||
uses: ./.github/actions/deploy-local-acs
|
||||
with:
|
||||
docker_username: ${{ secrets.DOCKER_USERNAME }}
|
||||
docker_password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
quay_username: ${{ secrets.QUAY_USERNAME }}
|
||||
quay_password: ${{ secrets.QUAY_PASSWORD }}
|
||||
|
||||
- name: Before e2e
|
||||
uses: ./.github/actions/before-e2e
|
||||
|
||||
- name: before playwright
|
||||
- name: Before playwright
|
||||
shell: bash
|
||||
run: npx playwright install chromium
|
||||
|
||||
- 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
|
||||
|
||||
- name: Debug Ingress Controller Logs
|
||||
if: always()
|
||||
run: |
|
||||
kubectl logs -n ingress-nginx -l app.kubernetes.io/name=ingress-nginx --tail=-1
|
||||
|
||||
finalize:
|
||||
if: ${{ always() }}
|
||||
|
Reference in New Issue
Block a user