--- name: CI env: BRANCH: ${{ github.base_ref || 'devel' }} on: pull_request: jobs: common_tests: name: ${{ matrix.tests.name }} runs-on: ubuntu-latest permissions: packages: write contents: read strategy: fail-fast: false matrix: tests: - name: api-test command: /start_tests.sh label: Run API Tests - name: api-lint command: /var/lib/awx/venv/awx/bin/tox -e linters label: Run API Linters - name: api-swagger command: /start_tests.sh swagger label: Generate API Reference - name: awx-collection command: /start_tests.sh test_collection_all label: Run Collection Tests - name: api-schema label: Check API Schema command: /start_tests.sh detect-schema-change SCHEMA_DIFF_BASE_BRANCH=${{ github.event.pull_request.base.ref }} - name: ui-lint label: Run UI Linters command: make ui-lint - name: ui-test label: Run UI Tests command: make ui-test 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: ${{ 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 }} awx-operator: runs-on: ubuntu-latest steps: - name: Checkout awx uses: actions/checkout@v2 with: path: awx - name: Checkout awx-operator uses: actions/checkout@v2 with: repository: ansible/awx-operator path: awx-operator - name: Install playbook dependencies run: | python3 -m pip install docker - name: Build AWX image working-directory: awx run: | ansible-playbook -v tools/ansible/build.yml \ -e headless=yes \ -e awx_image=awx \ -e awx_image_tag=ci \ -e ansible_python_interpreter=$(which python3) - name: Run test deployment with awx-operator working-directory: awx-operator run: | python3 -m pip install -r molecule/requirements.txt ansible-galaxy collection install -r molecule/requirements.yml sudo rm -f $(which kustomize) make kustomize KUSTOMIZE_PATH=$(readlink -f bin/kustomize) molecule -v test -s kind env: AWX_TEST_IMAGE: awx AWX_TEST_VERSION: ci