--- name: CI on: pull_request: push: jobs: molecule: runs-on: ubuntu-latest name: molecule strategy: matrix: ansible_args: - --skip-tags=replicas - -t replicas env: DOCKER_API_VERSION: "1.41" DEBUG_OUTPUT_DIR: /tmp/awx_operator_molecule_test steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: "3.8" - name: Install Dependencies run: | pip install -r molecule/requirements.txt - name: Install Collections run: | ansible-galaxy collection install -r molecule/requirements.yml - name: Run Molecule env: MOLECULE_VERBOSITY: 3 PY_COLORS: '1' ANSIBLE_FORCE_COLOR: '1' STORE_DEBUG_OUTPUT: true run: | sudo rm -f $(which kustomize) make kustomize KUSTOMIZE_PATH=$(readlink -f bin/kustomize) molecule test -s kind -- ${{ matrix.ansible_args }} - name: Upload artifacts for failed tests if Run Molecule fails if: failure() uses: actions/upload-artifact@v4 with: name: awx_operator_molecule_test path: ${{ env.DEBUG_OUTPUT_DIR }} helm: runs-on: ubuntu-latest name: helm steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Create k8s Kind Cluster uses: helm/kind-action@v1.10.0 - name: Build operator image and load into kind run: | IMG=awx-operator-ci make docker-build kind load docker-image --name chart-testing awx-operator-ci - name: Patch pull policy for tests run: | kustomize edit add patch --path ../testing/pull_policy/Never.yaml working-directory: config/default - name: Build and lint helm chart run: | IMG=awx-operator-ci make helm-chart helm lint ./charts/awx-operator - name: Install kubeval run: | mkdir tmp && cd tmp wget https://github.com/instrumenta/kubeval/releases/latest/download/kubeval-linux-amd64.tar.gz tar xf kubeval-linux-amd64.tar.gz sudo cp kubeval /usr/local/bin working-directory: ./charts - name: Run kubeval run: | helm template -n awx awx-operator > tmp/test.yaml kubeval --strict --force-color --ignore-missing-schemas tmp/test.yaml working-directory: ./charts - name: Install helm chart run: | helm install --wait my-awx-operator --namespace awx --create-namespace ./charts/awx-operator no-log: runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v4 - name: Check no_log statements run: | set +e no_log=$(grep -nr ' no_log:' roles | grep -v '"{{ no_log }}"') if [ -n "${no_log}" ]; then echo 'Please update the following no_log statement(s) with the "{{ no_log }}" value' echo "${no_log}" exit 1 fi nox-sessions: uses: ./.github/workflows/reusable-nox.yml