name: ✔️ Verification of integration

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

jobs:
  changes:
    runs-on: ubuntu-22.04
    timeout-minutes: 15
    outputs:
      any_modified: ${{ steps.filter.outputs.any_modified }}
    steps:
      - uses: actions/checkout@v3
      - uses: tj-actions/changed-files@v41
        id: filter
        with:
          files: |
            .github/workflows/integration_tests_validation.yaml
            tests/contest/**
          files_ignore: |
            **.md
      - name: List all changed files
        run: |
          for file in ${{ steps.filter.outputs.all_modified_files }}; do
            echo "$file was changed"
          done
  validate:
    needs: [changes]
    if: needs.changes.outputs.any_modified == 'true'
    runs-on: ubuntu-20.04
    timeout-minutes: 30
    steps:
      - uses: actions/checkout@v3
      - name: Setup Rust toolchain and cache
        uses: actions-rust-lang/setup-rust-toolchain@v1.3.7
      - name: Install just
        uses: taiki-e/install-action@just
      - name: Install requirements
        run: sudo env PATH=$PATH just ci-prepare
      - name: Install runc 1.1.11
        run: |
          wget -q https://github.com/opencontainers/runc/releases/download/v1.1.11/runc.amd64
          sudo mv runc.amd64 /usr/bin/runc
          sudo chmod 755 /usr/bin/runc
      - name: Build
        run: just runtimetest contest
      - name: Validate tests on runc
        run: just validate-contest-runc
