-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Enable collection integration tests on GHA
There are a number of changes here: - Abstract out a GHA composite action for running the dev environment - Update the e2e tests to use that new abstracted action - Introduce a new (matrixed) job for running collection integration tests. This splits the jobs up based on filename. - Collect coverage info and generate an html report that people can download easily to see collection coverage info. - Do some hacks to delete the intermediary coverage file artifacts which aren't needed after the job finishes. Signed-off-by: Rick Elrod <[email protected]>
- Loading branch information
Showing
11 changed files
with
278 additions
and
63 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
# This currently *always* uses the "warm build cache" image | ||
# We should do something to allow forcing a rebuild, probably by looking for | ||
# some string in the commit message or something. | ||
|
||
name: Run AWX (devel environment) | ||
description: Runs AWX with `make docker-compose` | ||
inputs: | ||
github-token: | ||
description: GitHub Token for registry access | ||
required: true | ||
build-ui: | ||
description: Should the UI be built? | ||
required: false | ||
default: false | ||
type: boolean | ||
outputs: | ||
ip: | ||
description: The IP of the tools_awx_1 container | ||
value: ${{ steps.data.outputs.ip }} | ||
admin-token: | ||
description: OAuth token for admin user | ||
value: ${{ steps.data.outputs.admin_token }} | ||
runs: | ||
using: composite | ||
steps: | ||
- name: Get python version from Makefile | ||
shell: bash | ||
run: echo py_version=`make PYTHON_VERSION` >> $GITHUB_ENV | ||
|
||
- name: Upgrade ansible-core | ||
shell: bash | ||
run: python3 -m pip install --upgrade ansible-core | ||
|
||
- name: Install system deps | ||
shell: bash | ||
run: sudo apt-get install -y gettext | ||
|
||
- name: Log in to registry | ||
shell: bash | ||
run: | | ||
echo "${{ inputs.github-token }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin | ||
- name: Pre-pull latest available devel image and build HEAD on top of it | ||
shell: bash | ||
run: | | ||
docker pull ghcr.io/${{ github.repository_owner }}/awx_devel:${{ github.base_ref }} | ||
DEV_DOCKER_TAG_BASE=ghcr.io/${{ github.repository_owner }} \ | ||
COMPOSE_TAG=${{ github.base_ref }} \ | ||
make docker-compose-build | ||
- name: Start AWX | ||
shell: bash | ||
run: | | ||
DEV_DOCKER_TAG_BASE=ghcr.io/${{ github.repository_owner }} \ | ||
COMPOSE_TAG=${{ github.base_ref }} \ | ||
COMPOSE_UP_OPTS="-d" \ | ||
make docker-compose | ||
- name: Update default AWX password | ||
shell: bash | ||
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: Build UI | ||
# This must be a string comparison in composite actions: | ||
# https://github.com/actions/runner/issues/2238 | ||
if: ${{ inputs.build-ui == 'true' }} | ||
shell: bash | ||
run: | | ||
docker exec -i tools_awx_1 sh <<-EOSH | ||
make ui-devel | ||
EOSH | ||
- name: Get instance data | ||
id: data | ||
shell: bash | ||
run: | | ||
AWX_IP=$(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' tools_awx_1) | ||
ADMIN_TOKEN=$(docker exec -i tools_awx_1 awx-manage create_oauth2_token --user admin) | ||
echo "ip=$AWX_IP" >> $GITHUB_OUTPUT | ||
echo "admin_token=$ADMIN_TOKEN" >> $GITHUB_OUTPUT |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
name: Upload logs | ||
description: Upload logs from `make docker-compose` devel environment to GitHub as an artifact | ||
inputs: | ||
log-filename: | ||
description: "*Unique* name of the log file" | ||
required: true | ||
runs: | ||
using: composite | ||
steps: | ||
- name: Get AWX logs | ||
shell: bash | ||
run: | | ||
docker logs tools_awx_1 > ${{ inputs.log-filename }} | ||
- name: Upload AWX logs as artifact | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: docker-compose-logs | ||
path: ${{ inputs.log-filename }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.