From bbf7c0b30d69d604d341b4220879a8105377690f Mon Sep 17 00:00:00 2001 From: Alan Rominger Date: Mon, 25 Sep 2023 09:02:20 -0400 Subject: [PATCH] Consolidate image and server setup in several checks (#14477) --- .github/actions/awx_devel_image/action.yml | 28 +++++++++++++++++++++ .github/actions/run_awx_devel/action.yml | 28 +++++---------------- .github/workflows/ci.yml | 15 +++++++++-- .github/workflows/e2e_test.yml | 1 - Makefile | 13 +--------- tools/docker-compose/ansible/smoke-test.yml | 17 ------------- 6 files changed, 48 insertions(+), 54 deletions(-) create mode 100644 .github/actions/awx_devel_image/action.yml diff --git a/.github/actions/awx_devel_image/action.yml b/.github/actions/awx_devel_image/action.yml new file mode 100644 index 000000000000..8b7081292bab --- /dev/null +++ b/.github/actions/awx_devel_image/action.yml @@ -0,0 +1,28 @@ +name: Setup images for AWX +description: Builds new awx_devel image +inputs: + github-token: + description: GitHub Token for registry access + required: true +runs: + using: composite + steps: + - name: Get python version from Makefile + shell: bash + run: echo py_version=`make PYTHON_VERSION` >> $GITHUB_ENV + + - 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 devel image to warm cache + shell: bash + run: docker pull ghcr.io/${{ github.repository_owner }}/awx_devel:${{ github.base_ref }} + + - name: Build image for current source checkout + shell: bash + run: | + DEV_DOCKER_TAG_BASE=ghcr.io/${{ github.repository_owner }} \ + COMPOSE_TAG=${{ github.base_ref }} \ + make docker-compose-build diff --git a/.github/actions/run_awx_devel/action.yml b/.github/actions/run_awx_devel/action.yml index e7c05ca9958f..80b02669cf82 100644 --- a/.github/actions/run_awx_devel/action.yml +++ b/.github/actions/run_awx_devel/action.yml @@ -1,12 +1,8 @@ -# 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) +name: Run AWX docker-compose description: Runs AWX with `make docker-compose` inputs: github-token: - description: GitHub Token for registry access + description: GitHub Token to pass to awx_devel_image required: true build-ui: description: Should the UI be built? @@ -23,9 +19,10 @@ outputs: runs: using: composite steps: - - name: Get python version from Makefile - shell: bash - run: echo py_version=`make PYTHON_VERSION` >> $GITHUB_ENV + - name: Build awx_devel image for running checks + uses: ./.github/actions/awx_devel_image + with: + github-token: ${{ inputs.github-token }} - name: Upgrade ansible-core shell: bash @@ -35,19 +32,6 @@ runs: 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: | diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e69903b25288..7612aa61c2aa 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -37,16 +37,27 @@ jobs: steps: - uses: actions/checkout@v3 + - name: Build awx_devel image for running checks + uses: ./.github/actions/awx_devel_image + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + - name: Run check ${{ matrix.tests.name }} - run: AWX_DOCKER_CMD='${{ matrix.tests.command }}' make github_ci_runner + run: AWX_DOCKER_CMD='${{ matrix.tests.command }}' make docker-runner dev-env: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 + - uses: ./.github/actions/run_awx_devel + id: awx + with: + build-ui: false + github-token: ${{ secrets.GITHUB_TOKEN }} + - name: Run smoke test - run: make github_ci_setup && ansible-playbook tools/docker-compose/ansible/smoke-test.yml -v + run: ansible-playbook tools/docker-compose/ansible/smoke-test.yml -v awx-operator: runs-on: ubuntu-latest diff --git a/.github/workflows/e2e_test.yml b/.github/workflows/e2e_test.yml index 899afecd79f4..fa7ee3e429c9 100644 --- a/.github/workflows/e2e_test.yml +++ b/.github/workflows/e2e_test.yml @@ -26,7 +26,6 @@ jobs: with: build-ui: true github-token: ${{ secrets.GITHUB_TOKEN }} - log-filename: e2e-${{ matrix.job }}.log - name: Pull awx_cypress_base image run: | diff --git a/Makefile b/Makefile index 6f08a6018b78..25005bdc9d6c 100644 --- a/Makefile +++ b/Makefile @@ -79,7 +79,7 @@ I18N_FLAG_FILE = .i18n_built sdist \ ui-release ui-devel \ VERSION PYTHON_VERSION docker-compose-sources \ - .git/hooks/pre-commit github_ci_setup github_ci_runner + .git/hooks/pre-commit clean-tmp: rm -rf tmp/ @@ -324,21 +324,10 @@ test: cd awxkit && $(VENV_BASE)/awx/bin/tox -re py3 awx-manage check_migrations --dry-run --check -n 'missing_migration_file' -## Login to Github container image registry, pull image, then build image. -github_ci_setup: - # GITHUB_ACTOR is automatic github actions env var - # CI_GITHUB_TOKEN is defined in .github files - echo $(CI_GITHUB_TOKEN) | docker login ghcr.io -u $(GITHUB_ACTOR) --password-stdin - docker pull $(DEVEL_IMAGE_NAME) || : # Pre-pull image to warm build cache - $(MAKE) docker-compose-build - ## Runs AWX_DOCKER_CMD inside a new docker container. docker-runner: docker run -u $(shell id -u) --rm -v $(shell pwd):/awx_devel/:Z --workdir=/awx_devel $(DEVEL_IMAGE_NAME) $(AWX_DOCKER_CMD) -## Builds image and runs AWX_DOCKER_CMD in it, mainly for .github checks. -github_ci_runner: github_ci_setup docker-runner - test_collection: rm -f $(shell ls -d $(VENV_BASE)/awx/lib/python* | head -n 1)/no-global-site-packages.txt if [ "$(VENV_BASE)" ]; then \ diff --git a/tools/docker-compose/ansible/smoke-test.yml b/tools/docker-compose/ansible/smoke-test.yml index f4002c8567e2..591ceed39674 100644 --- a/tools/docker-compose/ansible/smoke-test.yml +++ b/tools/docker-compose/ansible/smoke-test.yml @@ -11,23 +11,6 @@ - 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: "{{ playbook_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 <