blob: cf3db30534d329db02c9d9dd8fff6aa32d4cae3f [file] [log] [blame]
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