diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml new file mode 100644 index 0000000..8a63643 --- /dev/null +++ b/.github/workflows/test.yaml @@ -0,0 +1,88 @@ +name: Test + +# Put 'on' in quotes to avoid YAML parsing error +"on": + # Enable manual triggering + workflow_dispatch: {} + # Run on commits to main branch + push: + branches: + - main + # Run only on changes to relevant files + paths: + - .github/workflows/test.yaml + - src/** + - .sourceignore + # Run also on pull requests to main branch + pull_request: + branches: + - main + # Run only on changes to relevant files + paths: + - .github/workflows/test.yaml + - src/** + - .sourceignore + +jobs: + test: + name: Test + # Pin version of Ubuntu to avoid breaking changes + runs-on: ubuntu-22.04 + # Use reasonable timeout to avoid stuck workflows + timeout-minutes: 30 + strategy: + matrix: + cluster: [main] + permissions: + # Needed to checkout code + contents: read + steps: + - name: Checkout code + uses: actions/checkout@v4.1.1 + - name: Setup Kubernetes + uses: helm/kind-action@v1.8.0 + with: + version: v0.21.0 + cluster_name: ${{ matrix.cluster }} + kubectl_version: v1.28.4 + - name: Setup Flux + uses: fluxcd/flux2/action@v2.1.2 + with: + version: v2.1.2 + - name: Install Flux in cluster + run: > + flux + install + --version + v2.1.2 + - name: Add source to Flux + run: > + flux + create + source + git + main + --url + 'https://github.com/${{ github.repository }}' + --commit + '${{ github.event.pull_request.head.sha || github.sha }}' + --username + '${{ github.actor }}' + --password + '${{ github.token }}' + - name: Add Kustomization to Flux + run: > + flux + create + kustomization + main + --source + main + --path + 'src/clusters/${{ matrix.cluster }}' + --wait + - name: Debug failures + if: failure() + run: | + kubectl get all --all-namespaces + flux get all --all-namespaces