Skip to content

refactor: cleaner image pulls #4918

refactor: cleaner image pulls

refactor: cleaner image pulls #4918

Workflow file for this run

name: Test Cross-Cluster
on:
pull_request:
paths-ignore:
- "**.md"
- "**.jpg"
- "**.png"
- "**.gif"
- "**.svg"
- "adr/**"
- "docs/**"
- "CODEOWNERS"
permissions:
contents: read
# Abort prior jobs in the same workflow / PR
concurrency:
group: e2e-${{ github.ref }}
cancel-in-progress: true
jobs:
# Build the binary and init package
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Setup golang
uses: ./.github/actions/golang
- name: Build binary and zarf packages
uses: ./.github/actions/packages
with:
build-examples: "false"
# Upload the contents of the build directory for later stages to use
- name: Upload build artifacts
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
with:
name: build-artifacts
path: build/
retention-days: 1
validate-without-cluster:
runs-on: ubuntu-latest
needs: build
steps:
- name: Checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Download build artifacts
uses: actions/download-artifact@eaceaf801fd36c7dee90939fad912460b18a1ffe # v4.1.2
with:
name: build-artifacts
path: build/
- name: Setup golang
uses: ./.github/actions/golang
- name: Make Zarf executable
run: |
chmod +x build/zarf
# Before we run the regular tests we need to aggressively cleanup files to reduce disk pressure
- name: Cleanup files
uses: ./.github/actions/cleanup-files
- name: Run tests
run: |
make test-e2e-without-cluster ARCH=amd64
- name: Save logs
if: always()
uses: ./.github/actions/save-logs
with:
suffix: -validate-without-cluster
# Run the tests on k3d
validate-k3d:
runs-on: ubuntu-latest
needs: build
steps:
- name: Checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Download build artifacts
uses: actions/download-artifact@eaceaf801fd36c7dee90939fad912460b18a1ffe # v4.1.2
with:
name: build-artifacts
path: build/
- name: Setup golang
uses: ./.github/actions/golang
- name: Setup K3d
uses: ./.github/actions/k3d
- name: Make Zarf executable
run: |
chmod +x build/zarf
# Before we run the regular tests we need to aggressively cleanup files to reduce disk pressure
- name: Cleanup files
uses: ./.github/actions/cleanup-files
- name: Run tests
run: |
make test-e2e-with-cluster ARCH=amd64
- name: Save logs
if: always()
uses: ./.github/actions/save-logs
with:
suffix: -validate-k3d
# Run the tests on k3s
validate-k3s:
runs-on: ubuntu-latest
needs: build
steps:
- name: Checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Download build artifacts
uses: actions/download-artifact@eaceaf801fd36c7dee90939fad912460b18a1ffe # v4.1.2
with:
name: build-artifacts
path: build/
- name: Setup golang
uses: ./.github/actions/golang
- name: Make Zarf executable
run: |
chmod +x build/zarf
# Before we run the regular tests we need to aggressively cleanup files to reduce disk pressure
- name: Cleanup files
uses: ./.github/actions/cleanup-files
- name: Run tests
# NOTE: "PATH=$PATH" preserves the default user $PATH. This is needed to maintain the version of go installed
# in a previous step. This test run will use Zarf to create a K3s cluster, and a brand new cluster will be
# used for each test
run: |
sudo env "PATH=$PATH" CI=true APPLIANCE_MODE=true make test-e2e-with-cluster ARCH=amd64
- name: Save logs
if: always()
uses: ./.github/actions/save-logs
with:
suffix: -validate-k3s
# Run the tests on kind
validate-kind:
runs-on: ubuntu-latest
needs: build
steps:
- name: Checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Download build artifacts
uses: actions/download-artifact@eaceaf801fd36c7dee90939fad912460b18a1ffe # v4.1.2
with:
name: build-artifacts
path: build/
- name: Setup golang
uses: ./.github/actions/golang
- name: Setup Kind
run: |
kind delete cluster && kind create cluster
kubectl scale deploy -n kube-system coredns --replicas=1
- name: Make Zarf executable
run: |
chmod +x build/zarf
# Before we run the regular tests we need to aggressively cleanup files to reduce disk pressure
- name: Cleanup files
uses: ./.github/actions/cleanup-files
- name: Run tests
run: |
make test-e2e-with-cluster ARCH=amd64
- name: Save logs
if: always()
uses: ./.github/actions/save-logs
with:
suffix: -validate-kind
# Run the tests on minikube
validate-minikube:
runs-on: ubuntu-latest
needs: build
steps:
- name: Checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Download build artifacts
uses: actions/download-artifact@eaceaf801fd36c7dee90939fad912460b18a1ffe # v4.1.2
with:
name: build-artifacts
path: build/
- name: Setup golang
uses: ./.github/actions/golang
- name: Setup Minikube
run: minikube start --driver=docker
- name: Make Zarf executable
run: |
chmod +x build/zarf
# Before we run the regular tests we need to aggressively cleanup files to reduce disk pressure
- name: Cleanup files
uses: ./.github/actions/cleanup-files
- name: Run tests
run: |
make test-e2e-with-cluster ARCH=amd64
- name: Save logs
if: always()
uses: ./.github/actions/save-logs
with:
suffix: -validate-minikube