mirror of
https://github.com/prometheus-operator/prometheus-operator.git
synced 2025-04-16 01:06:27 +00:00
* ci: add actionlint workflow for GitHub Actions This workflow integrates actionlint into the CI pipeline to lint and validate GitHub Actions workflows. Fixes #7094 Signed-off-by: slashexx dhruvpuri.35@gmail.com Co-authored-by: Simon Pasquier <spasquie@redhat.com>
102 lines
3.1 KiB
YAML
102 lines
3.1 KiB
YAML
name: e2e
|
|
on:
|
|
workflow_dispatch:
|
|
pull_request:
|
|
push:
|
|
branches:
|
|
- 'release-*'
|
|
- 'master'
|
|
- 'main'
|
|
tags:
|
|
- 'v*'
|
|
# To cancel running workflow when new commits pushed in a pull request
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
|
cancel-in-progress: true
|
|
jobs:
|
|
changed-files:
|
|
uses: ./.github/workflows/changed-files.yaml
|
|
e2e-tests:
|
|
name: E2E tests
|
|
runs-on: ubuntu-latest
|
|
needs: changed-files
|
|
if: ${{ needs.changed-files.outputs.non-markdown-files }}
|
|
strategy:
|
|
matrix:
|
|
suite: [alertmanager, prometheus, prometheusAllNS, thanosruler, operatorUpgrade]
|
|
include:
|
|
- suite: alertmanager
|
|
target: test-e2e-alertmanager
|
|
- suite: prometheus
|
|
target: test-e2e-prometheus
|
|
- suite: prometheusAllNS
|
|
target: test-e2e-prometheus-all-namespaces
|
|
- suite: thanosruler
|
|
target: test-e2e-thanos-ruler
|
|
- suite: operatorUpgrade
|
|
target: test-e2e-operator-upgrade
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Import environment variables from file
|
|
run: |
|
|
cat ".github/env" >> "$GITHUB_ENV"
|
|
echo "E2E_DIAGNOSTIC_DIRECTORY=$(mktemp -d)" >> "$GITHUB_ENV"
|
|
- name: Install Go
|
|
uses: actions/setup-go@v5
|
|
with:
|
|
go-version: '${{ env.golang-version }}'
|
|
check-latest: true
|
|
- name: Build images
|
|
run: |
|
|
export SHELL="/bin/bash"
|
|
make build image
|
|
- name: Start kind cluster
|
|
uses: helm/kind-action@v1.10.0
|
|
with:
|
|
version: ${{ env.kind-version }}
|
|
node_image: ${{ env.kind-image }}
|
|
wait: 300s
|
|
config: ./test/e2e/kind-conf.yaml
|
|
cluster_name: e2e
|
|
- name: Wait for cluster to finish bootstraping
|
|
run: |
|
|
echo "Waiting for all nodes to be ready..."
|
|
kubectl wait --for=condition=Ready nodes --all --timeout=120s
|
|
kubectl get nodes
|
|
echo "Waiting for all pods to be ready..."
|
|
kubectl wait --for=condition=Ready pods --all --all-namespaces --timeout=300s
|
|
kubectl get pods -A
|
|
echo "Cluster information"
|
|
kubectl cluster-info
|
|
- name: Load images
|
|
run: |
|
|
make test-e2e-images
|
|
kubectl apply -f scripts/kind-rbac.yaml
|
|
- name: Run tests
|
|
env:
|
|
E2E_DIAGNOSTIC_DIRECTORY: ${{ env.E2E_DIAGNOSTIC_DIRECTORY }}
|
|
run: |
|
|
make ${{ matrix.target }}
|
|
- name: Upload diagnostics artifact
|
|
if: ${{ failure() }}
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: cluster-state
|
|
path: ${{ env.E2E_DIAGNOSTIC_DIRECTORY }}
|
|
retention-days: 15
|
|
|
|
# Added to summarize the matrix and allow easy branch protection rules setup
|
|
e2e-tests-result:
|
|
name: End-to-End Test Results
|
|
if: ${{ needs.changed-files.outputs.non-markdown-files }}
|
|
needs:
|
|
- changed-files
|
|
- e2e-tests
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Mark the job as a success
|
|
if: needs.e2e-tests.result == 'success'
|
|
run: exit 0
|
|
- name: Mark the job as a failure
|
|
if: needs.e2e-tests.result != 'success'
|
|
run: exit 1
|