diff options
author | Tiago Góes <tiago.goes2009@gmail.com> | 2021-07-26 16:32:32 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-26 16:32:32 +0200 |
commit | 67407850541ff1b19457c6e943468e83d537378e (patch) | |
tree | 3506a09321ccf808da40b42d9847c06d678939eb /.github | |
parent | Merge pull request #10716 from oweel/10392-return_404_ad_hoc_command_events (diff) | |
parent | Add workflow to run e2e tests when the label needs_test is applied to the PR (diff) | |
download | awx-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.yml | 106 |
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 + + |