mirror of
https://github.com/ansible/awx.git
synced 2026-01-10 15:32:07 -03:30
Also just ignore one sanity test for the export module, instead of ignoring all of them. Also use latest ansible-test, and make it work on GHA (by using podman instead of docker). Signed-off-by: Rick Elrod <rick@elrod.me>
110 lines
3.6 KiB
YAML
110 lines
3.6 KiB
YAML
---
|
|
name: E2E Tests
|
|
env:
|
|
LC_ALL: "C.UTF-8" # prevent ERROR: Ansible could not initialize the preferred locale: unsupported locale setting
|
|
|
|
on:
|
|
pull_request_target:
|
|
types: [labeled]
|
|
jobs:
|
|
e2e-test:
|
|
if: contains(github.event.pull_request.labels.*.name, 'qe:e2e')
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 40
|
|
permissions:
|
|
packages: write
|
|
contents: read
|
|
strategy:
|
|
matrix:
|
|
job: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Get python version from Makefile
|
|
run: echo py_version=`make PYTHON_VERSION` >> $GITHUB_ENV
|
|
|
|
- name: Install python ${{ env.py_version }}
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: ${{ env.py_version }}
|
|
|
|
- name: Install system deps
|
|
run: sudo apt-get install -y gettext
|
|
|
|
- name: Log in to registry
|
|
run: |
|
|
echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
|
|
|
|
- name: Pre-pull image to warm build cache
|
|
run: |
|
|
docker pull ghcr.io/${{ github.repository_owner }}/awx_devel:${{ github.base_ref }}
|
|
|
|
- name: Build UI
|
|
run: |
|
|
DEV_DOCKER_TAG_BASE=ghcr.io/${{ github.repository_owner }} COMPOSE_TAG=${{ github.base_ref }} make ui-devel
|
|
|
|
- name: Start AWX
|
|
run: |
|
|
DEV_DOCKER_TAG_BASE=ghcr.io/${{ github.repository_owner }} COMPOSE_TAG=${{ github.base_ref }} make docker-compose &> make-docker-compose-output.log &
|
|
|
|
- name: Pull awx_cypress_base image
|
|
run: |
|
|
docker pull quay.io/awx/awx_cypress_base:latest
|
|
|
|
- name: Checkout test project
|
|
uses: actions/checkout@v2
|
|
with:
|
|
repository: ${{ github.repository_owner }}/tower-qa
|
|
ssh-key: ${{ secrets.QA_REPO_KEY }}
|
|
path: tower-qa
|
|
ref: devel
|
|
|
|
- name: Build cypress
|
|
run: |
|
|
cd ${{ secrets.E2E_PROJECT }}/ui-tests/awx-pf-tests
|
|
docker build -t awx-pf-tests .
|
|
|
|
- name: Update default AWX password
|
|
run: |
|
|
while [[ "$(curl -s -o /dev/null -w ''%{http_code}'' -k https://localhost:8043/api/v2/ping/)" != "200" ]]
|
|
do
|
|
echo "Waiting for AWX..."
|
|
sleep 5;
|
|
done
|
|
echo "AWX is up, updating the password..."
|
|
docker exec -i tools_awx_1 sh <<-EOSH
|
|
awx-manage update_password --username=admin --password=password
|
|
EOSH
|
|
|
|
- name: Run E2E tests
|
|
env:
|
|
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
|
|
run: |
|
|
export COMMIT_INFO_BRANCH=$GITHUB_HEAD_REF
|
|
export COMMIT_INFO_AUTHOR=$GITHUB_ACTOR
|
|
export COMMIT_INFO_SHA=$GITHUB_SHA
|
|
export COMMIT_INFO_REMOTE=$GITHUB_REPOSITORY_OWNER
|
|
cd ${{ secrets.E2E_PROJECT }}/ui-tests/awx-pf-tests
|
|
AWX_IP=$(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' tools_awx_1)
|
|
printenv > .env
|
|
echo "Executing tests:"
|
|
docker run \
|
|
--network '_sources_default' \
|
|
--ipc=host \
|
|
--env-file=.env \
|
|
-e CYPRESS_baseUrl="https://$AWX_IP:8043" \
|
|
-e CYPRESS_AWX_E2E_USERNAME=admin \
|
|
-e CYPRESS_AWX_E2E_PASSWORD='password' \
|
|
-e COMMAND="npm run cypress-concurrently-gha" \
|
|
-v /dev/shm:/dev/shm \
|
|
-v $PWD:/e2e \
|
|
-w /e2e \
|
|
awx-pf-tests run --project .
|
|
|
|
- name: Save AWX logs
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: AWX-logs-${{ matrix.job }}
|
|
path: make-docker-compose-output.log
|