| name: E2E checks |
| on: |
| pull_request: |
| types: [opened, synchronize, reopened, ready_for_review] |
| paths-ignore: |
| - "LICENSE" |
| - "**/.gitignore" |
| - "**.md" |
| - "**.adoc" |
| - "*.txt" |
| - "docsimg/**" |
| - ".ci/jenkins/**" |
| |
| env: |
| GO_VERSION: 1.21 |
| KIND_VERSION: v0.20.0 |
| |
| jobs: |
| e2e: |
| concurrency: |
| group: sonataflow-operator-e2e-tests-${{ github.head_ref }} |
| cancel-in-progress: true |
| timeout-minutes: 120 |
| runs-on: ubuntu-latest |
| name: End-to-end tests (Kind) |
| steps: |
| - name: Install package |
| run: | |
| sudo apt-get update &&\ |
| sudo apt-get -y install --no-install-recommends \ |
| btrfs-progs \ |
| libgpgme-dev \ |
| libbtrfs-dev \ |
| libdevmapper-dev \ |
| libkrb5-dev |
| |
| - name: Checkout Code |
| uses: actions/checkout@v3 |
| with: |
| ref: ${{ github.event.pull_request.head.sha }} |
| |
| - name: Install Go |
| uses: actions/setup-go@v3 |
| with: |
| go-version: ${{ env.GO_VERSION }} |
| cache: true |
| |
| - name: Setup Kind cluster |
| run: | |
| make KIND_VERSION=${{ env.KIND_VERSION }} create-cluster |
| |
| - name: Set OPERATOR_IMAGE_NAME to point to Kind's local registry |
| run: | |
| echo "OPERATOR_IMAGE_NAME=127.0.0.1:5001/kogito-serverless-operator:0.0.1" >> $GITHUB_ENV |
| |
| - name: Build operator image |
| run: | |
| make docker-build IMG=${{ env.OPERATOR_IMAGE_NAME }} |
| |
| - name: Load image in Kind |
| run: | |
| kind load docker-image 127.0.0.1:5001/kogito-serverless-operator:0.0.1 |
| |
| - name: Check pods |
| run: | |
| kubectl version |
| kubectl get pods -A |
| |
| # TODO: install the operator-sdk first, then cache the installation |
| |
| - name: Deploy operator |
| run: | |
| make deploy IMG=${{ env.OPERATOR_IMAGE_NAME }} |
| kubectl wait pod -A -l control-plane=sonataflow-operator --for condition=Ready |
| |
| - name: Run tests |
| run: | |
| make test-e2e |
| |
| - name: Export kind logs |
| if: always() |
| run: | |
| mkdir -p /tmp/kind/logs |
| kind export logs --loglevel=debug /tmp/kind/logs |
| |
| - name: Upload kind logs |
| if: always() |
| uses: actions/upload-artifact@v3 |
| with: |
| name: kind-logs-${{ env.JOB_NAME }}-${{ github.run_id }} |
| path: /tmp/kind/logs |
| retention-days: 1 |