diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index faa2b02192..345d35563a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,8 +1,11 @@ --- name: CI env: - BRANCH: ${{ github.base_ref || 'devel' }} LC_ALL: "C.UTF-8" # prevent ERROR: Ansible could not initialize the preferred locale: unsupported locale setting + py_version: "3.9" + CI_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + DEV_DOCKER_TAG_BASE: ghcr.io/${{ github.repository_owner }} + COMPOSE_TAG: ${{ github.base_ref || 'devel' }} on: pull_request: jobs: @@ -43,60 +46,23 @@ jobs: steps: - uses: actions/checkout@v2 - - name: Get python version from Makefile - run: echo py_version=`make PYTHON_VERSION` >> $GITHUB_ENV + - name: Run check ${{ matrix.tests.label }} + run: make github_ci_runner + env: + CI_GITHUB_COMMAND: ${{ matrix.tests.command }} - - 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: ${{ matrix.texts.label }} - run: | - 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 }} 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 + run: make github_ci_setup && ansible-playbook tools/docker-compose/ansible/smoke-test.yml -v awx-operator: runs-on: ubuntu-latest @@ -112,10 +78,6 @@ jobs: repository: ansible/awx-operator path: awx-operator - - name: Get python version from Makefile - working-directory: awx - run: echo py_version=`make PYTHON_VERSION` >> $GITHUB_ENV - - name: Install python ${{ env.py_version }} uses: actions/setup-python@v2 with: diff --git a/Makefile b/Makefile index 1185666e76..642513dace 100644 --- a/Makefile +++ b/Makefile @@ -65,7 +65,7 @@ I18N_FLAG_FILE = .i18n_built sdist \ ui-release ui-devel \ VERSION PYTHON_VERSION docker-compose-sources \ - .git/hooks/pre-commit + .git/hooks/pre-commit github_ci_setup github_ci_runner clean-tmp: rm -rf tmp/ @@ -301,6 +301,14 @@ test: cd awxkit && $(VENV_BASE)/awx/bin/tox -re py3 awx-manage check_migrations --dry-run --check -n 'missing_migration_file' +github_ci_setup: + echo $(CI_GITHUB_TOKEN) | docker login ghcr.io -u $(GITHUB_ACTOR) --password-stdin # Log in to registry + docker pull $(DEVEL_IMAGE_NAME) || : # Pre-pull image to warm build cache + make docker-compose-build # Build image + +github_ci_runner: github_ci_setup + docker run -u $(shell id -u) --rm -v $(GITHUB_WORKSPACE):/awx_devel/:Z --workdir=/awx_devel $(DEVEL_IMAGE_NAME) $(CI_GITHUB_COMMAND) + 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 79b0fc2ee2..f4002c8567 100644 --- a/tools/docker-compose/ansible/smoke-test.yml +++ b/tools/docker-compose/ansible/smoke-test.yml @@ -17,7 +17,7 @@ environment: COMPOSE_UP_OPTS: -d args: - chdir: "{{ repo_dir }}" + chdir: "{{ playbook_dir }}/../../../" # Takes a while for migrations to finish - name: Wait for the dev environment to be ready