name: Test Suite on: [pull_request] jobs: call-inclusive-naming-check: name: Inclusive naming uses: canonical-web-and-design/Inclusive-naming/.github/workflows/woke.yaml@main with: fail-on-error: "true" lint-unit: name: Lint Unit uses: charmed-kubernetes/workflows/.github/workflows/lint-unit.yaml@main with: python: "['3.8', '3.9', '3.10', '3.11']" needs: - call-inclusive-naming-check validate-wheelhouse: name: Validate Wheelhouse uses: charmed-kubernetes/workflows/.github/workflows/validate-wheelhouse.yaml@main needs: - lint-unit build-dependencies: name: Build Charm and Resources runs-on: ubuntu-20.04 needs: - lint-unit steps: - name: Check out code uses: actions/checkout@v3 - name: Install Snaps run: | sudo apt update sudo apt install python3-virtualenv -y sudo snap install docker --channel=stable sudo snap install charm --channel=2.x/stable --classic - name: Build Charm run: charm build . -F - name: Build Resources run: sudo ./build-cni-resources.sh - name: Upload charm artifact uses: actions/upload-artifact@v3 with: name: charm path: ./*.charm - name: Upload resource artifact uses: actions/upload-artifact@v3 with: name: cni-resources path: ./cni*.tgz integration-test: name: Integration test with VMWare runs-on: self-hosted timeout-minutes: 360 needs: - build-dependencies strategy: matrix: juju: ['2.9', '3.0'] steps: - name: Check out code uses: actions/checkout@v3 - name: Setup Python uses: actions/setup-python@v4 with: python-version: 3.8 - name: Setup operator environment uses: charmed-kubernetes/actions-operator@main with: provider: vsphere juju-channel: ${{ matrix.juju }}/stable credentials-yaml: ${{ secrets.CREDENTIALS_YAML }} clouds-yaml: ${{ secrets.CLOUDS_YAML }} bootstrap-constraints: "arch=amd64 cores=2 mem=4G" bootstrap-options: "${{ secrets.JAMMY_BOOTSTRAP_OPTIONS }} --model-default datastore=vsanDatastore --model-default primary-network=VLAN_2763" - name: Download charm artifacts uses: actions/download-artifact@v3 with: name: charm - name: Download resource artifacts uses: actions/download-artifact@v3 with: name: cni-resources - name: Run test run: tox -e integration -- --basetemp=/home/ubuntu/pytest - name: Setup Debug Artifact Collection if: ${{ failure() }} run: mkdir tmp - name: Collect Juju Status if: ${{ failure() }} run: | juju status 2>&1 | tee tmp/juju-status.txt juju-crashdump -s -m controller -a debug-layer -a config -o tmp/ mv juju-crashdump-* tmp/ | true - name: Upload debug artifacts if: ${{ failure() }} uses: actions/upload-artifact@v3 with: name: test-run-artifacts path: tmp