Skip to content

CI test workflow

CI test workflow #3

Workflow file for this run

name: Test Suite
on:
pull_request:
branches:
- main
push:
branches:
- main
workflow_dispatch:
permissions:
contents: read
concurrency:
group: test-suite-${{ github.ref }}
cancel-in-progress: true
jobs:
unit:
if: github.repository == 'skupperproject/vms'
name: Unit tests
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Install pnpm
uses: pnpm/action-setup@v6
with:
version: 11.18.0
- name: Set up Node.js
uses: actions/setup-node@v7
with:
node-version: 24
cache: pnpm
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Run unit tests
run: pnpm run test:unit --reporter=json --outputFile=unit-test-results.json
- name: Upload test results
if: always()
uses: actions/upload-artifact@v7
with:
name: unit-test-results
path: unit-test-results.json
integration:
if: github.repository == 'skupperproject/vms'
name: Integration tests
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Install pnpm
uses: pnpm/action-setup@v6
with:
version: 11.18.0
- name: Set up Node.js
uses: actions/setup-node@v7
with:
node-version: 24
cache: pnpm
- name: Install Kind
uses: helm/kind-action@v1
with:
install_only: true
- name: Install Helm
uses: azure/setup-helm@v5
- name: Install helmfile
run: |
HELMFILE_VERSION="v1.4.2"
curl -fsSL "https://github.com/helmfile/helmfile/releases/download/${HELMFILE_VERSION}/helmfile_${HELMFILE_VERSION#v}_linux_amd64.tar.gz" \
| sudo tar xz -C /usr/local/bin helmfile
helmfile version
- name: Install helm-diff plugin
run: helm plugin install --verify=false https://github.com/databus23/helm-diff
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Bring up Kind cluster
run: pnpm run cluster:up
- name: Run integration tests
run: pnpm run test:integration --reporter=json --outputFile=integration-test-results.json
- name: Upload test results
if: always()
uses: actions/upload-artifact@v7
with:
name: integration-test-results
path: integration-test-results.json
- name: Tear down Kind cluster
if: always()
run: pnpm run cluster:down