mirror of
https://github.com/ansible/awx.git
synced 2026-02-21 13:10:11 -03:30
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 <rick@elrod.me>
90 lines
2.8 KiB
YAML
90 lines
2.8 KiB
YAML
# 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
|