--- 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