on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

jobs:
  changes:
    runs-on: ubuntu-latest
    timeout-minutes: 15
    outputs:
      dirs: ${{ steps.filter.outputs.changes }}
    steps:
      - uses: actions/checkout@v2
      - uses: dorny/paths-filter@v2
        id: filter
        with:
          filters: |
            ./integration_test: ./tests/rust-integration-tests/**
  validate:
    needs: [changes]
    if: ${{ !contains(needs.changes.outputs.dirs, '[]') }}
    runs-on: ubuntu-latest
    timeout-minutes: 15
    strategy:
      matrix:
        rust: [1.59.0, 1.60.0]
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: ${{ matrix.rust }}
          override: true
      - name: Cache youki
        uses: Swatinem/rust-cache@v1
      - run: sudo apt-get -y update
      - run: sudo apt-get install -y pkg-config libsystemd-dev libdbus-glib-1-dev libelf-dev libseccomp-dev
      - name: Install runc 1.1.0
        run: |
          wget -q https://github.com/opencontainers/runc/releases/download/v1.1.0/runc.amd64
          sudo mv runc.amd64 /usr/bin/runc
          sudo chmod 755 /usr/bin/runc
      - name: Validate tests on runc
        run: make validate-rust-tests
      - name: Validate tests on youki
        run: make integration-test
