Apply repository updates #1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Test Runners | |
| on: | |
| pull_request: | |
| branches: [master] | |
| paths: | |
| - 'algorithms/**' | |
| - 'scripts/**' | |
| - 'tests/**' | |
| - 'package.json' | |
| - 'package-lock.json' | |
| - '.github/workflows/test.yml' | |
| push: | |
| branches: [master] | |
| paths: | |
| - 'algorithms/**' | |
| - 'scripts/**' | |
| - 'tests/**' | |
| - 'package.json' | |
| - 'package-lock.json' | |
| - '.github/workflows/test.yml' | |
| jobs: | |
| test-unit: | |
| name: Unit Tests | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| - name: Install workspace dependencies | |
| run: npm ci | |
| - name: Run repository unit tests | |
| run: npm run test:unit | |
| test-python: | |
| name: Python Tests | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Install requirements | |
| run: pip install -r tests/runners/requirements.txt | |
| - name: Run Python test runner | |
| run: python3 tests/runners/python_runner.py | |
| test-typescript: | |
| name: TypeScript Tests | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| - name: Install runner dependencies | |
| run: npm ci --prefix tests/runners/ts | |
| - name: Run TypeScript test runner | |
| run: npm test --prefix tests/runners/ts | |
| test-java: | |
| name: Java Tests | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Setup Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '21' | |
| - name: Run Java test runner | |
| run: bash tests/runners/java_runner.sh | |
| test-cpp: | |
| name: C++ Tests | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Install Python dependencies | |
| run: pip install pyyaml | |
| - name: Install g++ | |
| run: sudo apt-get update && sudo apt-get install -y g++ | |
| - name: Run C++ test runner | |
| run: python3 tests/runners/cpp_runner.py | |
| test-c: | |
| name: C Tests | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Install Python dependencies | |
| run: pip install pyyaml | |
| - name: Install gcc | |
| run: sudo apt-get update && sudo apt-get install -y gcc | |
| - name: Run C test runner | |
| run: bash tests/runners/c_runner.sh | |
| test-go: | |
| name: Go Tests | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Install Python dependencies | |
| run: pip install pyyaml | |
| - name: Setup Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: '1.22' | |
| - name: Run Go test runner | |
| run: bash tests/runners/go_runner.sh | |
| test-rust: | |
| name: Rust Tests | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Install Python dependencies | |
| run: pip install pyyaml | |
| - name: Setup Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| - name: Run Rust test runner | |
| run: python3 tests/runners/rust_runner.py | |
| test-kotlin: | |
| name: Kotlin Tests | |
| runs-on: ubuntu-latest | |
| if: github.event_name == 'push' || contains(github.event.pull_request.labels.*.name, 'test-kotlin') | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Install Python dependencies | |
| run: pip install pyyaml | |
| - name: Setup Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '21' | |
| - name: Setup Kotlin | |
| run: | | |
| curl -s https://get.sdkman.io | bash | |
| source "$HOME/.sdkman/bin/sdkman-init.sh" | |
| sdk install kotlin | |
| echo "$HOME/.sdkman/candidates/kotlin/current/bin" >> $GITHUB_PATH | |
| - name: Run Kotlin test runner | |
| run: bash tests/runners/kotlin_runner.sh | |
| test-swift: | |
| name: Swift Tests | |
| runs-on: ubuntu-latest | |
| if: github.event_name == 'push' || contains(github.event.pull_request.labels.*.name, 'test-swift') | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Install Python dependencies | |
| run: pip install pyyaml | |
| - name: Setup Swift | |
| uses: swift-actions/setup-swift@v2 | |
| with: | |
| swift-version: '5.10' | |
| - name: Run Swift test runner | |
| run: bash tests/runners/swift_runner.sh | |
| test-scala: | |
| name: Scala Tests | |
| runs-on: ubuntu-latest | |
| if: github.event_name == 'push' || contains(github.event.pull_request.labels.*.name, 'test-scala') | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Install Python dependencies | |
| run: pip install pyyaml | |
| - name: Setup Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '21' | |
| - name: Setup Scala | |
| uses: olafurpg/setup-scala@v14 | |
| with: | |
| scala-version: '3.3.1' | |
| - name: Run Scala test runner | |
| run: bash tests/runners/scala_runner.sh | |
| test-csharp: | |
| name: C# Tests | |
| runs-on: ubuntu-latest | |
| if: github.event_name == 'push' || contains(github.event.pull_request.labels.*.name, 'test-csharp') | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Install Python dependencies | |
| run: pip install pyyaml | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v4 | |
| with: | |
| dotnet-version: '8.0.x' | |
| - name: Run C# test runner | |
| run: bash tests/runners/csharp_runner.sh |