integration.yaml 1.63 KB
name: Integration Test Coverage
on: 
  push:
    paths-ignore:
      - "**.md"
      - "channel.yaml"
      - "install.sh"
      - "tests/snapshotter/**"
      - "tests/install/**"
      - "tests/cgroup/**"
      - ".github/**"
      - "!.github/workflows/integration.yaml"
  pull_request:
    paths-ignore:
      - "**.md"
      - "channel.yaml"
      - "install.sh"
      - "tests/snapshotter/**"
      - "tests/install/**"
      - "tests/cgroup/**"
      - ".github/**"
      - "!.github/workflows/integration.yaml"
  workflow_dispatch: {}
jobs:
  build:
    name: Build
    runs-on: ubuntu-20.04
    timeout-minutes: 20
    steps:
    - name: "Checkout"
      uses: actions/checkout@v2
      with:
        fetch-depth: 1
    - name: "Make"
      run: DOCKER_BUILDKIT=1 SKIP_VALIDATE=1 make
    - name: "Upload k3s binary"
      uses: actions/upload-artifact@v2
      with:
        name: k3s
        path: dist/artifacts/k3s
  test:
    needs: build
    name: Integration Tests
    runs-on: ubuntu-20.04
    timeout-minutes: 30
    steps:
    - name: Install Go
      uses: actions/setup-go@v2 
      with: 
        go-version: '1.19.1'
    - name: Checkout
      uses: actions/checkout@v2
      with:
        fetch-depth: 1
    - name: "Download k3s binary"
      uses: actions/download-artifact@v2
      with:
        name: k3s
        path: ./dist/artifacts
    - name: Run Integration Tests
      run: | 
        chmod +x ./dist/artifacts/k3s
        sudo -E env "PATH=$PATH" go test -v ./tests/integration/... -run Integration
    - name: On Failure, Launch Debug Session
      if: ${{ failure() }}
      uses: mxschmitt/action-tmate@v3
      timeout-minutes: 5