mirror of
https://github.com/ansible/awx.git
synced 2026-01-09 23:12:08 -03:30
Add a CI check for the development environment
This commit is contained in:
parent
b2fe1c46ee
commit
f04d7733bb
32
.github/workflows/ci.yml
vendored
32
.github/workflows/ci.yml
vendored
@ -5,7 +5,7 @@ env:
|
|||||||
on:
|
on:
|
||||||
pull_request:
|
pull_request:
|
||||||
jobs:
|
jobs:
|
||||||
common_tests:
|
common-tests:
|
||||||
name: ${{ matrix.tests.name }}
|
name: ${{ matrix.tests.name }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
permissions:
|
permissions:
|
||||||
@ -66,6 +66,36 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
docker run -u $(id -u) --rm -v ${{ github.workspace}}:/awx_devel/:Z \
|
docker run -u $(id -u) --rm -v ${{ github.workspace}}:/awx_devel/:Z \
|
||||||
--workdir=/awx_devel ghcr.io/${{ github.repository_owner }}/awx_devel:${{ env.BRANCH }} ${{ matrix.tests.command }}
|
--workdir=/awx_devel ghcr.io/${{ github.repository_owner }}/awx_devel:${{ env.BRANCH }} ${{ matrix.tests.command }}
|
||||||
|
dev-env:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
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: 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:${{ env.BRANCH }} || :
|
||||||
|
|
||||||
|
- name: Build image
|
||||||
|
run: |
|
||||||
|
DEV_DOCKER_TAG_BASE=ghcr.io/${{ github.repository_owner }} COMPOSE_TAG=${{ env.BRANCH }} make docker-compose-build
|
||||||
|
|
||||||
|
- name: Run smoke test
|
||||||
|
run: |
|
||||||
|
export DEV_DOCKER_TAG_BASE=ghcr.io/${{ github.repository_owner }}
|
||||||
|
export COMPOSE_TAG=${{ env.BRANCH }}
|
||||||
|
ansible-playbook tools/docker-compose/ansible/smoke-test.yml -e repo_dir=$(pwd) -v
|
||||||
|
|
||||||
awx-operator:
|
awx-operator:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|||||||
77
tools/docker-compose/ansible/smoke-test.yml
Normal file
77
tools/docker-compose/ansible/smoke-test.yml
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
---
|
||||||
|
#
|
||||||
|
# This is used by a CI check in GitHub Actions and isnt really
|
||||||
|
# meant to be run locally.
|
||||||
|
#
|
||||||
|
# The development environment does some unfortunate things to
|
||||||
|
# make rootless podman work inside of a docker container.
|
||||||
|
# The goal here is to essentially tests that the awx user is
|
||||||
|
# able to run `podman run`.
|
||||||
|
#
|
||||||
|
- name: Test that the development environment is able to launch a job
|
||||||
|
hosts: localhost
|
||||||
|
tasks:
|
||||||
|
- name: Boot the development environment
|
||||||
|
command: |
|
||||||
|
make docker-compose
|
||||||
|
environment:
|
||||||
|
COMPOSE_UP_OPTS: -d
|
||||||
|
args:
|
||||||
|
chdir: "{{ repo_dir }}"
|
||||||
|
|
||||||
|
# Takes a while for migrations to finish
|
||||||
|
- name: Wait for the dev environment to be ready
|
||||||
|
uri:
|
||||||
|
url: "http://localhost:8013/api/v2/ping/"
|
||||||
|
register: _result
|
||||||
|
until: _result.status == 200
|
||||||
|
retries: 120
|
||||||
|
delay: 5
|
||||||
|
|
||||||
|
- name: Reset admin password
|
||||||
|
shell: |
|
||||||
|
docker exec -i tools_awx_1 bash <<EOSH
|
||||||
|
awx-manage update_password --username=admin --password=password
|
||||||
|
awx-manage create_preload_data
|
||||||
|
EOSH
|
||||||
|
|
||||||
|
- block:
|
||||||
|
- name: Launch Demo Job Template
|
||||||
|
awx.awx.job_launch:
|
||||||
|
name: Demo Job Template
|
||||||
|
wait: yes
|
||||||
|
validate_certs: no
|
||||||
|
controller_host: "http://localhost:8013"
|
||||||
|
controller_username: "admin"
|
||||||
|
controller_password: "password"
|
||||||
|
rescue:
|
||||||
|
- name: Get list of project updates and jobs
|
||||||
|
uri:
|
||||||
|
url: "http://localhost:8013/api/v2/{{ resource }}/"
|
||||||
|
user: admin
|
||||||
|
password: "password"
|
||||||
|
force_basic_auth: yes
|
||||||
|
register: job_lists
|
||||||
|
loop:
|
||||||
|
- project_updates
|
||||||
|
- jobs
|
||||||
|
loop_control:
|
||||||
|
loop_var: resource
|
||||||
|
|
||||||
|
- name: Get all job and project details
|
||||||
|
uri:
|
||||||
|
url: "http://localhost:8013{{ endpoint }}"
|
||||||
|
user: admin
|
||||||
|
password: "password"
|
||||||
|
force_basic_auth: yes
|
||||||
|
loop: |
|
||||||
|
{{ job_lists.results | map(attribute='json') | map(attribute='results') | flatten | map(attribute='url') }}
|
||||||
|
loop_control:
|
||||||
|
loop_var: endpoint
|
||||||
|
|
||||||
|
- name: Re-emit failure
|
||||||
|
vars:
|
||||||
|
failed_task:
|
||||||
|
result: '{{ ansible_failed_result }}'
|
||||||
|
fail:
|
||||||
|
msg: '{{ failed_task }}'
|
||||||
Loading…
x
Reference in New Issue
Block a user