feat: allow variables to be set as interfaces through the library API #7969
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: Test Cross-Cluster | |
on: | |
pull_request: | |
paths-ignore: | |
- "**.md" | |
- "**.jpg" | |
- "**.png" | |
- "**.gif" | |
- "**.svg" | |
- "adr/**" | |
- "docs/**" | |
- "CODEOWNERS" | |
merge_group: | |
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-e2e: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
- 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@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6 | |
with: | |
name: build-artifacts | |
path: build/ | |
retention-days: 1 | |
validate-without-cluster: | |
runs-on: ubuntu-latest | |
needs: build-e2e | |
steps: | |
- name: Checkout | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
- name: Download build artifacts | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
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-e2e | |
steps: | |
- name: Checkout | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
- name: Download build artifacts | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
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: get cluster info | |
uses: ./.github/actions/debug-cluster | |
if: always() | |
- 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-e2e | |
steps: | |
- name: Checkout | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
- name: Download build artifacts | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
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-e2e | |
steps: | |
- name: Checkout | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
- name: Download build artifacts | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
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: get cluster info | |
uses: ./.github/actions/debug-cluster | |
if: always() | |
- 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-e2e | |
steps: | |
- name: Checkout | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
- name: Download build artifacts | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
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: get cluster info | |
uses: ./.github/actions/debug-cluster | |
if: always() | |
- name: Save logs | |
if: always() | |
uses: ./.github/actions/save-logs | |
with: | |
suffix: -validate-minikube |