summaryrefslogtreecommitdiffstats
path: root/.github
diff options
context:
space:
mode:
authorTiago Góes <tiago.goes2009@gmail.com>2021-07-26 16:32:32 +0200
committerGitHub <noreply@github.com>2021-07-26 16:32:32 +0200
commit67407850541ff1b19457c6e943468e83d537378e (patch)
tree3506a09321ccf808da40b42d9847c06d678939eb /.github
parentMerge pull request #10716 from oweel/10392-return_404_ad_hoc_command_events (diff)
parentAdd workflow to run e2e tests when the label needs_test is applied to the PR (diff)
downloadawx-67407850541ff1b19457c6e943468e83d537378e.tar.xz
awx-67407850541ff1b19457c6e943468e83d537378e.zip
Merge pull request #10725 from ansible/e2e-tests
Add E2E tests workflow
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/e2e_test.yml106
1 files changed, 106 insertions, 0 deletions
diff --git a/.github/workflows/e2e_test.yml b/.github/workflows/e2e_test.yml
new file mode 100644
index 0000000000..2abdbc49fc
--- /dev/null
+++ b/.github/workflows/e2e_test.yml
@@ -0,0 +1,106 @@
+---
+name: E2E Tests
+on:
+ pull_request:
+ types: [labeled]
+jobs:
+ e2e-test:
+ if: contains(github.event.pull_request.labels.*.name, 'qe:e2e')
+ runs-on: ubuntu-latest
+ 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: 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: Log in to gcr.io
+ shell: bash
+ env:
+ GCR_PULL_SECRET: ${{ secrets.GCR_PULL_SECRET }}
+ run: |
+ echo "$GCR_PULL_SECRET" | docker login -u _json_key --password-stdin gcr.io
+
+ - name: Pull awx_cypress_base image
+ run: |
+ docker pull gcr.io/ansible-tower-engineering/awx_cypress_base:stable
+
+ - name: Checkout tower-qa
+ 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 tower-qa/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 tower-qa/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-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
+
+