Run e2e tests #248
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Run e2e tests | |
on: | |
workflow_dispatch: | |
issue_comment: | |
types: | |
- created | |
env: | |
KUTTL_VERSION: 0.11.0 | |
jobs: | |
casskop-image: | |
runs-on: ubuntu-latest | |
if: | | |
github.event_name == 'workflow_dispatch' || ( | |
github.event.issue.pull_request && | |
github.event.comment.user.login == github.repository_owner && | |
contains(github.event.comment.body, '/kuttl-tests') | |
) | |
permissions: | |
packages: write | |
steps: | |
- id: lower-repo | |
shell: pwsh | |
run: | | |
"::set-output name=repository::$($env:GITHUB_REPOSITORY.ToLowerInvariant())" | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Log in to the Container registry | |
uses: docker/[email protected] | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Get PR branch name | |
id: get-branch | |
env: | |
REPO: ${{ github.repository }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
if [ "${{ github.event_name }}" = "issue_comment" ] | |
then | |
echo ::set-output name=branch::$(gh pr view ${{ github.event.issue.number }} --repo $REPO --json headRefName --jq '.headRefName') | |
else | |
echo ::set-output name=branch::${{ github.ref_name }} | |
fi | |
- name: Build and push Docker image | |
uses: docker/build-push-action@v4 | |
with: | |
context: . | |
file: docker/casskop/Dockerfile | |
tags: ghcr.io/${{ steps.lower-repo.outputs.repository }}:${{ steps.get-branch.outputs.branch }} | |
push: true | |
install-kuttl: | |
needs: casskop-image | |
runs-on: ubuntu-latest | |
steps: | |
- name: Cache Kuttl | |
id: cache-kuttl | |
uses: actions/[email protected] | |
with: | |
path: kuttl | |
key: ${{ runner.os }}-kuttl-${{ env.KUTTL_VERSION }} | |
- name: download-kuttl | |
if: steps.cache-kuttl.outputs.cache-hit != 'true' | |
run: | | |
curl -L https://github.com/kudobuilder/kuttl/releases/download/v${{ env.KUTTL_VERSION }}/kubectl-kuttl_${{ env.KUTTL_VERSION }}_linux_i386 -o kuttl | |
kuttl-casskop: | |
needs: install-kuttl | |
runs-on: ubuntu-latest | |
strategy: | |
max-parallel: 2 | |
matrix: | |
test-name: [operations, sidecars, scaling, multi-dcs, backup-restore, nodetool] | |
steps: | |
- id: lower-repo | |
shell: pwsh | |
run: | | |
"::set-output name=repository::$($env:GITHUB_REPOSITORY.ToLowerInvariant())" | |
- name: Get PR branch name | |
id: get-branch | |
env: | |
REPO: ${{ github.repository }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
if [ "${{ github.event_name }}" = "issue_comment" ] | |
then | |
echo ::set-output name=branch::$(gh pr view ${{ github.event.issue.number }} --repo $REPO --json headRefName --jq '.headRefName') | |
else | |
echo ::set-output name=branch::${{ github.ref_name }} | |
fi | |
- name: Checkout branch | |
uses: actions/checkout@v3 | |
with: | |
ref: ${{ steps.get-branch.outputs.branch }} | |
- uses: rinx/[email protected] | |
with: | |
version: v5.4.0 | |
options: --image rancher/k3s:v1.24.13-k3s1 | |
- uses: azure/setup-helm@v1 | |
with: | |
version: v3.8.1 | |
- name: Restore Kuttl | |
id: cache-kuttl | |
uses: actions/[email protected] | |
with: | |
path: kuttl | |
key: ${{ runner.os }}-kuttl-${{ env.KUTTL_VERSION }} | |
- name: Add aws-backup-secrets with S3 | |
if: matrix.test-name == 'backup-restore' | |
working-directory: test/kuttl | |
run: | | |
cat <<EOF >> backup-restore/00-createCluster.yaml | |
--- | |
apiVersion: v1 | |
kind: Secret | |
metadata: | |
name: aws-backup-secrets | |
type: Opaque | |
stringData: | |
awsaccesskeyid: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
awssecretaccesskey: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
awsregion: us-west-2 | |
EOF | |
cat <<EOF >> backup-restore/00-assert.yaml | |
--- | |
apiVersion: v1 | |
kind: Secret | |
metadata: | |
name: aws-backup-secrets | |
EOF | |
- name: Run kuttl tests | |
run: | | |
chmod u+x kuttl | |
PATH=$PWD:$PATH | |
helm install casskop charts/casskop --set image.tag=${{ steps.get-branch.outputs.branch }} --set image.repository=ghcr.io/${{ steps.lower-repo.outputs.repository }} | |
cd test/kuttl/ | |
kuttl test --test ${{ matrix.test-name }} --namespace default --skip-delete |