Skip to content

Run e2e tests

Run e2e tests #1

Workflow file for this run

name: Run e2e tests
on:
workflow_call:
inputs:
e2e-selector:
default: quick
description: "Selector for which tests to run, defaults to 'quick'"
required: true
type: string
e2e-flags:
type: string
description: "Flags to pass to chainsaw when running e2e tests"
workflow_dispatch:
inputs:
e2e-selector:
default: quick
description: "Selector for which tests to run, defaults to 'quick'"
type: choice
required: true
options:
- quick
- flavors
- k3s
- rke2
- default-cluster
- linodecluster
- linodemachine
- linodeobj
- linodevpc
- all
e2e-flags:
type: string
description: "Flags to pass to chainsaw when running e2e tests"
permissions:
contents: read
pull-requests: read
actions: read
concurrency:
group: e2e-${{ github.ref }}
cancel-in-progress: true
jobs:
e2e-test:
name: ${{ format('{0}-e2e-tests', inputs.e2e-selector) }}
runs-on: ubuntu-latest
env:
GITHUB_TOKEN: ${{ secrets.github_token }}
LINODE_TOKEN: ${{ secrets.LINODE_TOKEN }}
steps:
- name: Harden Runner
uses: step-security/harden-runner@v2
with:
disable-sudo: true
egress-policy: block
allowed-endpoints: >
api.linode.com:443
api.github.com:443
github.com:443
gcr.io:443
ghcr.io:443
proxy.golang.org:443
sum.golang.org:443
*.githubusercontent.com:443
docker.io:443
registry-1.docker.io:443
auth.docker.io:443
production.cloudflare.docker.com:443
storage.googleapis.com:443
registry.k8s.io:443
*.pkg.dev:443
*.amazonaws.com:443
*.blob.core.windows.net:443
quay.io:443
*.quay.io:443
api.snapcraft.io:443
cloud.tilt.dev:443
kubernetes-sigs.github.io:443
charts.jetstack.io:443
helm.cilium.io:443
linode.github.io:443
- uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: 'go.mod'
check-latest: true
- name: Docker cache
uses: ScribeMD/[email protected]
with:
key: docker-${{ runner.os }}-${{ hashFiles('go.sum') }}
- name: Run E2E Test
env:
E2E_FLAGS: ${{ inputs.e2e-flags }}
E2E_SELECTOR: ${{ inputs.e2e-selector }}
INSTALL_K3S_PROVIDER: true
INSTALL_RKE2_PROVIDER: true
LINODE_REGION: us-sea
LINODE_CONTROL_PLANE_MACHINE_TYPE: g6-standard-2
LINODE_MACHINE_TYPE: g6-standard-2
CLUSTERCTL_CONFIG: /home/runner/work/cluster-api-provider-linode/cluster-api-provider-linode/e2e/gha-clusterctl-config.yaml
run: make e2etest
- name: Copy logs
if: ${{ always() }}
run: docker cp tilt-control-plane:/var/log .logs
- uses: actions/upload-artifact@v4
if: ${{ always() }}
with:
name: logs
path: .logs/*
overwrite: true